版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
云计算技术应用省级专业教学资源库第一章大数据平台认知与规划大数据项目实战认识大数据技术栈与项目需求分析(上)CONTENTS目录
什么是大数据01
大数据技术生态体系02
电商用户画像项目背景03
本课程技术选型04具备5V特征,包括大量(TB级到PB级)、高速(实时生成流式处理)、多样(多结构数据)、真实性(质量参差不齐)、价值(挖掘商业价值)。大数据核心特征覆盖电商(用户画像、推荐系统)、金融(风险控制、信用评估)、医疗(疾病预测、药物研发)等多领域场景。大数据典型应用什么是大数据大数据项目实战数据采集采用Flume、Kafka、Sqoop,数据存储涵盖HDFS、HBase、MySQL。数据采集存储组件数据计算分批处理与流处理,批处理用MapReduce、Hive,流处理用SparkStreaming、Flink。数据计算类型工具数据可视化有FineBI、DataEase、ECharts,资源管理采用YARN、Kubernetes。其他技术生态模块本课程重点聚焦HDFS、MapReduce、Hive、Sqoop以及BI相关技术内容。课程核心聚焦内容大数据项目实战大数据技术生态体系涵盖流量分析、行为分析、转化分析、RFM模型用户分层四大维度的具体内容。项目核心分析目标通过用户属性、行为、偏好等数据构建标签体系,助力企业精准营销与个性化推荐。用户画像核心概念电商用户画像项目背景大数据项目实战采用Docker实现集群快速搭建与环境统一,用Hadoop/HDFS做分布式存储,MapReduce助理解分布式计算原理。课程技术选型理由以一个项目贯穿学习全程,覆盖环境搭建、数据清洗、多维分析及可视化大屏全环节。项目全流程设计Hive以SQL方式降低数据分析门槛,Sqoop打通Hive与MySQL数据通道,BI工具直观呈现分析结果。多工具协同优势010203大数据项目实战本课程技术选型云计算技术应用省级专业教学资源库第一章大数据平台认知与规划大数据项目实战Docker容器技术基础CONTENTS目录
需求分析的三层转化01
用户画像标签体系02
本项目数据集概览03
项目最终分析目标04-运营团队想知道:谁是高价值用户?什么商品好卖?用户活跃在什么时候?-一句话目标:构建电商用户画像,支撑精准营销第一层:业务需求需求分析的三层转化大数据项目实战第二层:数据需求-需要采集哪些数据?用户行为日志、订单记录、商品信息-数据维度和粒度:用户级、商品级、时间级第三层:技术需求-用什么技术实现?HDFS存储
→MapReduce清洗
→Hive分析
→BI可视化-关键指标定义:PV、UV、转化率、复购率、RFM分值-用户ID、注册时间、性别、年龄区间-来源:用户注册信息表-基础属性标签用户画像标签体系大数据项目实战-行为特征标签-活跃时段(凌晨/上午/下午/晚间)-行为偏好(浏览型/收藏型/下单型)-来源:用户行为日志分析-价值分层标签-复购率等级(高/中/低)-客单价区间-RFM分层(重要价值/重点发展/一般维护/流失预警)-来源:订单数据与消费指标计算-字段:user_id,item_id,category_id,behavior_type,timestamp-behavior_type取值:pv(浏览)、fav(收藏)、cart(加购)、buy(下单)-数据量:约百万级行-用户行为日志表本项目数据集概览大数据项目实战-订单信息表-字段:order_id,user_id,item_id,amount,pay_time-用于计算复购率、客单价、RFM模型-数据特点-模拟脱敏数据,不含真实个人信息-已包含脏数据(缺失值、异常金额、重复记录),用于清洗练习转化效果分析1:商品点击到购买转化率2:各环节转化漏斗用户价值分层1:RFM模型打分2:用户分为8种类型,制定差异化运营策略最终交付物1:一个完整的电商运营数据可视化大屏流量概览1:每日PV(页面浏览量)趋势2:每日UV(独立访客数)趋势用户行为洞察1:用户活跃时段分布2:行为类型占比(浏览→收藏→加购→下单)0102030405大数据项目实战项目最终分析目标云计算技术应用省级专业教学资源库第一章大数据平台认知与规划大数据项目实战Docker容器技术基础
CONTENTS目什么是Docker01镜像、容器、仓库02Dockervs传统虚拟机03Docker在大数据中的优势04什么是Docker
大数据项目实战●Docker是什么○一个开源的容器化平台○将应用程序及其依赖打包到一个轻量级的容器中○容器可以在任何安装了Docker的机器上运行●核心理念○Buildonce,runanywhere(一次构建,到处运行)○解决“我机器上能跑,你机器上不行”的经典问题●类比理解○传统部署:在别人厨房做菜,调料工具不一样,做不出一样的味道○Docker:把自己的厨房装进箱子,到哪儿都能原样做菜Docker三大核心概念-镜像、容器、仓库
大数据项目实战●镜像(Image)○容器的“模板”,包含运行环境和应用程序○类比:操作系统的ISO文件○举例:Hadoop镜像包含了Java环境和Hadoop程序●容器(Container)○镜像的“运行实例”,一个隔离的进程空间○类比:用ISO文件启动的虚拟机○可以启动、停止、删除,数据随容器销毁而丢失●仓库(Registry)○存储和分发镜像的地方○公共仓库:DockerHub○类比:应用商店Dockervs传统虚拟机
大数据项目实战对比维度传统虚拟机Docker容器启动速度分钟级秒级资源占用每个VM独占内存/CPU共享宿主机内核,资源消耗小硬盘占用每个VM数GB容器数百MB隔离级别完全隔离(Hypervisor)进程级隔离部署一致性依赖底层OS镜像确保环境统一●结论○虚拟机适合完全隔离的场景(如运行不同OS)○Docker适合微服务、集群部署、快速迭代○本课程用Docker:一台电脑同时跑Hadoop/Hive/MySQL等多个组件为什么本课程选择Docker--Docker在大数据中的优势
大数据项目实战●环境统一,省去配置烦恼○传统Hadoop教学:每台学生电脑装CentOS、配SSH免密、改配置文件
→2节课搭不好环境○Docker:一个yml文件+docker-composeup→3分钟起集群●轻量级,一台电脑跑整个集群○无需多台虚拟机或物理服务器○学生电脑32GB内存可同时运行NameNode+DataNode+MySQL+Hive+Sqoop●贴近企业实践○越来越多企业用容器化部署大数据平台○Kubernetes+Hadoop已是行业趋势●专注技术本身○将精力从“装系统配环境”转向“写代码做分析”云计算技术应用省级专业教学资源库第一章大数据平台认知与规划大数据项目实战集群拓扑规划与资源配置
CONTENTS目集群整体拓扑设计01各组件角色与端口规划02宿主机硬件资源配置03Docker网络规划04集群整体拓扑设计
大数据项目实战关系说明NameNode→DataNode管理HDFS数据块分布,接收DataNode心跳ResourceManager→DataNode调度MapReduce任务到NodeManager执行Hive→MySQLHive表结构(元数据)存储在MySQL中Hive→DataNodeHive查询底层读取HDFS上的数据文件Sqoop→MySQLSqoop将Hive分析结果导出到MySQL表中MySQL→BI工具BI工具连接MySQL读取结果,制作可视化图表各组件角色与端口规划
大数据项目实战组件角色端口说明NameNodeHDFS管理节点9870WebUI,查看文件系统DataNodeHDFS存储节点9864数据块存储ResourceManagerYARN资源管理8088WebUI,查看作业状态NodeManagerYARN节点管理8042执行ContainerHiveServer2Hive查询服务10000JDBC/Beeline连接MySQL元数据存储+结果存储3306HiveMetastore+BI数据源Sqoop数据迁移工具—命令行使用记忆口诀:9870看文件,8088看作业,10000连Hive,3306连数据库宿主机硬件资源配置
大数据项目实战-最低配置-CPU:Inteli58核及以上-内存:16GB-硬盘:256GBSSD-虚拟化:BIOS开启VT-x/AMD-V-推荐配置-CPU:Inteli516核及以上-内存:32GB(可同时运行4-5个容器)-硬盘:512GBSSD-操作系统:Windows10/11专业版
或macOS-Docker资源分配建议-DockerDesktop设置:CPU≥8核,内存≥12GB-每个Hadoop容器约1-2GB内存-MySQL/Hive容器各约1GBDocker网络规划--容器间如何通信
大数据项目实战-网络模式选择:bridge-默认bridge模式,容器在同一个Docker网络中-通过容器名互相访问(DockerDNS解析)-自定义网络-dockernetworkcreate--subnet=/16hadoop-net-所有容器加入同一个网络,统一网段-好处:IP固定、容器名解析、隔离安全-端口映射-将容器端口映射到宿主机端口-例:ports:-"9870:9870"→
浏览器访问localhost:9870-注意:宿主机端口不能冲突-数据卷挂载-将宿主机目录挂载到容器内,实现数据持久化-例:volumes:-./data:/data-容器删除后,数据仍然保留在宿主机云计算技术应用省级专业教学资源库第一章安装DockerDesktop与拉取基础镜像(上)大数据项目实战Docker环境准备与安装验证CONTENTS目录
了解DockerDesktop对操作系统和硬件的要求01
学会检查并开启CPU虚拟化(VT-x/AMD-V)02
掌握DockerDesktop的下载、安装与首次启动03
能够使用dockerversion和dockerrunhello-world验证安装成功04系统要求大数据项目实战Windows-操作系统:Windows10/11专业版、企业版、教育版(版本1903以上)-⚠️家庭版不支持Hyper-V,但安装时可勾选“UseWSL2”作为后端-CPU:支持虚拟化技术(IntelVT-x或AMD-V)-内存:最低4GB,推荐8GB+(本课程强烈建议16GB+)-硬盘:SSD,至少50GB空闲空间macOS-操作系统:macOS10.14(Mojave)或更高版本-芯片:Intel芯片或AppleSilicon(M1/M2/M3)-AppleSilicon版需安装AppleSilicon专用版DockerDesktop-内存:最低4GB,推荐8GB+(本课程建议16GB+)-硬盘:SSD,至少50GB空闲空间-注意:macOS无需手动开启虚拟化,系统默认支持通用要求-确保BIOS/系统中虚拟化已启用(Windows需检查,macOS自动)-不满足硬件要求的学生可申请云服务器或小组共用高配电脑大数据项目实战检查并开启CPU虚拟化(Windows)1:检查是否已开启:任务管理器
→
性能
→CPU→
虚拟化:已启用2:或使用命令:systeminfo查找“Hyper-V要求”3:若未开启:重启进入BIOS/UEFI,找到“IntelVirtualizationTechnology”或“SVMMode”→
设为Enabled→
保存退出(macOS用户跳过此步,系统默认支持)下载DockerDesktop大数据项目实战官方下载地址:选择对应版本:Windows:DockerDesktopInstaller.exeMacwithIntel:Docker.dmgMacwithAppleSilicon:Docker.dmg(标注AppleSilicon)国内镜像加速下载(可选):阿里云镜像站、中科大源提示:建议课前下载好安装包,避免课堂网络拥堵安装步骤(Windows&macOS)大数据项目实战Windows双击安装程序,勾选“UseWSL2insteadofHyper-V”点击OK,等待安装(自动下载WSL2内核)安装完成后,点击“Closeandrestart”重启电脑重启后启动DockerDesktop,接受服务协议macOS打开下载的.dmg文件,将Docker图标拖入Applications文件夹在启动台找到Docker并打开系统可能提示“来自未知开发者”,需在“设置→隐私与安全性”中允许首次启动会要求授权(输入密码),同意后Docker会在菜单栏显示鲸鱼图标共同步骤:启动后稍等片刻,直到菜单栏/系统托盘图标变为稳定状态(不再跳动)验证安装——命令行测试大数据项目实战打开终端(Windows:cmd/PowerShell;Mac:终端)验证版本:dockerversion应同时显示Client和Server版本运行测试容器:dockerrunhello-world预期输出包含“HellofromDocker!”查看镜像:dockerimages应显示hello-world镜像常见错误:若dockerversion显示“errorduringconnect”,检查DockerDesktop是否已启动常见安装问题与解决大数据项目实战问题现象可能原因解决方案Windows安装失败,提示“无法启动”虚拟化未开启进入BIOS开启VT-xWindows家庭版无法安装不支持Hyper-V安装时勾选“UseWSL2”,或升级专业版macOS提示“无法打开,因为无法验证开发者”安全策略限制系统设置→隐私与安全性→仍要打开dockerrunhello-world超时网络问题后续配置镜像加速器磁盘空间不足默认安装到系统盘Windows可迁移到其他盘(高级)云计算技术应用省级专业教学资源库安装DockerDesktop与拉取基础镜像(下)大数据项目实战镜像加速器配置与基础镜像拉取CONTENTS目录
理解镜像加速器的作用,掌握在国内配置镜像加速器的方法01
学会使用dockerpull命令拉取指定标签的基础镜像02
能够拉取Hadoop、MySQL、Hive、Sqoop四个大数据相关镜像03
使用dockerimages验证镜像已成功下载到本地04为什么需要镜像加速器大数据项目实战问题现象:执行dockerpull时速度极慢,甚至超时失败下载进度条长时间不动原因:DockerHub官方仓库位于国外国内网络访问跨境带宽有限解决方案:配置国内镜像加速器(Mirror)Docker客户端会优先从加速器地址拉取,加速器再从官方同步常用加速器:阿里云(需注册,获取专属加速地址)中科大)网易、七牛云等效果:拉取速度可从几十分钟降到几分钟。大数据项目实战配置镜像加速器(Windows/macOS)步骤(通用):打开DockerDesktop点击右上角设置图标(⚙️)→DockerEngine在"registry-mirrors"数组中添加加速器地址点击Apply&Restart,Docker会自动重启示例配置(使用中科大加速器):{"registry-mirrors":[""]}阿里云加速器(推荐,需注册):登录阿里云容器镜像服务
→
镜像加速器
→
获取专属地址(如)将上述地址填入registry-mirrors验证:重启后执行dockerinfo,在输出中查找RegistryMirrors,应显示已配置的地址。注意:macOS和Windows操作界面完全一致。拉取基础镜像——命令与版本选择大数据项目实战拉取命令格式:dockerpull仓库名/镜像名:标签本次课程需要拉取的镜像及标签:见表格标签选择原则:使用明确版本号,避免latest(可能不兼容)确保Hadoop、Hive版本兼容(上述组合已测试)演示拉取一个镜像:dockerpullbde2020/hadoop:2.0.0-hadoop3.2.1-java8镜像推荐标签大小(约)说明Hadoopbde2020/hadoop:2.0.0-hadoop3.2.1-java81.2GB包含HDFS和YARNMySQLmysql:5.7400MB用于HiveMetastoreHivebde2020/hive:2.3.2-postgresql-metastore800MBHive服务端,也可选MySQL版Sqoopbde2020/sqoop:1.4.7500MB数据迁移工具批量拉取与进度监控大数据项目实战批量拉取(可写脚本或逐条执行):dockerpullbde2020/hadoop:2.0.0-hadoop3.2.1-java8dockerpullmysql:5.7dockerpullbde2020/hive:2.3.2-postgresql-metastoredockerpullbde2020/sqoop:1.4.7拉取过程中的输出解读:分层下载:每个镜像由多个层(layer)组成Pullcomplete表示一层下载完成Digest:镜像的哈希校验值Status:Downloadednewerimage:成功耗时参考:配置加速器后:每个镜像5-15分钟(取决于网速)未配置加速器:可能超过30分钟或失败验证镜像拉取结果大数据项目实战查看本地镜像:dockerimages预期输出示例(部分):REPOSITORYTAGSIZEbde2020/hadoop2.0.0-hadoop3.2.1-java81.2GBmysql 5.7400MBbde2020/hive2.3.2-postgresql-metastore800MBbde2020/sqoop1.4.7500MB检查要点:确保四个镜像的仓库名和标签与要求一致注意大小合理(过小可能下载不完整)常见问题:标签错误:检查是否包含:和正确标签名磁盘不足:执行dockersystemprune清理无用数据云计算技术应用省级专业教学资源库编写docker-compose.yml编排Hadoop集群(上)大数据项目实战Compose基础语法与HDFS组件配置CONTENTS目录
理解docker-compose的作用和核心概念01
掌握docker-compose.yml的基本语法(版本、服务、镜像、端口映射)02
能够编写NameNode和DataNode的服务定义03
学会使用docker-composeconfig验证文件语法04为什么需要docker-compose?大数据项目实战传统方式的问题:手动启动多个容器:dockerrun要写很多参数容器间依赖关系需要手动管理启动顺序网络配置繁琐,容器间通信麻烦停止、清理多个容器操作分散docker-compose的解决方案:用一个YAML文件定义所有服务、网络、数据卷一条命令启动/停止整个应用栈自动处理依赖顺序配置可重复、可版本化类比:dockerrun=手动炒菜(每个步骤自己做)docker-compose=一键启动的智能菜谱(所有步骤自动执行)大数据项目实战docker-compose.yml基础结构注意:缩进必须使用空格,不能用Tab,且同一层级对齐。编写NameNode服务大数据项目实战关键点解释:image:使用我们提前拉好的Hadoop镜像container_name:固定容器名,方便其他服务引用hostname:容器内部主机名,DNS解析会用到ports:将容器端口映射到宿主机,"9870:9870"表示宿主机9870→容器9870environment:设置Hadoop配置变量,会覆盖默认值编写DataNode服务大数据项目实战对比NameNode:不需要暴露端口到宿主机(内部通信即可)通过depends_on确保NameNode先启动环境变量只需告诉它NameNode地址说明:DataNode会自动向NameNode注册,无需额外配置。验证docker-compose.yml语法大数据项目实战命令:docker-compose-fdocker-compose-hadoop.ymlconfig预期输出:若语法正确:打印规范化后的配置文件内容若语法错误:显示错误行号和原因(如缩进错误、缺少冒号)常见错误:看表格错误现象原因解决办法yaml.scanner.ScannerError缩进用了Tab改用空格mappingvaluesarenotallowed冒号后缺少空格在冒号后加一个空格servicenameexpected缺少services顶级字段添加services:depends_on未生效依赖服务名拼写错误检查服务名是否与定义一致建议:编写yml时使用支持YAML语法高亮的编辑器(VSCode、IDEA)。云计算技术应用省级专业教学资源库编写docker-compose.yml编排Hadoop集群(下)大数据项目实战YARN组件配置与完整集群定义CONTENTS目录
掌握ResourceManager和NodeManager服务的定义方法01
理解YARN各组件的环境变量配置02
学会配置自定义网络(bridge)和容器间通信03
完成完整的Hadoop集群编排文件(4个服务)04YARN组件概述与角色分工大数据项目实战YARN架构(回顾):ResourceManager(RM):全局资源调度器,负责分配CPU、内存给各个应用,提供WebUI(8088端口)NodeManager(NM):每台节点上的代理,负责启动容器、监控资源使用在docker-compose中的部署方式:RM独立一个容器,对外暴露8088端口NM独立一个容器,不需要暴露端口(内部通信)两者都使用同一个Hadoop镜像,通过环境变量区分角色依赖关系:RM启动时需要连接HDFS(依赖NameNode)NM启动时需要连接RM(依赖ResourceManager)和HDFS(依赖DataNode)大数据项目实战添加ResourceManager服务关键环境变量解释:CORE_CONF_fs_defaultFS:告诉RMHDFS的地址(必须与NameNode中一致)YARN_CONF_yarn_resourcemanager_hostname:设置RM自身的主机名YARN_CONF_yarn_resourcemanager_address:RM的RPC通信地址(端口8032)端口说明:8088:ResourceManagerWebUI(可通过宿主机localhost:8088访问)8032:RM与ApplicationMaster通信端口(内部,不需要映射)添加NodeManager服务大数据项目实战新增环境变量:YARN_CONF_yarn_nodemanager_resource_cpu-vcores:限制NM可使用的CPU虚拟核心数(这里设为2)YARN_CONF_yarn_nodemanager_resource_memory-mb:限制NM可使用的内存(MB),这里设为4GB说明:NodeManager不需要暴露任何端口到宿主机,它通过内部网络与RM和DataNode通信。依赖关系:depends_on确保RM和DataNode先启动,但实际启动顺序仍需要RM就绪后NM才能正常工作配置自定义网络大数据项目实战添加位置:放在文件末尾,与services平级。配置详解:driver:bridge:使用Docker默认的bridge网络驱动ipam(IPAddressManagement):自定义IP地址管理subnet:指定子网网段(避免与宿主机或其他容器网络冲突)将服务加入网络:在每个服务(namenode、datanode、resourcemanager、nodemanager)中添加:好处:容器间可通过容器名直接通信(Docker内置DNS解析)例如:在nodemanager容器中执行pingnamenode即可通网络隔离,避免与宿主机端口冲突验证:启动后进入任一容器,执行cat/etc/hosts可看到其他容器的解析记录。完整docker-compose.yml预览(整合全部4个服务)大数据项目实战参考附件云计算技术应用省级专业教学资源库启动Hadoop集群与WebUI验证(上)大数据项目实战一键启动与HDFSWeb界面CONTENTS目录
掌握使用docker-composeup-d启动集群01
学会查看容器运行状态(dockerps)02
能够通过NameNodeWebUI(9870端口)验证HDFS状态03
学会使用docker-composedown停止集群04启动前的检查清单大数据项目实战硬件/软件环境:DockerDesktop已启动(系统托盘/菜单栏鲸鱼图标稳定)内存至少分配8GB(推荐16GB),可在DockerDesktop设置中调整磁盘剩余空间充足(至少10GB)已拉取四个基础镜像:Hadoop、MySQL、Hive、Sqoop(dockerimages确认)配置文件:docker-compose-hadoop.yml文件存在且语法正确文件中定义了namenode、datanode、resourcemanager、nodemanager四个服务端口9870、8088未被宿主机其他程序占用常见端口占用检查(Windows/macOS):#Windows(PowerShell管理员)
若有占用,修改yml中的宿主机端口(如"9871:9870")或关闭占用进程。netstat-ano|findstr:9870#macOS/Linuxlsof-i:9870大数据项目实战启动集群命令详解进入yml文件所在目录:cd/path/to/docker-compose-hadoop.yml启动命令:docker-composeup-dup:创建并启动容器-d:后台运行(detach模式),不阻塞终端执行过程输出解读:依次创建网络、容器显示每个容器的创建成功信息如果出现错误,会输出红色错误提示启动后查看运行中容器:dockerps输出应包含4个容器(namenode、datanode、resourcemanager、nodemanager),状态为Up常见错误:见表格错误信息原因解决Cannotcreatecontainerforservice...容器名已存在先执行docker-composedown清理portisalreadyallocated端口被占用修改yml端口映射或释放占用端口noconfigurationfileprovided不在yml所在目录切换到正确目录或使用-f指定文件NameNodeWebUI访问与解读大数据项目实战访问地址:http://localhost:9870界面主要信息:Overview:Started:NameNode启动时间Version:Hadoop版本ClusterID:集群唯一标识Summary:LiveNodes:存活的DataNode数量(应为1或更多)DeadNodes:死亡的DataNode数量(应为0)Totalcapacity:总存储容量Used:已使用空间Datanodes标签页:显示每个DataNode的详细信息(主机名、容量、健康状况)正常状态截图参考:LiveNodes≥1,DeadNodes=0浏览器标题栏显示“NameNode‘namenode:9870’”常见问题排查:无法访问9870:检查容器是否启动:dockerps|grepnamenode检查端口映射:dockerportnamenode应显示9870检查防火墙:临时关闭或放行9870端口LiveNodes=0:DataNode未注册:检查DataNode日志dockerlogsdatanode常见原因:DataNode无法连接NameNode(网络问题或配置错误)查看容器日志——故障排查利器大数据项目实战查看单个容器日志:dockerlogs容器名例如:dockerlogsnamenode常用选项:--tail50:显示最后50行-f:实时跟踪日志输出(Ctrl+C退出)--since5m:显示最近5分钟的日志示例:dockerlogs--tail100namenode日志中常见关键信息:INFO:正常信息WARN:警告,通常可忽略ERROR/Exception:错误,需要分析原因典型错误排查:日志中的错误可能原因解决IncompatibleclusterIDsDataNode与NameNode集群ID不一致删除DataNode数据目录重新启动CannotconnecttoNameNode网络不通或地址配置错误检查环境变量CORE_CONF_fs_defaultFS.BindException:Addressalreadyinuse端口冲突检查9870或8088是否被占用停止集群大数据项目实战停止并删除容器(保留网络和数据卷):docker-composedown停止所有正在运行的容器删除容器(但网络和数据卷默认保留)停止并删除所有资源(包括网络):docker-composedown--rmiall-v--rmiall:删除使用的镜像(谨慎使用)-v:删除关联的数据卷仅停止容器(不删除):docker-composestop容器保留,可再次docker-composestart启动重启集群:docker-composerestart注意:down后再次up会重新创建容器,配置更改会生效。云计算技术应用省级专业教学资源库启动Hadoop集群与WebUI验证(下)大数据项目实战YARN验证与简单MapReduce任务提交CONTENTS目录
访问ResourceManagerWebUI(8088端口)验证YARN状态01
理解YARNWebUI中的关键信息(ActiveNodes、RunningApplications)02
能够在集群中提交一个简单的MapReduce示例任务(如圆周率计算)03
学会在YARNUI中监控作业执行状态04ResourceManagerWebUI介绍大数据项目实战页面内容:访问地址:http://localhost:8088关键指标:ActiveNodes:应≥1(表示NodeManager正常)Applications表:显示作业状态(ACCEPTED→RUNNING→FINISHED)若ActiveNodes=0:检查NodeManager容器日志大数据项目实战提交MapReduce任务(圆周率计算)页面内容:进入NameNode容器:dockerexec-itnamenodebash执行命令:yarnjar/opt/hadoop-3.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jarpi2100成功标志:输出EstimatedvalueofPiis3.14...在YARNUI中监控作业大数据项目实战提交后立即刷新http://localhost:8088状态变化:ACCEPTED→RUNNING→FINISHED点击ApplicationID可查看详细进度(Map/Reduce任务数)常见故障速查大数据项目实战现象可能原因快速解决作业一直ACCEPTEDNodeManager资源不足增加yarn_nodemanager_resource_memory-mb作业FAILED容器内存超限减少map数量或调大内存限制8088无法访问RM未启动或端口映射错dockerps检查,查看dockerlogsresourcemanager停止集群大数据项目实战停止并删除容器(保留网络和数据卷):docker-composedown停止所有正在运行的容器删除容器(但网络和数据卷默认保留)停止并删除所有资源(包括网络):docker-composedown--rmiall-v--rmiall:删除使用的镜像(谨慎使用)-v:删除关联的数据卷仅停止容器(不删除):docker-composestop容器保留,可再次docker-composestart启动重启集群:docker-composerestart注意:down后再次up会重新创建容器,配置更改会生效。云计算技术应用省级专业教学资源库Docker部署MySQL、Hive与Sqoop组件(上)大数据项目实战MySQL与HiveMetastore部署CONTENTS目录
在docker-compose.yml中添加MySQL服务01
添加Hive服务,配置Metastore连接MySQL02
验证HiveServer2(beeline连接)03
理解HiveMetastore的作用04添加MySQL服务(docker-compose.yml片段)大数据项目实战服务定义:关键点:设置root密码、创建metastore数据库、挂载数据卷持久化注意:密码强度在教学中可简单,生产环境需复杂大数据项目实战添加Hive服务(docker-compose.yml片段)服务定义:关键环境变量:连接URL、驱动、用户名密码、MetastoreURI、Thrift端口端口10000:HiveServer2服务端口(JDBC/Beeline连接)验证Hive部署大数据项目实战重启集群:docker-composeup-d(会自动添加新服务)查看日志:dockerlogs-fhive观察Metastore初始化连接Hive:dockerexec-ithivebeeline-ujdbc:hive2://localhost:10000简单测试:执行showdatabases;应显示default常见问题排查大数据项目实战问题现象可能原因解决方案Hive启动失败,日志中MySQL连接错误MySQL未就绪或连接参数错误检查depends_on,确保MySQL健康后再启动Hivebeeline连接超时HiveServer2未启动查看dockerlogshive,等待启动完成Accessdeniedforuser'root'MySQL密码不匹配检查环境变量中的密码是否一致Nosuitabledriver缺少MySQL驱动bde2020镜像已内置,如自定义镜像需手动添加云计算技术应用省级专业教学资源库Docker部署MySQL、Hive与Sqoop组件(中)大数据项目实战Sqoop数据迁移工具部署CONTENTS目录
在docker-compose.yml中添加Sqoop服务01
挂载MySQL驱动到Sqoop容器02
验证Sqoop连接MySQL(sqooplist-tables)03
理解Sqoop在数据迁移中的作用04添加Sqoop服务(docker-compose.yml片段)大数据项目实战服务定义:关键点:使用bde2020/sqoop:1.4.7镜像必须挂载MySQL驱动到/opt/sqoop/lib/目录下依赖MySQL和Hive(但仅用于测试连接)获取驱动:下载mysql-connector-java-5.1.49.jar(或更高版本)大数据项目实战验证Sqoop连接MySQL进入Sqoop容器:dockerexec-itsqoopbash列出MySQL中的所有数据库:sqooplist-databases--connectjdbc:mysql://mysql:3306/--usernameroot--password123456预期输出:information_schemametastoremysqlperformance_schemasys列出metastore数据库中的表:sqooplist-tables--connectjdbc:mysql://mysql:3306/metastore--usernameroot--password123456应输出Hive元数据表(如VERSION、DBS、TBLS等)常见问题排查大数据项目实战问题现象可能原因解决方案NosuitabledriverfoundMySQL驱动未挂载检查volumes路径和驱动文件是否存在CommunicationslinkfailureMySQL主机名或端口错误确认连接URL为jdbc:mysql://mysql:3306/(容器名)Accessdeniedforuser用户名或密码错误检查环境变量中的密码(123456)ConnectionrefusedMySQL容器未启动dockerps检查mysql状态,等待它健康后再试sqoop:commandnotfound镜像问题或未进入正确容器确认容器名是sqoop,进入后ls/opt/sqoop检查Sqoop基本用法简介大数据项目实战导出:Hive/HDFS→MySQL(sqoopexport)导入:MySQL→Hive/HDFS(sqoopimport)示例(导入):将MySQL表导入到HDFSsqoopimport--connectjdbc:mysql://mysql:3306/metastore--usernameroot--password123456--tableDBS--target-dir/user/sqoop/dbs示例(导出):后续项目九会详细使用优势:支持增量导入、并行控制、字段映射等云计算技术应用省级专业教学资源库Docker部署MySQL、Hive与Sqoop组件(下)大数据项目实战全栈验证与集群总结CONTENTS目录
启动完整集群(Hadoop+MySQL+Hive+Sqoop)01
验证HDFS(9870)和YARN(8088)WebUI02
验证Hive(beeline连接+简单建表查询)03
验证Sqoop(列出MySQLmetastore中的表)04启动完整集群大数据项目实战命令:docker-composeup-d查看容器状态:dockerps应看到至少6个容器(namenode,datanode,resourcemanager,nodemanager,mysql,hive,sqoop)等待时间:MySQL和Hive首次启动约30秒,耐心等待检查日志:dockerlogsmysql#确认MySQLreadyforconnectionsdockerlogshive#确认StartedHiveServer2dockerlogssqoop#确认容器启动成功大数据项目实战验证HDFS和YARNWebUIHDFS(NameNode):http://localhost:9870LiveNodes应为≥1集群容量正常YARN(ResourceManager):http://localhost:8088ActiveNodes应为≥1节点状态为RUNNING验证Hive和Sqoop大数据项目实战Hive验证:dockerexec-ithivebeeline-ujdbc:hive2://localhost:10000进入后执行:showdatabases;createtabletest(idint);droptabletest;exit;Sqoop验证:dockerexec-itsqoopsqooplist-tables--connectjdbc:mysql://mysql:3306/metastore--usernameroot--password123456应输出VERSION,DBS,TBLS等表名。常见问题与最终排查大数据项目实战问题现象可能原因解决方案某个容器不断重启端口冲突或配置错误查看该容器日志,修改yml后重建Hive连接MySQL失败MySQL未就绪等待30秒,或单独重启Hive:docker-composerestarthiveSqoop命令找不到未进入正确容器确认dockerexec-itsqoopbash后执行WebUI无法访问端口映射错误或防火墙检查dockerport映射,临时关闭防火墙整体验证通过但后续项目报错数据卷或网络不一致备份数据,docker-composedown-v后全新启动云计算技术应用省级专业教学资源库认识电商数据集与数据采集方法(上)大数据项目实战数据来源、业务含义与字段结构CONTENTS目录认识数据01电商项目中的常见数据类型02用户行为日志字段结构03数据字段与后续分析任务的关系04认识数据01清洗规则写错把正常的0元促销订单误判为异常数据02字段含义用错把category_id理解成商品ID,导致商品分析结果错误03指标计算错误PV统计行为次数,UV统计独立用户,二者不能混淆04可视化结论失真原始数据质量差,最终大屏展示也会失去参考价值先读懂数据,再处理数据;先理解业务,再编写程序。大数据项目实战大数据项目实战电商项目中的常见数据类型数据类型主要内容后续用途用户行为日志用户浏览、收藏、加购、购买等行为记录统计PV、UV、行为占比、活跃时段订单信息表订单编号、用户编号、商品编号、金额、支付时间计算客单价、复购率、RFM模型商品信息表商品编号、类目编号、商品名称、商品价格分析热销商品、商品转化率用户信息表用户编号、注册时间、性别、年龄区间等构建基础属性标签本项目重点关注:用户行为日志+订单信息+商品信息。用户行为日志字段结构大数据项目实战CSV示例user_id,item_id,category_id,behavior_type,timestamp10001,235088,4387,pv,2024-05-0108:12:3010002,128977,9821,cart,2024-05-0108:15:0910001,235088,4387,buy,2024-05-0108:20:41字段名字段含义示例说明user_id用户编号10001标识哪个用户产生了行为item_id商品编号235088标识用户操作的商品category_id商品类目编号4387标识商品所属类别behavior_type行为类型pv/cart/buy浏览、收藏、加购、购买等timestamp行为时间2024-05-0108:12:30用于分析活跃时段和趋势behavior_type:转化分析关键字段timestamp:时间维度分析关键字段用代码初步认识数据结构大数据项目实战Python#读取电商用户行为日志的前5行withopen("user_behavior.csv","r",encoding="utf-8")asfile:fori,lineinenumerate(file):print(line.strip())ifi==4:break1open()打开本地原始数据文件先少量查看,再批量处理,是数据分析中的基本习惯。2encoding="utf-8"指定文件编码,避免中文乱码3enumerate(file)同时获取行号和每一行内容4line.strip()去掉行尾换行符,便于观察5i==4只查看前5行,避免一次输出过多数据云计算技术应用省级专业教学资源库认识电商数据集与数据采集方法(下)大数据项目实战采集方式、数据合规与脱敏处理CONTENTS目录常见数据采集方法01本项目的数据来源与采集方式02数据采集中的安全与合规要求03用代码理解简单脱敏处理04大数据项目实战常见数据采集方法本课程重点:使用已准备好的电商原始数据,完成上传、清洗、分析和可视化。采集方式典型场景说明日志采集用户点击、浏览、登录行为从业务系统日志中采集用户行为数据库导出订单表、用户表、商品表从MySQL等数据库导出结构化数据网络爬虫公开网页商品信息、公开评论按规则抓取网页中的公开数据API接口第三方平台数据、企业内部接口通过接口按权限获取数据消息队列实时行为流、实时订单流通过Kafka等组件接收实时数据本项目的数据来源与采集方式01数据经过脱敏处理不包含真实姓名、手机号、身份证号、详细地址等敏感信息02保留真实业务结构包含用户、商品、行为、订单、时间等分析所需字段03包含少量脏数据如字段缺失、异常金额、重复记录,用于后续清洗练习04适合教学实训支撑HDFS上传、MapReduce清洗、Hive分析和BI可视化大数据项目实战项目数据流本地原始数据上传至HDFSMapReduce清洗Hive分析Sqoop到MySQLBI可视化大屏数据采集中的安全与合规要求01合法采集数据来源合法,不绕过权限,不非法获取数据02最小必要只采集完成业务分析所必需的数据03脱敏处理对姓名、手机号、身份证号、地址等敏感信息进行处理04明确用途用于教学实训、统计分析,不得用于无关用途大数据项目实战05安全存储上传、共享和展示过程中注意权限控制大数据项目实战哪些字段需要重点保护教学项目中应尽量使用脱敏数据、模拟数据或公开数据.字段类型示例处理建议直接身份信息姓名、身份证号、手机号删除、加密或脱敏联系方式手机号、邮箱、详细地址部分隐藏或哈希处理账户信息用户账号、支付账号严格加密,不直接展示位置信息GPS定位、详细住址降低精度,如只保留城市行为信息浏览、购买、收藏记录用编号替代真实身份交易信息金额、订单、支付时间保留分析字段,去除敏感关联用代码理解简单脱敏处理大数据项目实战Pythondefmask_phone(phone):
#判断手机号长度是否符合基本要求
iflen(phone)!=11:returnphone
#保留前三位和后四位,中间四位用星号替代
returnphone[:3]+"****"+phone[-4:]phone=masked_phone=mask_phone(phone)print(masked_phone)脱敏不是删除数据价值,而是在保护隐私的前提下保留分析价值。1len(phone)!=11判断手机号长度是否为11位,避免错误处理异常数据2phone[:3]截取手机号前三位3phone[-4:]截取手机号后四位4"****"用星号替代中间四位,降低个人信息泄露风险预期输出:138****5678云计算技术应用省级专业教学资源库HDFSShell命令基础与目录规划(上)大数据项目实战认识HDFS目录结构与常用命令格式CONTENTS目录HDFS在本项目中的作用01HDFSShell命令基本格式02常用查看类命令03常用目录管理命令04HDFS在本项目中的作用01存储原始数据如用户行为日志、订单数据、商品数据02存储清洗结果保存MapReduce清洗后的规范化数据03支撑Hive分析Hive表底层数据实际存储在HDFS中大数据项目实战项目数据流本地原始数据HDFS原始数据目录MapReduce清洗HDFS清洗结果目录Hive外部表分析HDFS不是临时文件夹,而是项目数据流转的核心存储层。HDFSShell命令基本格式大数据项目实战Shell#查看HDFS根目录
hdfsdfs-ls/#创建目录
hdfsdfs-mkdir/ecommerce#查看文件内容hdfsdfs-cat/ecommerce/raw/user_behavior.csv脱敏不是删除数据价值,而是在保护隐私的前提下保留分析价值。组成含义hdfsdfs调用HDFS文件系统命令-ls查看目录或文件-mkdir创建目录-cat查看文件内容/HDFS根目录HDFS路径以/开头,表示分布式文件系统路径,不是本地磁盘路径。大数据项目实战常用查看类命令删除命令要谨慎,尤其是-rm-r,会递归删除整个目录。命令作用示例-mkdir创建单级目录hdfsdfs-mkdir/ecommerce-mkdir-p创建多级目录hdfsdfs-mkdir-p/ecommerce/raw/user_behavior-rm删除文件hdfsdfs-rm/ecommerce/raw/test.csv-rm-r删除目录hdfsdfs-rm-r/ecommerce/raw/test-mv移动或重命名hdfsdfs-mv/oldpath/newpath-cp复制文件或目录hdfsdfs-cp/src/dest命令练习:创建项目根目录大数据项目实战Shell#1.查看HDFS根目录
hdfsdfs-ls/#2.创建项目根目录
hdfsdfs-mkdir/ecommerce#3.再次查看根目录,确认目录创建成功
hdfsdfs-ls/每做一步操作都进行验证,是HDFS实操中的基本习惯。检查要点1.命令是否在Hadoop容器或可访问HDFS的终端中执行;2.路径是否以/开头;3.目录名是否拼写正确;4.创建后是否使用-ls进行验证。✓预期结果/ecommerce出现在HDFS根目录列表中云计算技术应用省级专业教学资源库HDFSShell命令基础与目录规划(下)大数据项目实战项目目录规范、创建命令与结果验证CONTENTS目录HDFS目录规划01电商项目HDFS目录设计02创建目录并验证结果03常见问题与规范提醒04HDFS目录规划01数据分层清晰原始数据、清洗数据、分析结果分开存放02任务边界明确MapReduce读取哪里、输出哪里,一目了然03便于团队协作小组成员按照统一路径操作,减少路径错误大数据项目实战04方便后期维护数据可查、可追踪、可复用规则意识:规范目录规划体现责任意识目录规划就像文件归档:合同放合同柜,发票放发票夹,项目资料放项目文件夹。\n在大数据项目中,良好的文件管理习惯可以减少错误、提高协作效率,也体现技术人员严谨负责的职业素养。电商项目HDFS目录设计大数据项目实战/ecommerce├──raw│├──user_behavior│├──order│└──item├──clean│├──user_behavior│├──order│└──item├──warehouse│└──hive└──result├──pv_uv├──behavior├──conversion└──rfm目录作用/ecommerce/raw存放原始数据,不直接毅改/ecommerce/clean存放MapReduce清先后的数据/ecommerce/warehouse存放Hive表关联数据剧或数仓数据/ecommerce/result存放分结果数据创建电商项目目录大数据项目实战Shell多级项目目录优先使用hdfsdfs-mkdir–p。1-mkdir-p如果上级目录不存在,会自动创建2-mkdir-p如果目录已经存在,不会报错3-mkdir-p适合一次性创建多级项目目录#创建原始数据目录hdfsdfs-mkdir-p/ecommerce/raw/user_behaviorhdfsdfs-mkdir-p/ecommerce/raw/orderhdfsdfs-mkdir-p/ecommerce/raw/item#创建清洗结果目录hdfsdfs-mkdir-p/ecommerce/clean/user_behaviorhdfsdfs-mkdir-p/ecommerce/clean/orderhdfsdfs-mkdir-p/ecommerce/clean/item#创建数仓与分析结果目录hdfsdfs-mkdir-p/ecommerce/warehouse/hivehdfsdfs-mkdir-p/ecommerce/result/pv_uvhdfsdfs-mkdir-p/ecommerce/result/behaviorhdfsdfs-mkdir-p/ecommerce/result/conversionhdfsdfs-mkdir-p/ecommerce/result/rfm查看并验证目录结构大数据项目实战ShellRraw目录下应包含user_behavior、order、itemSresult目录下应包含pv_uv、behavior、conversion、rfm✓预期结果应能看到raw、clean、warehouse、result四个一级目录。检查要点一级目录是否完整子目录名称是否正确目录层级是否符合规划是否存在误建或重复目录逐项核对raw/clean/warehouse/result对照标准路径使用-ls-R发现后及时整理#查看项目根目录hdfsdfs-ls/ecommerce#递归查看完整目录结构hdfsdfs-ls-R/ecommerce#查看目录空间占用hdfsdfs-du-h/ecommerce大数据项目实战常见问题与规范提醒。问题现象可能原因解决方案mkdir:Nosuchfileordirectory使用了-mkdir但上级目录不存在改用hdfsdfs-mkdir-pFileexists目录已经存在使用-ls确认即可,无需重复创建Permissiondenied当前用户没有权限检查用户身份或目录权限目录层级混乱未提前规划路径按raw、clean、warehouse、result重新整理路径拼写错误手动输入不规范复制标准路径,创建后用-ls-R验证使用小写英文和下划线不使用中文目录名不使用空格和特殊符号同一项目采用统一命名规则删除目录前先使用-ls确认路径云计算技术应用省级专业教学资源库上传电商原始数据至HDFS指定目录(上)大数据项目实战上传前检查、put命令与用户行为数据上传CONTENTS目录上传前检查清单01hdfsdfs-put命令格式02上传用户行为日志03初步验证上传结果04上传前检查清单01检查Docker集群是否启动确认namenode、datanode等容器处于Up状态02检查HDFSWebUI是否可访问浏览器访问:http://localhost:987003检查HDFS目标目录是否存在如:/ecommerce/raw/user_behavior大数据项目实战04检查本地原始数据文件是否存在如:user_behavior.csv、order.csv、item.csv检查命令#查看容器状态dockerps#查看HDFS目标目录hdfsdfs-ls/ecommerce/raw#查看本地文件ls./data先检查环境,再执行上传,能减少大多数路径和目录错误。hdfsdfs-put命令格式大数据项目实战Shellhdfsdfs-put[本地文件路径][HDFS目标目录]#将本地user_behavior.csv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年三层交换机行业洞察报告及未来五至十年发展趋势报告
- 2026年生铁行业洞察报告及未来五至十年发展趋势报告
- 2026年其他水泥类似制品制造行业市场前景报告及未来五至十年产业链安全与韧性提升
- 2026年乌鲁木齐市头屯河区公务员人员招聘考试模拟试题与答案详解
- 2026年安全保护服务行业分析报告及未来五至十年竞争格局分析
- 2026年市场管理服务行业洞察报告及未来五至十年发展趋势报告
- 2026年其他清洁服务行业产业调研报告及未来五至十年ESG与绿色低碳转型
- 2026年废电路板行业洞察报告及未来五至十年发展趋势报告
- 2026年广西壮族自治区桂林市公务员人员招聘笔试备考试题与答案详解
- 2026年多式联运和运输代理行业现状及趋势分析报告及未来五至十年AI赋能与效率革命
- 上海交易集团秋招面笔试题及答案
- 两融风险测评题库及答案
- 2025-2026学年人教大同版(2024)小学英语四年级上册(全册)教学设计(附目录)
- 2025至2030年中国银耳市场全面调研及行业投资潜力预测报告
- 临床医学专业教学标准(高等职业教育专科)2025修订
- T/CAR 10-2022食品速冻装置隧道式速冻装置
- 景区团建合同协议书范本
- GB/T 45602-2025船舶与海洋技术可调式滚轮闸刀掣链器
- 动物营养与饲料学 课件 第四篇 饲料配方设计
- 露天矿山安全生产标准化管理制度汇编
- 城市居家适老化改造指导手册
评论
0/150
提交评论