《(全国职业技能比赛:高职)GZ033大数据应用开发赛题第10套.docx》由会员分享,可在线阅读,更多相关《(全国职业技能比赛:高职)GZ033大数据应用开发赛题第10套.docx(21页珍藏版)》请在优知文库上搜索。
1、2023年全国职业院校技能大赛赛题第10套赛项名称:大数据应用开发英又名称:BigDataAPPIiCationDeVeloPmentGZ033赛项组别:高等职业教育组赛项编号:背景描述工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑,工业大数据则是工业互联网实现工业要素互联之后的核心价值创造者。随着大数据行业的发展,工业数据收集呈现时间维度不断延长、数据范围不断扩大、数据粒度不断细化的趋势。以上三个维度
2、的变化使得企业所积累的数据量以加速度的方式在增加,最终构成了工业大数据的集合。为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用HudiSparkFlink.Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。任务A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各任务服务端说明。补充说明:宿主机及各容器节点可通过ASbrU工具或SSH客户端进行SSH访问。子任务一:HadoopHA安装配置本任务需要使用root用户完成相关配置,安装Hadoop需要配置
3、前置环境。命令中要求使用绝对路径,具体要求如下:1、从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linu-64.tar.gz,apache-ZOOkeePer-3.5.7-bin.tar.gz复制到容器MaSter中的optsoftware路径中(若路径不存在,则需新建),分别将MaSter节点Hadoop、ZooKeeper.JDK安装包解压到optmodule路径中(若路径不存在,则需新建),其中将JDK、HadOoP解压命令复制并粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;2、请完成host相关配置,将三个节点
4、分别命名为master、slavelSlaVe2并做免密登录,修改容器中etcprOfiIe文件,设置JDK环境变量并使其生效,分发jdk至slaveKslave2中,均配置完毕后在Master节点分别执行java-version和javacw命令,将命令行执行结果分别截图并粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;3、配置好ZookeePer,其中ZOOkeePer使用集群模式,分别在master、SIaVe1、slave2作为其集群的节点,使用zkServer.shstatus获取zookeeper服务端状态,将命令和结果截图粘贴至客户端桌面【Relea
5、se任务A提交结果.docx】中对应的任务序号下(注:只截取三个节点中zookeeperserver角色模式为leader的节点);4、配置好HadOOPHA,请将dfs.ha.namenodes,hadoopcluster设置为nnl、nn2,同时yarn,resourcemanager,ha.rm-ids设置为rml、rm2,并在Master启动nnl与rml,在slavel启动nn2与rm2,将InaSter、SlaVe1、SIaVe2均作为datanode,分发hadoop至slavelslave2中,启动yarn与hdfs的HA集群(HadoopHA集群),并在Master节点上使用
6、命令分别查看服务nn2与rm2进程状态,并将查看命令及结果截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;5、HadOOPHA配置并启动完毕后,使用jps在SlaVeI节点查看服务进程,将查看命令及结果截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下。子任务二:Flume安装配置本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:1、从宿主机/opt目录下将文件apache-flume-l.7.O-bin.tar.gz复制到容器master中的optsoftware路径中(若路径不存在,则
7、需新建),将MaSter节点FlUme安装包解压到optmodule目录下,将解压命令复制并粘贴至客户端桌面【Release、任务A提交结果.docx】中对应的任务序号下;2、完善相关配置,配置Flume环境变量,并使环境变量生效,执行命令flume-ngversion并将命令与结果截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;3、启动FlUme传输HadOOP日志(namenode或datanode日志),查看HDFS中tmpflume目录下生成的内容,将查看命令及结果(至少5条结果)截图并粘贴至客户端桌面【Release、任务A提交结果.docx中对应的
8、任务序号下。子任务三:CliCkHouse单节点安装配置本任务需要使用root用户完成相关配置,具体要求如下:1、从宿主机/opt目录下将CliCkhOUSe开头的相关文件复制到容器Master中的optmoduleCIiCkhoUSe路径中(若路径不存在,则需新建),将全部解压命令复制并粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;2、执行启动各个相关脚本,将全部启动命令复制并将执行结果(截取结果最后倒数15行即可)截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;3、设置远程访问并移除默认监听文件(IiStelI.xml),同
9、时由于9000端口被HadOOP占用,需要将CliCkhOUSe的端口更改为9001,并启动CliCkhOUse,启动后查看CliCkhOUSe运行状态,并将启动命令复制、查看运行状态命令复制并将执行结果截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下。任务B:离线数据处理(25分)环境说明:服务端登录地址详见各任务服务端说明。补充说明:各节点可通过ASbrU工具或SSH客户端进行SSH访问;主节点MySQL数据库用户名/密码:root123456(已配置远程连接);Spark任务在Yarn上用Client运行,方便观察日志。子任务一:数据抽取编写Scala代码
10、,使用Spark将MySQL库中表EnvironmentData,ChangeRecord,BaseMachine,MaChineDala,ProduceRecord全量抽取到HUdi的hudi_gy_ods库(路径为/user/hive/warehouse/hudi_gy_ods.db)中对应表environmentdata,changerecord,basemachine,machinedata,producerecord中。1、抽取MySQL的shtdindustry库中EnvironmentData表的全量数据进入Hudi的hudi_gy_ods库中表environmentdata,字
11、段排序、类型不变,同时添加静态分区,分区字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)PRECOMBINE_FIELD使用InPutTime,EnvoId作为主键。使用spark-sql的CIi执行showpartitionsods.environmentdata命令,将结果截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下;2、抽取MySQL的ShtCLindUStry库中ChangeReCOrd表的全量数据进入HUdi的hudi_gy_ods库中表changerecord,字段排序、类型不变,分区字段为
12、etldate,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyy三dd)。PRECOMBINE_FIELD使用ChangeEndTime,ChangeID和ChangeMachineID作为联合主键。使用spark-sql的Cli执行selectcount(*)fromods.changerecord命令,将CIi的执行结果分别截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下;3、抽取MySQL的shtd_industry库中BaseMachine表的全量数据进入Hudi的hudi_gy_ods库中表basemachine,字段排序、类型
13、不变,分区字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)oPRECOMBINE.FIELD使用MachineAddDate,BaseMachineID为主键。使用spark-sql的cli执行showpartitionsods.basemachine命令,将spark-sql的CIi的执行结果分别截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下;4、抽取MySQL的shtd_industry库中ProduceRecord表的全量数据进入Hudi的hudi_gy_ods库中表producerecord,剔除
14、ProducePrgCode字段,其余字段排序、类型不变,分区字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyy三dd)。PRECOMBINE_FIELD使用ProduceCodeEndTime,ProduceRecordID和ProduceMachineID为联合主键。使用spark-sql的cli执行showpartitionsods.producerecord命令,将spark-sql的cli的执行结果分别截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下;5、抽取MySQL的shtd_industry库中Mach
15、ineData表的全量数据进入Hudi的hudi_gy_ods库中表machinedata,字段排序、类型不变,分区字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。PRECoMBINE_FIELD使用MachineRecordDate,MaChineReCOrdID为主键。使用spark-sql的cli执行showpartitionsods.Diachincdata命令,将cli的执行结果分别截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下。子任务二:数据清洗编写Scala代码,使用Spark将OdS库中
16、相应表数据全量抽取到Hudi的hudi_gy_dwd库(路径为userhiveWarehOUSe/hudi_gy_dwd.db)中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-ddHH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-ddHH:mm:sso1抽取hudi_gy_ods库中environmentdata的全量数据进入Hudi的hudi_gy_dwd库中表fact_environment_data,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_userdwd_insert_timedwd_modify_user、dwd_mo