资源简介 模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop HA安装配置 Hadoop HA下的JDK的解压安装、JDK环境变量配置、ZK配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Hive安装配置 Hive的解压安装、环境变量配置、运行测试等 4任务三:Kafka安装配置 Kafka的配置文件修改、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Sqoop,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用MR,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark,在dwd层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对推荐系统的数据集进行特征提取及数据预处理等操作 5任务二:推荐系统 基于用户的推荐系统设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集端口及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用柱状图展示消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务二:用饼状图展示各地区消费能力 正确使用Vue.js框架,结合Echarts绘制饼状图 3任务三:用散点图展示总消费额变化 正确使用Vue.js框架,结合Echarts绘制散点图 3任务四:用条形图展示平均消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制条形图 3任务五:用折柱混合图展示地区平均消费额和国家平均消费额 正确使用Vue.js框架,结合Echarts绘制折柱混合图 4小计 15模块F:综合分析 任务一:数仓中Hive内外表对比 正确分析数仓中Hive的内表和外表 4任务二:对于数据挖掘模块中的用户推荐有什么好的建议 正确分析数据挖掘模块中的用户推荐并提供合理化建议 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 100模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop完全分布式安装配置 Hadoop完全分布式下的JDK的解压安装、JDK环境变量配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Spark on Yarn安装配置 Spark的解压安装、环境变量配置、on Yarn配置、运行测试等 4任务三:Flink on Yarn安装配置 Flink的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Spark,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Spark,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark,在dwd层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对推荐系统的数据集进行特征提取及数据预处理等操作 5任务二:推荐系统 基于用户的推荐系统设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集端口及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用柱状图展示消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务二:用饼状图展示各地区消费能力 正确使用Vue.js框架,结合Echarts绘制饼状图 3任务三:用折线图展示总消费额变化 正确使用Vue.js框架,结合Echarts绘制折线图 3任务四:用条形图展示平均消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制条形图 3任务五:用折柱混合图展示地区平均消费额和国家平均消费额 正确使用Vue.js框架,结合Echarts绘制折柱混合图 4小计 15模块F:综合分析 任务一:如何解决Job运行效率低的问题 正确分析如何解决Job运行效率低的问题 4任务二:对于数据挖掘模块中的用户推荐有什么好的建议 正确分析数据挖掘模块中的用户推荐并提供合理化建议 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 100模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop完全分布式安装配置 Hadoop完全分布式下的JDK的解压安装、JDK环境变量配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Sqoop安装配置 Sqoop的解压安装、环境变量配置、运行测试等 4任务三:Hive安装配置 Hive的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Spark,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Hive SQL,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark及Hive SQL,在dwd层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对工业数据集进行特征提取及数据预处理等操作 5任务二:报警预测 基于随机森林的设备报警预测的设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集文件及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用饼状图展示某设备当天各状态时间 正确使用Vue.js框架,结合Echarts绘制饼状图 2任务二:用柱状图展示各车间设备每月平均运行时长 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务三:用折线图展示机器运行时长 正确使用Vue.js框架,结合Echarts绘制折线图 2任务四:用散点图展示环境湿度变化 正确使用Vue.js框架,结合Echarts绘制散点图 3任务五:用条形图展示各机器每日产量 正确使用Vue.js框架,结合Echarts绘制条形图 3任务六:用折柱混合图展示机器日均产量和车间日均产量 正确使用Vue.js框架,结合Echarts绘制折柱混合图 3小计 15模块F:综合分析 任务一:Flink的时间语义分析 正确分析Flink的时间语义 4任务二:如何解决数据倾斜问题 正确分析如何解决数据倾斜问题 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 1002022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(1卷)任务书参赛队编号:背景描述大数据时代,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 完全分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从Master节点复制JDK解压后的安装文件到Slave1、Slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;在Master节点将Hadoop解压到/opt目录下,并将解压包分发至Slave1、Slave2节点中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop集群,查看Master节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Spark on Yarn安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将scala包解压到/usr/路径,配置环境变量使其生效,将完整命令复制粘贴至对应报告中(若已安装,则可跳过);配置/root/profile文件,设置Spark环境变量,并使环境变量生效将环境变量配置内容复制粘贴至对应报告中;完成on yarn相关配置,使用spark on yarn 的模式提交$SPARK_HOME/examples/jars/spark-examples_2.11-2.1.1.jar 运行的主类为org.apache.spark.examples.SparkPi,将运行结果粘贴至对应报告中。任务三:Flink on Yarn安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Flink包解压到路径/opt目录下,将完整命令复制粘贴至对应报告中;修改/root/profile文件,设置Flink环境变量,并使环境变量生效将环境变量配置内容复制粘贴至对应报告中;开启Hadoop集群,在yarn上以per job模式(即Job分离模式,不采用Session模式)运行 $FLINK_HOME/examples/batch/WordCount.jar,将运行结果最后10行复制粘贴至对应报告中。示例 :flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取编写Scala工程代码,将MySQL的shtd_store库中表CUSTOMER、NATION、PART、PARTSUPP、REGION、SUPPLIER的数据全量抽取到Hive的ods库中对应表customer,nation,part,partsupp,region,supplier中,将表ORDERS、LINEITEM的数据增量抽取到Hive的ods库中对应表ORDERS,LINEITEM中。抽取shtd_store库中CUSTOMER的全量数据进入Hive的ods库中表customer。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.customer命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中NATION的全量数据进入Hive的ods库中表nation。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.nation命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中PART的全量数据进入Hive的ods库中表part。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.part命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中PARTSUPP的全量数据进入Hive的ods库中表partsupp。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.partsupp命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中REGION的全量数据进入Hive的ods库中表region,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.region命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中SUPPLIER的全量数据进入Hive的ods库中表supplier,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.supplier命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中ORDERS的增量数据进入Hive的ods库中表orders,要求只取某年某月某日及之后的数据(包括某年某月某日),根据ORDERS表中ORDERKEY作为增量字段(提示:对比MySQL和Hive中的表的ORDERKEY大小),只将新增的数据抽入,字段类型不变,同时添加动态分区,分区字段类型为String,且值为ORDERDATE字段的内容(ORDERDATE的格式为yyyy-MM-dd,分区字段格式为yyyyMMdd),。并在hive cli执行select count(distinct(dealdate)) from ods.orders命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中LINEITEM的增量数据进入Hive的ods库中表lineitem,根据LINEITEM表中orderkey作为增量字段,只将新增的数据抽入,字段类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.lineitem命令,将结果截图复制粘贴至对应报告中。任务二:数据清洗编写Scala工程代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。将ods库中customer表数据抽取到dwd库中dim_customer的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照cust_key顺序排序,查询dim_customer前1条数据,将结果内容复制粘贴至对应报告中;将ods库中part表数据抽取到dwd库中dim_part的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照part_key顺序排序,查询dim_part前1条数据,将结果内容复制粘贴至对应报告中;将ods库中nation表数据抽取到dwd库中dim_nation的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照nation_key顺序排序,查询dim_nation前1条数据,将结果内容复制粘贴至对应报告中;将ods库中region表数据抽取到dwd库中dim_region的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中 dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照region_key顺序排序,查询dim_region表前1条数据,将结果内容复制粘贴至对应报告中;将ods库中orders表数据抽取到dwd库中fact_orders的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在执行hive cli执行select count(distinct(dealdate)) from dwd.fact_orders命令,将结果内容复制粘贴至对应报告中;待任务5完成以后,需删除ods.orders中的分区,仅保留最近的三个分区。并在hive cli执行show partitions ods.orders命令,将结果截图粘贴至对应报告中;将ods库中lineitem表数据抽取到dwd库中fact_lineitem的分区表,分区字段为etldate且值与ods库的相对应表该值相等,抽取的条件为根据orderkey和partkey进行去重,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli执行show partitions dwd.fact_lineitem命令,将结果截图粘贴至对应报告中。任务三:指标计算编写Scala工程代码,根据dwd层表统计每个地区、每个国家、每个月下单的数量和下单的总金额,存入MySQL数据库shtd_store的nationeverymonth表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注nationkey int 国家表主键nationname text 国家名称regionkey int 地区表主键regionname text 地区名称totalconsumption double 消费总额 当月消费订单总额totalorder int 订单总数 当月订单总额year int 年 订单产生的年month int 月 订单产生的月请根据dwd层表计算出某年每个国家的平均消费额和所有国家平均消费额相比较结果(“高/低/相同”),存入MySQL数据库shtd_store的nationavgcmp表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注nationkey int 国家表主键nationname text 国家名称nationavgconsumption double 该国家内客单价 该国家已购买产品的人均消费额allnationavgconsumption double 所有国家内客单价 所有国家已购买的产品的人均消费额comparison string 比较结果 国家内人均和所有国家人均相比 结果有:高/低/相同编写Scala工程代码,根据dwd层表统计连续两个月下单并且下单金额保持增长的用户,订单发生时间限制为大于等于某年,存入MySQL数据库shtd_store的usercontinueorder表(表结构如下)中。然后在Linux的MySQL命令行中根据订单总数、消费总额、客户主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注custkey int 客户主键custname text 客户名称month text 月 记录当前月和下月,用下划线‘_’相连 例如: 202201_202202 表示2022年1月到2月用户连续下单。totalconsumption double 消费总额 连续两月的订单总额totalorder int 订单总数 连续两月的订单总数模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_orders表,将其转换为以下类型矩阵:其中A表示用户A,B表示用户B,矩阵中的【0,1】值为1表示A用户与B用户之间购买了1个相同的零件,0表示A用户与B用户之间没有购买过相同的零件。将矩阵保存为txt文件格式并存储在HDFS上,使用命令查看文件前2行,将执行结果截图粘贴至对应报告中;对dwd库中dim_part获取partkey 、mfgr、brand、size、retailprice五个字段并进行数据预处理,再进行归一化并保存至dwd.fact_part_machine_data中,对制造商与品牌字段进行one-hot编码处理(将制造商与品牌的值转换成列名添加至表尾部,若该零部件属于该品牌则置为1,否则置为0),并按照partkey,size进行顺序排序,然后在Hive cli中执行命令desc dwd.fact_part_machine_data 中查询出结果,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注partkey double 零件keymfgr double 制造商brand double 品牌size double 型号retailprice double 价格Manufacturer#1 int 制造商1 若属于该制造商,则内容为1否则为0Manufacturer#2 int 制造商2 若属于该制造商,则内容为1否则为0.....Brand#1 int 品牌1 若属于该品牌,则内容为1否则为0Brand#2 int 品牌2 若属于该品牌,则内容为1否则为0……任务二:推荐系统根据任务一的结果,获取与该用户相似度(矩阵内的值最高)最高的前10个用户,并结合hive中dwd层的fact_orders表、fact_lineitem表、fact_part_machine_data表,获取到这10位用户已购买过的零部件,并剔除该用户已购买的零部件,并通过计算用户已购买产品与该数据集中余弦相似度累加,输出前5零部件key作为推荐使用。将输出结果保存至MySQL的part_machine表中。然后在Linux的MySQL命令行中查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中。模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集实时数据生成器26001端口的socket数据,将数据存入到Kafka的Topic中(topic名称为order,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算。使用Flink消费Kafka中的数据,统计个人实时订单总额,将key设置成totalprice存入Redis中(再使用hash数据格式,key存放为用户id,value存放为该用户消费总额),使用redis cli以get key方式获取totalprice值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面。在任务1进行的同时需监控若发现ORDERSTATUS字段为F,将数据存入MySQL表alarmdata中(可考虑侧边流的实现),然后在Linux的MySQL命令行中根据ORDERKEY逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费kafka中的数据,统计每分钟下单的数量,将key设置成totalorder存入redis中。使用redis cli以get key方式获取totalorder值,将结果粘贴至对应报告中,需两次截图,第一次截图(应该在job启动2分钟数据稳定后再截图)和第二次截图时间间隔应达一分钟以上,第一次截图放前面,第二次放后面。(注:流数据中,时间未精确到时分秒,建议StreamTimeCharacteristic设置成ProcessingTime(默认)或IngestionTime。)模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用柱状图展示消费额最高的国家编写Vue工程代码,根据接口,用柱状图展示某年某月消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用饼状图展示各地区消费能力编写Vue工程代码,根据接口,用饼状图展示某年第一季度各地区的消费总额占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示总消费额变化编写Vue工程代码,根据接口,用折线图展示某年上半年商城总消费额的变化情况,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用条形图展示平均消费额最高的国家编写Vue工程代码,根据接口,用条形图展示某年平均消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用折柱混合图展示地区平均消费额和国家平均消费额编写Vue工程代码,根据接口,用折柱混合图展示某年地区平均消费额和国家平均消费额的对比情况,柱状图展示平均消费额最高的5个国家,折线图展示每个国家所在的地区的平均消费额变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:如何解决Job运行效率低的问题在模块B中出现某些Job运行时间较长,你认为可能是哪些情况造成?有什么相关的方法吗?将内容编写至对应报告中。任务二:对于数据挖掘模块中的用户推荐有什么好的建议在模块C中使用基于用户的推荐系统思路对用户的相似性进行计算,从而为每个用户推荐商品,你认为可以从哪些方面再进行优化?这种推荐策略对业务的发展会起到什么样的作用?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。2022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(4卷)任务书参赛队编号:背景描述大数据时代,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 完全分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从Master节点复制JDK解压后的安装文件到Slave1、Slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;在Master节点将Hadoop解压到/opt目录下,并将解压包分发至Slave1、Slave2节点中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop集群,查看Master节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Hive安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Hive安装包解压到/opt目录下,将命令复制并粘贴至对应报告中;设置Hive环境变量,并使环境变量生效,并将环境变量配置内容复制并粘贴至对应报告中;完成相关配置并添加所依赖包,将MySQL数据库作为Hive元数据库。初始化Hive元数据,并通过schematool相关命令执行初始化,将初始化结果复制粘贴至对应报告中。任务三:Sqoop安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Sqoop安装包解压,修改解压后文件夹名为sqoop并移动到/usr/local/src路径下,将全部命令复制粘贴至对应报告中;完善相关配置,修改Sqoop环境变量,并使环境变量只对当前root用户生效,并将环境变量修改内容复制粘贴至对应报告中;测试Sqoop连接Master节点的MySQL数据库是否成功并展示所有的database,并将连接命令复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取编写Scala工程代码,将MySQL的shtd_store库中表CUSTOMER、NATION、PART、PARTSUPP、REGION、SUPPLIER的数据全量抽取到Hive的ods库中对应表customer,nation,part,partsupp,region,supplier中,将表ORDERS、LINEITEM的数据增量抽取到Hive的ods库中对应表ORDERS,LINEITEM中。抽取shtd_store库中CUSTOMER的全量数据进入Hive的ods库中表customer。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.customer命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中NATION的全量数据进入Hive的ods库中表nation。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.nation命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中PART的全量数据进入Hive的ods库中表part。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.part命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中PARTSUPP的全量数据进入Hive的ods库中表partsupp。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.partsupp命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中REGION的全量数据进入Hive的ods库中表region。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.region命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中SUPPLIER的全量数据进入Hive的ods库中表supplier。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.supplier命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中ORDERS的增量数据进入Hive的ods库中表orders,要求只取某年某月某日及之后的数据(包括某年某月某日),根据ORDERS表中ORDERKEY作为增量字段(提示:对比MySQL和Hive中的表的ORDERKEY大小),只将新增的数据抽入,字段类型不变,同时添加动态分区,分区字段类型为String,且值为ORDERDATE字段的内容(ORDERDATE的格式为yyyy-MM-dd,分区字段格式为yyyyMMdd),。并在hive cli执行select count(distinct(dealdate)) from ods.orders命令,将结果截图复制粘贴至对应报告中;抽取shtd_store库中LINEITEM的增量数据进入Hive的ods库中表lineitem,根据LINEITEM表中orderkey作为增量字段,只将新增的数据抽入,字段类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.lineitem命令,将结果截图复制粘贴至对应报告中。任务二:数据清洗编写Hive SQL代码在hive中运行,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。将ods库中customer表数据抽取到dwd库中dim_customer的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照cust_key顺序排序,查询dim_customer前1条数据,将结果内容复制粘贴至对应报告中;将ods库中part表数据抽取到dwd库中dim_part的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照part_key顺序排序,查询dim_part前1条数据,将结果内容复制粘贴至对应报告中;将ods库中nation表数据抽取到dwd库中dim_nation的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照nation_key顺序排序,查询dim_nation前1条数据,将结果内容复制粘贴至对应报告中;将ods库中region表数据抽取到dwd库中dim_region的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中 dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照region_key顺序排序,查询dim_region表前1条数据,将结果内容复制粘贴至对应报告中;将ods库中orders表数据抽取到dwd库中fact_orders的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在执行hive cli执行select count(distinct(dealdate)) from dwd.fact_orders命令,将结果内容复制粘贴至对应报告中;待任务5完成以后,需删除ods.orders中的分区,仅保留最近的三个分区。并在hive cli执行show partitions ods.orders命令,将结果截图粘贴至对应报告中;将ods库中lineitem表数据抽取到dwd库中fact_lineitem的分区表,分区字段为etldate且值与ods库的相对应表该值相等,抽取的条件为根据orderkey和partkey进行去重,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli执行show partitions dwd.fact_lineitem命令,将结果截图粘贴至对应报告中。任务三:指标计算编写Scala代码使用Spark引擎,并计算相关指标根据dwd层表统计每人每天下单的数量和下单的总金额,存入dws层的customer_consumption_day_aggr表(表结构如下)中,然后在hive cli中按照cust_key,totalconsumption, totalorder三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注cust_key int 客户keycust_name string 客户名称totalconsumption double 消费总额 当月消费订单总额totalorder int 订单总数 当月订单总额year int 年 订单产生的年month int 月 订单产生的月day int 日 订单产生的日根据dws层表customer_consumption_day_aggr表,再联合dwd.dim_region,dwd.dim_nation统计每人每个月下单的数量和下单的总金额,并按照cust_key,totalconsumption,totalorder,month进行分组逆序排序(以cust_key为分组条件),将计算结果存入MySQL数据库shtd_store的nationeverymonth表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注cust_key int 客户keycust_name string 客户名称nationkey int 国家表主键nationname text 国家名称regionkey int 地区表主键regionname text 地区名称totalconsumption double 消费总额 当月消费订单总额totalorder int 订单总数 当月订单总额year int 年 订单产生的年month int 月 订单产生的月sequence Int 次序请根据dws层表fact_orders表,再联合dwd.dim_nation计算出某年每个国家的消费额中中位数,存入MySQL数据库shtd_store的nationmedian表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注nationkey int 国家表主键nationname text 国家名称nationmedianconsumption double 该国家内客单价 该国家已购买产品的金额的中位数allnationmedianconsumption double 所有国家订单的中位数 所有国家已购买的产品的金额的中位数模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_orders表,将其转换为以下表:第一列为用户id,其余列名为零部件id ,按照cust_key进行顺序排序,保存在hive的dwd.fact_cust_part_machinelearning _data中,然后在hive cli中执行命令desc fact_cust_part_machinelearning 中查询出结果,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注cust_key double 客户keypartkey1 double 用户是否购买过零部件1 若用户购买过该零部件,则值为1,否则为0partkey2 double 用户是否购买过零部件2 若用户购买过该零部件,则值为1,否则为0partkey3 double 用户是否购买过零部件3 若用户购买过该零部件,则值为1,否则为0.....任务二:基于SVD分解的推荐系统根据任务一的结果,对其进行SVD分解,对数据进行降维(保留95%以上的特征信息),根据该用户已购买的产品分别与未购买的商品计算余弦相似度再进行累加求均值,将累加值最大的5件商品key进行输出作为推荐使用。将输出结果保存至MySQL的part_machine表中。然后在Linux的MySQL命令行中查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中。模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集实时数据生成器26001端口的socket数据,将数据存入到Kafka的Topic中(topic名称为order,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算。使用Flink消费Kafka中的数据,统计个人实时订单总额,将key设置成totalprice存入Redis中(再使用hash数据格式,key存放为用户id,value存放为该用户消费总额),使用redis cli以get key方式获取totalprice值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面;在任务1进行的同时需监控若发现ORDERSTATUS字段为F,将数据存入MySQL表alarmdata中(可考虑侧边流的实现),然后在Linux的MySQL命令行中根据ORDERKEY逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费kafka中的数据,统计每分钟下单的数量,将key设置成totalorder存入redis中。使用redis cli以get key方式获取totalorder值,将结果粘贴至对应报告中,需两次截图,第一次截图(应该在job启动2分钟数据稳定后再截图)和第二次截图时间间隔应达一分钟以上,第一次截图放前面,第二次放后面。(注:流数据中,时间未精确到时分秒,建议StreamTimeCharacteristic设置成ProcessingTime(默认)或IngestionTime。)模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用柱状图展示消费额最高的国家编写Vue工程代码,根据接口,用柱状图展示某年某月消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用饼状图展示各地区消费能力编写Vue工程代码,根据接口,用饼状图展示某年第一季度各地区的消费总额占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示总消费额变化编写Vue工程代码,根据接口,用折线图展示某年上半年商城总消费额的变化情况,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用条形图展示平均消费额最高的国家编写Vue工程代码,根据接口,用条形图展示某年平均消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用折柱混合图展示地区平均消费额和国家平均消费额编写Vue工程代码,根据接口,用折柱混合图展示某年地区平均消费额和国家平均消费额的对比情况,柱状图展示平均消费额最高的5个国家,折线图展示每个国家所在的地区的平均消费额变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:对于分组排序的理解在模块B中用到分组排序,请问有哪三种分组排序,他们各自的特点是什么。将内容编写至对应报告中。任务二:对于数据挖掘模块中的用户推荐有什么好的建议在模块C中使用基于用户的推荐系统思路对用户的相似性进行计算,从而为每个用户推荐商品,你认为可以从哪些方面再进行优化?这种推荐策略对业务的发展会起到什么样的作用?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。2022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(10卷)任务书参赛队编号:背景描述工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。党中央、国务院高度重视工业互联网发展,习近平总书记连续四年对推动工业互联网发展做出重要指示。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用 Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 伪分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将节点命名为master,并做免密登录,将全部命令复制并粘贴至对应报告中;修改Hadoop环境变量,并将(/etc/profile)配置文件内容复制粘贴至对应报告中;在主机Master上将Hadoop解压到/opt目录下,配置好相关文件(并要求namenode的web端访问端口配置为15887,配置指定MapReduce程序运行在Yarn上,指定ResourceManager的地址为伪分布式部署所在主机),将全部命令以及配置文件内容复制并粘贴至对应报告中;初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop,查看节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Flume安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:设置Flume环境变量,并使环境变量只对当前root用户生效,将变量内容复制并粘贴至对应报告中;修改并配置flume-env.sh文件,将修改内容复制并粘贴至对应报告中;复制Flume启动的配置文件flume-conf.properties.template并命名为conf-file,修改其中内容,监控Hadoop的namenode日志,传输到HDFS的是/tmp/flume目录,将conf-file中的修改内容复制并粘贴至对应报告中;启动Flume传输Hadoop日志,查看HDFS中/tmp/flume目录下生成的文件,将查看命令及结果(至少10条结果)复制并粘贴至对应报告中。任务三:Hive安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Hive安装包解压到/opt目录下,将完整命令复制粘贴至对应报告中;把解压后的apache-hive-1.2.2-bin文件夹更名为hive;进入hive文件夹使用ls进行查看,将完整命令复制粘贴至对应报告中;设置Hive环境变量,并使环境变量只对当前root用户生效;并将环境变量配置内容复制并粘贴至对应报告中;将Hive安装目录里hive-default.xml.template文件更名为hive-site.xml;将完整命令复制粘贴至对应报告中;修改hive-site.xml配置文件,将MySQL数据库作为Hive元数据库。将配置文件中配置Hive元存储的相关内容复制并粘贴至对应报告中;初始化Hive元数据,将MySQL数据库JDBC驱动拷贝到Hive安装目录的lib文件夹下;并通过schematool相关命令执行初始化,将初始化结果复制粘贴至对应报告中;完善其他配置并启动Hive,将命令行输出结果复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取编写Sqoop脚本,将MySQL库中表EnvironmentData,ChangeRecord,Basemachine,MachineData, ProduceRecord,BaseEmployee全量抽取到Hive的ods库中对应表EnvironmentData,ChangeRecord,Basemachine, MachineData, ProduceRecord,BaseEmployee中。抽取MySQL的shtd_store库中EnvironmentData表的全量数据进入Hive的ods库中表EnvironmentData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.EnvironmentData命令,然后查询展示5行数据,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ChangeRecord表的全量数据进入Hive的ods库中表ChangeRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ChangeRecord命令,然后查询展示5行数据,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中Basemachine表的全量数据进入Hive的ods库中表Basemachine,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.Basemachine命令,然后查询展示5行数据,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ProduceRecord表的全量数据进入Hive的ods库中表ProduceRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,然后查询展示5行数据,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中MachineData表的全量数据进入Hive的ods库中表MachineData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,然后查询展示5行数据,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中BaseEmployee表的全量数据进入Hive的ods库中表BaseEmployee,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,然后查询展示5行数据,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中。任务二:数据清洗编写Scala工程代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。抽取ods库中EnvironmentData的全量数据进入Hive的dwd库中表fact_environment_data,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_environment_data命令,将结果内容复制粘贴至对应报告中;抽取ods库中ChangeRecord的全量数据进入Hive的dwd库中表fact_change_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_change_record命令,将结果内容复制粘贴至对应报告中;抽取ods库中Basemachine的全量数据进入Hive的dwd库中表dim_machine,抽取数据之前需要对数据根据BaseMachineID进行去重处理。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照Base_machine顺序排序,查询dim_machine前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中ProduceRecord的全量数据进入Hive的dwd库中表fact_produce_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照produce_machine_id顺序排序,查询fact_produce_record前2条数据,将结果内容复制粘贴至对应报告中;(该表要求使用Java编写MR代码实现)抽取ods库中MachineData的全量数据进入Hive的dwd库中表fact_machine_data。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行show partitions dwd. fact_machine_data命令,将结果内容和MR的Diver类代码复制粘贴至对应报告中;(该表要求使用Java编写MR代码实现)抽取ods库中BaseEmployee的全量数据进入Hive的dwd库中表dim_employee。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行show partitions dwd. fact_machine_data命令,将结果内容和MR的Diver类代码复制粘贴至对应报告中。任务三:指标计算编写Hive SQL代码,根据dwd层dwd.fact_machine_data表联合dwd.dim_machine表统计出每个车间、每台设备、每天状态为“运行”的时长,将统计结果最长的两台设备信息写入DWS层的dws.machine_data_top2_day_aggr表(表结构如下)中,然后在Linux的MySQL命令行中根据车间号倒序查询5条数据,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注day string 日期 如:2021-10-01firstid int 第一 当日运行总时长第一secondid int 第二 当日运行总时长第二firsttime int 第一的时长 秒secondtime int 第二的时长 秒machinefactory int 车间号 统计所在车间号编写Hive SQL代码,根据DWS层的dws.machine_data_top2_day_aggr表联合dwd.dim_employee表、dwd.dim_machine表,统计每个月,各设备负责员(MachineResponsEmpID)所负责的设备中运行时长最长的设备,将计算结果存入MySQL数据库shtd_store的emplongestmachine表(表结构如下)中,然后在Linux的MySQL命令行中根据月份、设备负责人员、设备id倒序排序,查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注machineresponsempid int 设备负责人员machineid int 设备id 负责人员下运行最长设备month int 月 数据统计的月year int 年 数据统计的年编写Scala工程代码,根据dwd层dwd.fact_environment_data表,统计检测设备(BaseID)每日的PM10的检测平均浓度,然后将每个设备的平均浓度与厂内所有检测设备每日检测结果的平均浓度做比较(结果值为:高/低/相同)存入MySQL数据库shtd_store的表MachineRunningCompare(表结构如下)中,然后在Linux的MySQL命令行中根据检测设备ID倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注BaseID int 检测设备IDMachineAvg decimal 单设备检测平均值FactoryAvg decimal 厂内所有设备平均值Comparison string 比较结果 高/低/相同EnvDate string 检测日期 如:2021-12-12模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_machine_data表,根据以下要求转换: 获取最大分区的数据后,首先解析列get_xmldata中的数据(数据格式为xml,采用dom4j解析,会给出解析demo),并获取 主轴转速,主轴倍率,主轴负载,进给倍率,进给速度,PMC程序号,循环时间,运行时间,有效轴数,总加工个数,已使用内存,未使用内存,可用程序量,注册程序量等相关的值,同时转换machine_record_stat字段的值,若值为报警,则填写1,否则填写0,以下为表结构,将数据保存在dwd.fact_machine_learning_data,在hive cli中按照machine_record_id顺序排序,查询dwd.fact_machine_learning_data前1条数据,将结果内容复制粘贴至对应报告中。dwd.fact_machine_learning_data表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_id double 机器idmachine_record_mainshaft_speed double 主轴转速 默认0.0machine_record_mainshaft_multiplerate double 主轴倍率 默认0.0machine_record_mainshaft_load double 主轴负载 默认0.0machine_record_feed_speed double 进给倍率 默认0.0machine_record_feed_multiplerate double 进给速度 默认0.0machine_record_pmc_code double PMC程序号 默认0.0machine_record_cricle_time double 循环时间 默认0.0machine_record_run_time double 运行时间 默认0.0machine_record_efficive_shaft double 有效轴数 默认0.0machine_record_amount_process double 总加工个数 默认0.0machine_record_use_memory double 已使用内存 默认0.0machine_record_free_memory double 未使用内存 默认0.0machine_record_amount_use_code double 可用程序量 默认0.0machine_record_amount_free_code double 注册程序量 默认0.0machine_record_state double 机器状态 默认0.0任务二:报警预测根据任务一的结果,建立随机森林(随机森林相关参数考生可自定义,不做限制),使用任务一的结果训练随机森林模型,然后再将hive中dwd.fact_machine_learning_data_test(表结构与dwd.fact_machine_learning_data一致,但machine_record_state列值为空)转成向量,预测其是否报警将结果输出到mysql库shtd_industry中的ml_result表中。在Linux的MySQL命令行中查询出所有数据并按照machine_record_id顺序排序,将SQL语句与执行结果截图粘贴至对应报告中。ml_result表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_record_state double 机器状态 报警为1,其他状态则为0模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集/data_log目录下实时日志文件中的数据,将数据存入到Kafka的Topic中(topic名称分别为ChangeRecord和EnvironmentData,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为ChangeRecord及EnvironmentData的数据并进行相应的数据统计计算。使用Flink消费Kafka中EnvironmentData主题的数据,监控各环境检测设备数据,当温度(Temperature字段)持续10分钟高于39度时记录为预警数据(设备id,温度,预警时间),将该环境检测设备的预警数据写入Mysql表envtemperaturealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费Kafka中ChangeRecord主题的数据,每隔10分钟输出最近2小时内各车间运行时间最长的前两台设备,数据输出到MySQL表runlongestmachine表(表结构如下)中,然后在Linux的MySQL命令行中根据车间号正序查询前5条数据,此查询操作共做两次,间隔大于10分钟,将SQL语句与两次的执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注MachineFactory int 车间号Outtime varchar 毫秒数时间戳 计算数据输出时的时间Longestmachine int 最长设备 运行时间最长的设备号Secondmachine int 次长设备使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备状态信息,当某设备的状态在24小时内连续三小时为“预警”状态没有改变,则将该设备的状态数据写入MySql表recordstatealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中。模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用饼状图展示某设备当天各状态时间编写Vue工程代码,根据接口,用饼状图展示某日该设备的各个状态的运行时长占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用柱状图展示各车间设备每月平均运行时长编写Vue工程代码,根据接口,用柱状图展示各车间设备每月平均运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示机器运行时长编写Vue工程代码,根据接口,用折线图展示某机器在某一周的运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用散点图展示PM2.5浓度变化编写Vue工程代码,根据接口,用散点图展示设备所处环境的PM2.5浓度的变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用条形图展示各机器每日产量编写Vue工程代码,根据接口,用柱状图展示某机器在某天机器的产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务六:用折柱混合图展示机器日均产量和车间平均产量编写Vue工程代码,根据接口,用折柱状图展示某机器在某月的日均产量和车间的月均产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:HDFS存储小文件问题在HDFS数据存储是常常遇到小文件问题,小文件带来的危害有哪些?你知道的解决小文件问题的方法有哪些?将内容编写至对应报告中。任务二:如何解决数据倾斜问题当使用Spark产生了数据倾斜的情况时,请问有哪些方法可以解决这个问题呢?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。2022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(7卷)任务书参赛队编号:背景描述工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。党中央、国务院高度重视工业互联网发展,习近平总书记连续四年对推动工业互联网发展做出重要指示。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 完全分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从Master复制JDK解压后的安装文件到Slave1、Slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;在Master节点将Hadoop解压到/opt目录下,并将解压包分发至Slave1、Slave2中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop集群,查看Master节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Flume安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:设置Flume环境变量,并使环境变量只对当前root用户生效,将变量内容复制并粘贴至对应报告中;修改并配置flume-env.sh文件,将修改内容复制并粘贴至对应报告中;复制Flume启动的配置文件flume-conf.properties.template并命名为conf-file,修改其中内容,监控Hadoop的namenode日志,传输到HDFS的是/tmp/flume目录,将conf-file中的修改内容复制并粘贴至对应报告中;启动Flume传输Hadoop日志,查看HDFS中/tmp/flume目录下生成的文件,将查看命令及结果(至少10条结果)复制并粘贴至对应报告中。任务三:ZooKeeper安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:在Master节点解压ZooKeeper安装包到/opt目录下;设置ZOOKEEPER_HOME环境变量,并使环境变量只对当前用户生效,将环境变量内容复制粘贴至对应报告中;配置“zoo.cfg”配置文件,将dataDir配置为/tmp/zookeeper,将文件变更内容复制粘贴至对应报告中;启动每个虚拟机上的Zookeeper节点,启动完成之后查看Master节点的zkServer服务状态,将查看命令及结果复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取编写Scala工程代码,将MySQL库中表ChangeRecord,Basemachine,MachineData, ProduceRecord全量抽取到Hive的ods库中对应表ChangeRecord,Basemachine, MachineData, ProduceRecord中。抽取MySQL的shtd_store库中ChangeRecord表的全量数据进入Hive的ods库中表ChangeRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ChangeRecord命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中Basemachine表的全量数据进入Hive的ods库中表Basemachine,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.Basemachine命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ProduceRecord表的全量数据进入Hive的ods库中表ProduceRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中MachineData表的全量数据进入Hive的ods库中表MachineData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将结果截图复制粘贴至对应报告中。任务二:数据清洗编写Scala工程代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。抽取ods库中ChangeRecord的全量数据进入Hive的dwd库中表fact_change_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_change_record命令,将结果内容复制粘贴至对应报告中;抽取ods库中Basemachine的全量数据进入Hive的dwd库中表dim_machine,抽取数据之前需要对数据根据BaseMachineID进行去重处理。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照Base_machine顺序排序,查询dim_machine前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中ProduceRecord的全量数据进入Hive的dwd库中表fact_produce_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照produce_machine_id顺序排序,查询fact_produce_record前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中MachineData的全量数据进入Hive的dwd库中表fact_machine_data。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行show partitions dwd. fact_machine_data命令,将结果内容复制粘贴至对应报告中。任务三:指标计算编写Scala工程代码,根据dwd层MachineData表关联BaseMachine表统计每个车间中设备运行时长(即设备状态为“运行”)的中位数,存入MySQL数据库shtd_store的表MachineRunningMedian(表结构如下)中,然后在Linux的MySQL命令行中根据所属车间、设备id均为倒序排序,查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注MachineID int 设备idMachineFactory int 所属车间TotalRunningTime int 运行总时长 结果以秒为单位编写Scala工程代码,根据dwd层表统计在2021年,每个车间设备每月平均运行时长与公司所有设备每月平均运行时长(结果值为:高/低/相同),存入MySQL数据库shtd_store的表MachineRunningCompare(表结构如下)中,然后在Linux的MySQL命令行中根据月份和车间号倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注Month string 月份 如:2021-12MachineFactory int 车间号Comparison string 比较结果 高/低/相同FactoryAvg int 车间平均时长CompanyAvg int 企业平均时长编写Scala工程代码,根据dwd层表展示每一个设备最近第二次的状态(倒数第二次),如果设备仅有一种状态,返回该状态(一个设备不会同时拥有两种状态),存入MySQL数据库shtd_store的表RecentState(表结构如下)中,然后在Linux的MySQL命令行中根据设备id进行倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注MachineID int 设备idRecordState string 状态信息 最近第二次的状态ChangeStartTime timestamp 状态开始时间ChangeEndTime timestamp 状态结束时间模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_machine_data表,根据以下要求转换: 获取最大分区的数据后,首先解析列get_xmldata中的数据(数据格式为xml,采用dom4j解析,会给出解析demo),并获取 主轴转速,主轴倍率,主轴负载,进给倍率,进给速度,PMC程序号,循环时间,运行时间,有效轴数,总加工个数,已使用内存,未使用内存,可用程序量,注册程序量等相关的值,同时转换machine_record_stat字段的值,若值为报警,则填写1,否则填写0,以下为表结构,将数据保存在dwd.fact_machine_learning_data,在hive cli中按照machine_record_id顺序排序,查询dwd.fact_machine_learning_data前1条数据,将结果内容复制粘贴至对应报告中。dwd.fact_machine_learning_data表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_id double 机器idmachine_record_mainshaft_speed double 主轴转速 默认0.0machine_record_mainshaft_multiplerate double 主轴倍率 默认0.0machine_record_mainshaft_load double 主轴负载 默认0.0machine_record_feed_speed double 进给倍率 默认0.0machine_record_feed_multiplerate double 进给速度 默认0.0machine_record_pmc_code double PMC程序号 默认0.0machine_record_cricle_time double 循环时间 默认0.0machine_record_run_time double 运行时间 默认0.0machine_record_efficive_shaft double 有效轴数 默认0.0machine_record_amount_process double 总加工个数 默认0.0machine_record_use_memory double 已使用内存 默认0.0machine_record_free_memory double 未使用内存 默认0.0machine_record_amount_use_code double 可用程序量 默认0.0machine_record_amount_free_code double 注册程序量 默认0.0machine_record_state double 机器状态 默认0.0任务二:报警预测根据任务一的结果,建立随机森林(随机森林相关参数考生可自定义,不做限制),使用任务一的结果训练随机森林模型,然后再将hive中dwd.fact_machine_learning_data_test(表结构与dwd.fact_machine_learning_data一致,但machine_record_state列值为空)转成向量,预测其是否报警将结果输出到MySQL库shtd_industry中的ml_result表中。在Linux的MySQL命令行中查询出所有数据并按照machine_record_id顺序排序,将SQL语句与执行结果截图粘贴至对应报告中。ml_result表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_record_state double 机器状态 报警为1,其他状态则为0模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集/data_log目录下实时日志文件中的数据,将数据存入到Kafka的Topic中(topic名称分别为ChangeRecord和ProduceRecord,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入Kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为ChangeRecord的数据并进行相应的数据统计计算。使用Flink消费Kafka中ProduceRecord主题的数据,统计在已经检验的产品中,各设备每小时生产产品总数,将key设置成totalproduce存入Redis中(再使用hash数据格式,key存放为设备id,value存放为该设备生产总数),使用redis cli以get key方式获取totalproduce值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面。使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备从其他状态转变为“运行”状态的总次数,将key设置成totalswitch存入Redis中(再使用hash数据格式,key存放为设备id,value存放为该设备切换为“运行”的总次数),使用redis cli以get key方式获取totalswitch值,将结果截图粘贴至对应报告中,需要两次截图,第一次截图放前面,第二次放后面;使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备状态信息,当某设备的状态在24小时内连续三小时为“预警”状态没有改变,则将该设备的状态数据写入MySql表recordstatealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中。模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用饼状图展示某设备当天各状态时间编写Vue工程代码,根据接口,用饼状图展示某日该设备的各个状态的运行时长占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用柱状图展示各车间设备每月平均运行时长编写Vue工程代码,根据接口,用柱状图展示各车间设备每月平均运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示机器运行时长编写Vue工程代码,根据接口,用折线图展示某机器在某一周的运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用散点图展示PM2.5浓度变化编写Vue工程代码,根据接口,用散点图展示设备所处环境的PM2.5浓度的变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用折柱混合图展示机器日均产量和车间日均产量编写Vue工程代码,根据接口,用折柱混合图展示某机器在某月的日均产量和车间的日均产量,其中柱状图展示各机器的日均产量,折线图展示该机器所在车间的日均产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:Hive分区表作用Hive分区表的作用是什么,是否越多越好,为什么?将内容编写至对应报告中。任务二:如何解决数据倾斜问题当使用spark产生了数据倾斜的情况时,请问有哪些方法可以解决这个问题呢?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。2022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(2卷)任务书参赛队编号:背景描述大数据时代,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 完全分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从Master节点复制JDK解压后的安装文件到Slave1、Slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;在Master节点将Hadoop解压到/opt目录下,并将解压包分发至Slave1、Slave2节点中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop集群,查看Master节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Flume安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:设置Flume环境变量,并使环境变量只对当前root用户生效,将变量内容复制并粘贴至对应报告中;完善相关配置,监控Hadoop的namenode日志,传输到HDFS的是/tmp/flume目录,将conf-file中的修改内容复制并粘贴至对应报告中;启动Flume传输Hadoop日志,查看HDFS中/tmp/flume目录下生成的文件,将查看命令及结果(至少10条结果)复制并粘贴至对应报告中。任务三:Flink on Yarn安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Flink包解压到路径/opt目录下,将完整命令复制粘贴至对应报告中;修改/root/profile文件,设置Flink环境变量,并使环境变量生效,环境变量配置内容复制粘贴至对应报告中;开启Hadoop集群,在yarn上以per job模式(即Job分离模式,不采用Session模式)运行 $FLINK_HOME/examples/batch/WordCount.jar,将运行结果最后10行复制粘贴至对应报告中。示例 :flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取使用Sqoop工具,将MySQL的shtd_store库中表CUSTOMER、NATION、PART、PARTSUPP、REGION、SUPPLIER的数据全量抽取到Hive的ods库中对应表customer,nation,part,partsupp,region,supplier中,将表ORDERS、LINEITEM的数据增量抽取到Hive的ods库中对应表ORDERS,LINEITEM中。抽取shtd_store库中CUSTOMER的全量数据进入Hive的ods库中表customer。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.customer命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中NATION的全量数据进入Hive的ods库中表nation。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.nation命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中PART的全量数据进入Hive的ods库中表part。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.part命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中PARTSUPP的全量数据进入Hive的ods库中表partsupp。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.partsupp命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中REGION的全量数据进入Hive的ods库中表region。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.region命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中SUPPLIER的全量数据进入Hive的ods库中表supplier。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.supplier命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中ORDERS的增量数据进入Hive的ods库中表orders,要求只取某年某月某日及之后的数据(包括某年某月某日),对比MySQL和Hive中的表的ORDERKEY大小,根据ORDERS表中ORDERKEY作为增量字段,只将新增的数据抽入,字段类型不变,同时添加动态分区,分区字段类型为String,且值为ORDERDATE字段的内容(ORDERDATE的格式为yyyy-MM-dd,分区字段格式为yyyyMMdd),并在hive cli执行select count(distinct(dealdate)) from ods.orders命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中LINEITEM的增量数据进入Hive的ods库中表lineitem,根据LINEITEM表中orderkey作为增量字段,只将新增的数据抽入,字段类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.lineitem命令,将Sqoop提交命令及hive cli的执行结果分别截图粘贴至对应报告中。任务二:数据清洗编写Hive SQL代码在Hive中运行,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。将ods库中customer表数据抽取到dwd库中dim_customer的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照cust_key顺序排序,查询dim_customer前1条数据,将结果内容复制粘贴至对应报告中;将ods库中part表数据抽取到dwd库中dim_part的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照part_key顺序排序,查询dim_part前1条数据,将结果内容复制粘贴至对应报告中;将ods库中nation表数据抽取到dwd库中dim_nation的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照nation_key顺序排序,查询dim_nation前1条数据,将结果内容复制粘贴至对应报告中;将ods库中region表数据抽取到dwd库中dim_region的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中 dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照region_key顺序排序,查询dim_region表前1条数据,将结果内容复制粘贴至对应报告中;将ods库中orders表数据抽取到dwd库中fact_orders的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在执行hive cli执行select count(distinct(dealdate)) from dwd.fact_orders命令,将结果内容复制粘贴至对应报告中;待任务5完成以后,需删除ods.orders中的分区,仅保留最近的三个分区。并在hive cli执行show partitions ods.orders命令,将结果截图粘贴至对应报告中;将ods库中lineitem表数据抽取到dwd库中fact_lineitem的分区表,分区字段为etldate且值与ods库的相对应表该值相等,抽取的条件为根据orderkey和partkey进行去重,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli执行show partitions dwd.fact_lineitem命令,将结果截图粘贴至对应报告中。任务三:指标计算编写Scala代码在Spark集群中运行,统计相关指标。根据dwd层表统计每人每天下单的数量和下单的总金额,存入dws层的customer_consumption_day_aggr表(表结构如下)中,然后在hive cli中按照cust_key,totalconsumption, totalorder三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注cust_key int 客户keycust_name string 客户名称totalconsumption double 消费总额 当月消费订单总额totalorder int 订单总数 当月订单总额year int 年 订单产生的年month int 月 订单产生的月day int 日 订单产生的日根据dws层表customer_consumption_day_aggr表,再联合dwd.dim_region,dwd.dim_nation统计每人每个月下单的数量和下单的总金额,并按照cust_key,totalconsumption,totalorder,month进行分组逆序排序(以cust_key为分组条件),将计算结果存入MySQL数据库shtd_store的nationeverymonth表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注cust_key int 客户keycust_name string 客户名称nationkey int 国家表主键nationname text 国家名称regionkey int 地区表主键regionname text 地区名称totalconsumption double 消费总额 当月消费订单总额totalorder int 订单总数 当月订单总额year int 年 订单产生的年month int 月 订单产生的月sequence Int 次序请根据dws层表customer_consumption_day_aggr表,再联合dwd.dim_region,dwd.dim_nation计算出某年每个国家的平均消费额和所有国家平均消费额相比较结果(“高/低/相同”),存入MySQL数据库shtd_store的nationavgcmp表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注nationkey int 国家表主键nationname text 国家名称nationavgconsumption double 该国家内客单价 该国家已购买产品的人均消费额allnationavgconsumption double 所有国家内客单价 所有国家已购买的产品的人均消费额comparison string 比较结果 国家内人均和所有国家人均相比 结果有:高/低/相同模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_orders表,将其转换为以下类型矩阵:其中A表示用户A,B表示用户B,矩阵中的[0,1]值为1表示A用户与B用户之间购买了1个相同的零件,0表示A用户与B用户之间没有购买过相同的零件。将矩阵保存为txt文件格式并存储在HDFS上,使用命令查看文件前2行,将执行结果截图粘贴至对应报告中;对dwd库中dim_part获取partkey 、mfgr、brand、size、retailprice五个字段并进行数据预处理,再进行归一化并保存至dwd.fact_part_machine_data中,对制造商与品牌字段进行one-hot编码处理(将制造商与品牌的值转换成列名添加至表尾部,若该零部件属于该品牌则置为1,否则置为0),并按照partkey,size进行顺序排序,然后在Hive cli中执行命令desc dwd.fact_part_machine_data 中查询出结果,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注partkey double 零件keymfgr double 制造商brand double 品牌size double 型号retailprice double 价格Manufacturer#1 int 制造商1 若属于该制造商,则内容为1否则为0Manufacturer#2 int 制造商2 若属于该制造商,则内容为1否则为0.....Brand#1 int 品牌1 若属于该品牌,则内容为1否则为0Brand#2 int 品牌2 若属于该品牌,则内容为1否则为0……任务二:推荐系统根据任务一的结果,获取与该用户相似度(矩阵内的值最高)最高的前10个用户,并结合hive中dwd层的fact_orders表、fact_lineitem表、fact_part_machine_data表,获取到这10位用户已购买过的零部件,并剔除该用户已购买的零部件,通过计算用户已购买产品与该数据集中余弦相似度累加,输出前5零部件key作为推荐使用。将输出结果保存至MySQL的part_machine表中。然后在Linux的MySQL命令行中查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中。模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集实时数据生成器26001端口的socket数据,将数据存入到Kafka的Topic中(topic名称为order,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算。使用Flink消费Kafka中的数据,统计个人实时订单总额,将key设置成totalprice存入Redis中(再使用hash数据格式,key存放为用户id,value存放为该用户消费总额),使用redis cli以get key方式获取totalprice值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面。在任务1进行的同时需监控若发现ORDERSTATUS字段为F,将数据存入MySQL表alarmdata中(可考虑侧边流的实现),然后在Linux的MySQL命令行中根据ORDERKEY逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费kafka中的数据,统计每分钟下单的数量,将key设置成totalorder存入redis中。使用redis cli以get key方式获取totalorder值,将结果粘贴至对应报告中,需两次截图,第一次截图(应该在job启动2分钟数据稳定后再截图)和第二次截图时间间隔应达一分钟以上,第一次截图放前面,第二次放后面。(注:流数据中,时间未精确到时分秒,建议StreamTimeCharacteristic设置成ProcessingTime(默认)或IngestionTime。)模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用柱状图展示消费额最高的用户编写Vue工程代码,根据接口,用柱状图展示某年某月消费额最高的5个用户,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用玫瑰图展示各地区消费能力编写Vue工程代码,根据接口,用基础南丁格尔玫瑰图展示某年第一季度各地区的消费总额占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示总消费额变化编写Vue工程代码,根据接口,用折线图展示某年上半年商城总消费额的变化情况,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用条形图展示消费总额最高的国家编写Vue工程代码,根据接口,用条形图展示某年消费总额最高的10个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用折柱混合图展示地区平均消费额和国家平均消费额编写Vue工程代码,根据接口,用折柱混合图展示某年地区平均消费额和国家平均消费额的对比情况,柱状图展示平均消费额最高的5个国家,折线图展示每个国家所在的地区的平均消费额变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:对于数据仓库的理解在模块B中,对数据进行分层作用(数仓的作用)的理解,将内容编写至对应报告中。任务二:对于数据挖掘模块中的用户推荐有什么好的建议在模块C中使用基于用户的推荐系统思路对用户的相似性进行计算,从而为每个用户推荐商品,你认为可以从哪些方面再进行优化?这种推荐策略对业务的发展会起到什么样的作用?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop HA安装配置 Hadoop HA下的JDK的解压安装、JDK环境变量配置、ZK配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Flume安装配置 Flume的解压安装、环境变量配置、运行测试等 4任务三:Sqoop安装配置 Sqoop的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Sqoop,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Spark,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark,在dws层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对推荐系统的数据集进行特征提取及数据预处理等操作 5任务二:推荐系统 基于SVD分解的推荐系统设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集端口及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用柱状图展示消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务二:用饼状图展示各地区消费能力 正确使用Vue.js框架,结合Echarts绘制饼状图 3任务三:用折线图展示总消费额变化 正确使用Vue.js框架,结合Echarts绘制折线图 3任务四:用条形图展示平均消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制条形图 3任务五:用折柱混合图展示地区平均消费额和国家平均消费额 正确使用Vue.js框架,结合Echarts绘制折柱混合图 4小计 15模块F:综合分析 任务一:对于UDF/UDAF/UDTF的理解 正确分析UDF/UDAF/UDTF 4任务二:对于数据挖掘模块中的用户推荐有什么好的建议 正确分析数据挖掘模块中的用户推荐并提供合理化建议 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 1002022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(5卷)任务书参赛队编号:背景描述大数据时代,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop HA安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/local/src路径下,将命令复制并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,配置SSH免密登录,从Master节点复制JDK环境变量文件以及JDK解压后的安装文件到Slave1、Slave2节点,配置java环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;Zookeeper配置完毕后,分发Zookeeper,分别在3个节点启动Zookeeper,并在Slave2节点查看ZooKeeper运行状态,将查看命令和结果复制并粘贴至对应报告中;ZooKeeper、Hadoop HA配置完毕后,请将dfs.ha.namenodes.hadoopcluster设置为nn1,nn2并在Master节点启动Hadoop,并查看服务(nn1,nn2)进程状态,并将查看命令及结果复制并粘贴至对应报告中;Hadoop HA配置完毕后,在Slave1节点查看服务进程,将查看命令及结果复制并粘贴至对应报告中。任务二:Flume安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:设置Flume环境变量,并使环境变量只对当前root用户生效,将变量内容复制并粘贴至对应报告中;完善相关配置,监控Hadoop的namenode日志,传输到HDFS的是/tmp/flume目录,将conf-file中的修改内容复制并粘贴至对应报告中;启动Flume传输Hadoop日志,查看HDFS中/tmp/flume目录下生成的文件,将查看命令及结果(至少10条结果)复制并粘贴至对应报告中。任务三:Sqoop安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Sqoop安装包解压,修改解压后文件夹名为sqoop并移动到/usr/local/src路径下,将全部命令复制粘贴至对应报告中;完善相关配置,修改Sqoop环境变量,并使环境变量只对当前root用户生效,并将环境变量修改内容复制粘贴至对应报告中;测试Sqoop连接Master节点的MySQL数据库是否成功并展示所有的database,并将连接命令复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取使用Sqoop工具,将MySQL的shtd_store库中表CUSTOMER、NATION、PART、PARTSUPP、REGION、SUPPLIER的数据全量抽取到Hive的ods库中对应表customer,nation,part,partsupp,region,supplier中,将表ORDERS、LINEITEM的数据增量抽取到Hive的ods库中对应表ORDERS,LINEITEM中。抽取shtd_store库中CUSTOMER的全量数据进入Hive的ods库中表customer。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.customer命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中NATION的全量数据进入Hive的ods库中表nation。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.nation命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中PART的全量数据进入Hive的ods库中表part。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.part命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中PARTSUPP的全量数据进入Hive的ods库中表partsupp。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.partsupp命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中REGION的全量数据进入Hive的ods库中表region。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.region命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中SUPPLIER的全量数据进入Hive的ods库中表supplier。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.supplier命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中ORDERS的增量数据进入Hive的ods库中表orders,要求只取某年某月某日及之后的数据(包括某年某月某日),根据ORDERS表中ORDERKEY作为增量字段(提示:对比MySQL和Hive中的表的ORDERKEY大小),只将新增的数据抽入,字段类型不变,同时添加动态分区,分区字段类型为String,且值为ORDERDATE字段的内容(ORDERDATE的格式为yyyy-MM-dd,分区字段格式为yyyyMMdd),。并在hive cli执行select count(distinct(dealdate)) from ods.orders命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中LINEITEM的增量数据进入Hive的ods库中表lineitem,根据LINEITEM表中orderkey作为增量字段,只将新增的数据抽入,字段类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.lineitem命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中。任务二:数据清洗编写Scala工程代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。将ods库中customer表数据抽取到dwd库中dim_customer的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照cust_key顺序排序,查询dim_customer前1条数据,将结果内容复制粘贴至对应报告中;将ods库中part表数据抽取到dwd库中dim_part的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照part_key顺序排序,查询dim_part前1条数据,将结果内容复制粘贴至对应报告中;将ods库中nation表数据抽取到dwd库中dim_nation的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照nation_key顺序排序,查询dim_nation前1条数据,将结果内容复制粘贴至对应报告中;将ods库中region表数据抽取到dwd库中dim_region的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中 dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照region_key顺序排序,查询dim_region表前1条数据,将结果内容复制粘贴至对应报告中;将ods库中orders表数据抽取到dwd库中fact_orders的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在执行hive cli执行select count(distinct(dealdate)) from dwd.fact_orders命令,将结果内容复制粘贴至对应报告中;待任务5完成以后,需删除ods.orders中的分区,仅保留最近的三个分区。并在hive cli执行show partitions ods.orders命令,将结果截图粘贴至对应报告中;将ods库中lineitem表数据抽取到dwd库中fact_lineitem的分区表,分区字段为etldate且值与ods库的相对应表该值相等,抽取的条件为根据orderkey和partkey进行去重,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli执行show partitions dwd.fact_lineitem命令,将结果截图粘贴至对应报告中。任务三:指标计算编写Scala代码使用Spark引擎,并计算相关指标。根据dwd层表统计每人每天下单的数量和下单的总金额,存入dws层的customer_consumption_day_aggr表(表结构如下)中,然后在hive cli中按照cust_key,totalconsumption, totalorder三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注cust_key int 客户keycust_name string 客户名称totalconsumption double 消费总额 当月消费订单总额totalorder int 订单总数 当月订单总额year int 年 订单产生的年month int 月 订单产生的月day int 日 订单产生的日根据dws层表customer_consumption_day_aggr统计连续两个月下单并且下单金额保持增长的用户,订单发生时间限制为大于等于某年,存入MySQL数据库shtd_store的usercontinueorder表(表结构如下)中。然后在Linux的MySQL命令行中根据订单总数、消费总额、客户主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注custkey int 客户主键custname text 客户名称month text 月 记录当前月和下月,用下划线‘_’相连 例如: 202201_202202 表示2022年1月到2月用户连续下单。totalconsumption double 消费总额 连续两月的订单总额totalorder int 订单总数 连续两月的订单总数根据任务2的结果并结合表dim_nation与表customer_consumption_day_aggr,请计算每个国家连续两个月下单并且下单金额保持增长与该国已下单用户的占比,将结果存入MySQL数据库shtd_store的userrepurchased表(表结构如下)中。然后在Linux的MySQL命令行中根据订单总数、消费总额、客户主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注nationkey int 国家主键nationname string 国家名称purchaseduser int 下单人数 该国家内已下单人数repurchaseduser double 连续下单人数 该国家内连续两个月下单并且下单金额保持增长人数repurchaserate int 占比 下单人数/连续下单人数(保留3位小数)模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_orders表,将其转换为以下表:第一列为用户id,其余列名为零部件id ,按照cust_key进行顺序排序,保存在hive的dwd.fact_cust_part_machinelearning _data中,然后在Hive cli中执行命令desc fact_cust_part_machinelearning 中查询出结果,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注cust_key double 客户keypartkey1 double 用户是否购买过零部件1 若用户购买过该零部件,则值为1,否则为0partkey2 double 用户是否购买过零部件2 若用户购买过该零部件,则值为1,否则为0partkey3 double 用户是否购买过零部件3 若用户购买过该零部件,则值为1,否则为0.....任务二:基于SVD分解的推荐系统根据任务一的结果,对其进行SVD分解,对数据进行降维(保留95%以上的特征信息),根据该用户已购买的商品分别与未购买的商品计算余弦相似度再进行累加求均值,将结果最大的5件商品key进行输出作为推荐使用。将输出结果保存至MySQL的part_machine表中。然后在Linux的MySQL命令行中查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中。模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集实时数据生成器26001端口的socket数据,将数据存入到Kafka的Topic中(topic名称为order,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算。使用Flink消费Kafka中的数据,统计个人实时订单总额,将key设置成totalprice存入Redis中(再使用hash数据格式,key存放为用户id,value存放为该用户消费总额),使用redis cli以get key方式获取totalprice值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面。在任务1进行的同时需监控若发现ORDERSTATUS字段为F,将数据存入MySQL表alarmdata中(可考虑侧边流的实现),然后在Linux的MySQL命令行中根据ORDERKEY逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费kafka中的数据,统计每分钟下单的数量,将key设置成totalorder存入redis中。使用redis cli以get key方式获取totalorder值,将结果粘贴至对应报告中,需两次截图,第一次截图(应该在job启动2分钟数据稳定后再截图)和第二次截图时间间隔应达一分钟以上,第一次截图放前面,第二次放后面。(注:流数据中,时间未精确到时分秒,建议StreamTimeCharacteristic设置成ProcessingTime(默认)或IngestionTime。)模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用柱状图展示消费额最高的国家编写Vue工程代码,根据接口,用柱状图展示某年某月消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用饼状图展示各地区消费能力编写Vue工程代码,根据接口,用饼状图展示某年第一季度各地区的消费总额占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示总消费额变化编写Vue工程代码,根据接口,用折线图展示某年上半年商城总消费额的变化情况,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用条形图展示平均消费额最高的国家编写Vue工程代码,根据接口,用条形图展示某年平均消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用折柱混合图展示地区平均消费额和国家平均消费额编写Vue工程代码,根据接口,用折柱混合图展示某年地区平均消费额和国家平均消费额的对比情况,柱状图展示平均消费额最高的5个国家,折线图展示每个国家所在的地区的平均消费额变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:对于UDF/UDAF/UDTF理解在模块B中可能会用到UDF/UDAF/UDTF,他们的区别是什么,请问他们分别解决了什么问题?将内容编写至对应报告中。任务二:对于数据挖掘模块中的用户推荐有什么好的建议在模块C中使用基于用户的推荐系统思路对用户的相似性进行计算,从而为每个用户推荐商品,你认为可以从哪些方面再进行优化?这种推荐策略对业务的发展会起到什么样的作用?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop完全分布式安装配置 Hadoop完全分布式下的JDK的解压安装、JDK环境变量配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Flume安装配置 Flume的解压安装、环境变量配置、运行测试等 4任务三:Flink on Yarn安装配置 Flink的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Sqoop,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Hive SQL,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark,在dws层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对推荐系统的数据集进行特征提取及数据预处理等操作 5任务二:推荐系统 基于用户的推荐系统设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集端口及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用柱状图展示消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务二:用玫瑰图展示各地区消费能力 正确使用Vue.js框架,结合Echarts绘制玫瑰图 3任务三:用折线图展示总消费额变化 正确使用Vue.js框架,结合Echarts绘制折线图 3任务四:用条形图展示平均消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制条形图 3任务五:用折柱混合图展示地区平均消费额和国家平均消费额 正确使用Vue.js框架,结合Echarts绘制折柱混合图 4小计 15模块F:综合分析 任务一:对于数据仓库的理解 正确分析对数据仓库的分层理解 4任务二:对于数据挖掘模块中的用户推荐有什么好的建议 正确分析数据挖掘模块中的用户推荐并提供合理化建议 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 100模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop完全分布式安装配置 Hadoop完全分布式下的JDK的解压安装、JDK环境变量配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Sqoop安装配置 Sqoop的解压安装、环境变量配置、运行测试等 4任务三:Hive安装配置 Hive的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Sqoop,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Hive SQL,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark及Hive SQL,在dwd层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对工业数据集进行特征提取及数据预处理等操作 5任务二:报警预测 基于随机森林的设备报警预测的设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集文件及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用柱状图展示设备各个状态的运行时长 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务二:用饼状图展示所有设备的各状态总时长 正确使用Vue.js框架,结合Echarts绘制饼状图 2任务三:用折线图展示机器运行时长 正确使用Vue.js框架,结合Echarts绘制折线图 2任务四:用散点图展示PM2.5浓度变化 正确使用Vue.js框架,结合Echarts绘制散点图 3任务五:用条形图展示各机器每日产量 正确使用Vue.js框架,结合Echarts绘制条形图 3任务六:用折柱混合图展示机器日均产量和车间日均产量 正确使用Vue.js框架,结合Echarts绘制折柱混合图 3小计 15模块F:综合分析 任务一:如何解决Job运行效率低的问题 正确分析如何解决Job运行效率低的问题 4任务二:如何解决数据倾斜问题 正确分析如何解决数据倾斜问题 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 1002022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(3卷)任务书参赛队编号:背景描述大数据时代,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用MR、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop HA安装部署本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/local/src路径下,将命令复制并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,配置SSH免密登录,从Master节点复制JDK环境变量文件以及JDK解压后的安装文件到Slave1、Slave2节点,配置java环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;Zookeeper配置完毕后,分发Zookeeper,分别在3个节点启动Zookeeper,并在Slave2节点查看ZooKeeper运行状态,将查看命令和结果复制并粘贴至对应报告中;ZooKeeper、Hadoop HA配置完毕后,请将dfs.ha.namenodes.hadoopcluster设置为nn1,nn2并在Master节点启动Hadoop,并查看服务(nn1,nn2)进程状态,并将查看命令及结果复制并粘贴至对应报告中;Hadoop HA配置完毕后,在Slave1节点查看服务进程,将查看命令及结果复制并粘贴至对应报告中。任务二:Hive安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Hive安装包解压到/opt目录下,将命令复制并粘贴至对应报告中;设置Hive环境变量,并使环境变量生效,并将环境变量配置内容复制并粘贴至对应报告中;完成相关配置并添加所依赖包,将MySQL数据库作为Hive元数据库。初始化Hive元数据,并通过schematool相关命令执行初始化,将初始化结果复制粘贴至对应报告中。任务三:Kafka安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:修改Kafka的server.properties文件,并将修改的内容复制粘贴至对应报告中;完善其他配置并分发kafka文件到slave1,slave2中,并在每个节点启动Kafka,将Master节点的Kafka启动命令复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取请使用Sqoop工具,将MySQL的shtd_store库中表CUSTOMER、NATION、PART、PARTSUPP、REGION、SUPPLIER的数据全量抽取到Hive的ods库中对应表customer,nation,part,partsupp,region,supplier中,将表ORDERS、LINEITEM的数据增量抽取到Hive的ods库中对应表ORDERS,LINEITEM中。抽取shtd_store库中CUSTOMER的全量数据进入Hive的ods库中表customer。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.customer命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中NATION的全量数据进入Hive的ods库中表nation。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.nation命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中PART的全量数据进入Hive的ods库中表part。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.part命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中PARTSUPP的全量数据进入Hive的ods库中表partsupp。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.partsupp命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中REGION的全量数据进入Hive的ods库中表region。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.region命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中SUPPLIER的全量数据进入Hive的ods库中表supplier。字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.supplier命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中ORDERS的增量数据进入Hive的ods库中表orders,要求只取某年某月某日及之后的数据(包括某年某月某日),根据ORDERS表中ORDERKEY作为增量字段(提示:对比MySQL和Hive中的表的ORDERKEY大小),只将新增的数据抽入,字段类型不变,同时添加动态分区,分区字段类型为String,且值为ORDERDATE字段的内容(ORDERDATE的格式为yyyy-MM-dd,分区字段格式为yyyyMMdd),。并在hive cli执行select count(distinct(dealdate)) from ods.orders命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取shtd_store库中LINEITEM的增量数据进入Hive的ods库中表lineitem,根据LINEITEM表中orderkey作为增量字段,只将新增的数据抽入,字段类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.lineitem命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中。任务二:数据清洗编写Java工程代码,使用MR引擎,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。将ods库中customer表数据抽取到dwd库中dim_customer的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照cust_key顺序排序,查询dim_customer前1条数据,将MR jar包提交命令截图及hive cli的执行结果内容分别复制粘贴至对应报告中;将ods库中part表数据抽取到dwd库中dim_part的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照part_key顺序排序,查询dim_part前1条数据,将MR jar包提交命令截图及hive cli的执行结果内容分别复制粘贴至对应报告中;将ods库中nation表数据抽取到dwd库中dim_nation的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照nation_key顺序排序,查询dim_nation前1条数据,将MR jar包提交命令截图及hive cli的执行结果内容分别复制粘贴至对应报告中;将ods库中region表数据抽取到dwd库中dim_region的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中 dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照region_key顺序排序,查询dim_region表前1条数据,将MR jar包提交命令截图及hive cli的执行结果内容分别复制粘贴至对应报告中;将ods库中orders表数据抽取到dwd库中fact_orders的分区表,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在执行hive cli执行select count(distinct(dealdate)) from dwd.fact_orders命令,将MR jar包提交命令截图及hive cli的执行结果内容分别复制粘贴至对应报告中;待任务5完成以后,需删除ods.orders中的分区,仅保留最近的三个分区。并在hive cli执行show partitions ods.orders命令,将结果截图粘贴至对应报告中;将ods库中lineitem表数据抽取到dwd库中fact_lineitem的分区表,分区字段为etldate且值与ods库的相对应表该值相等,抽取的条件为根据orderkey和partkey进行去重,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli执行show partitions dwd.fact_lineitem命令,将MR jar包提交命令截图及hive cli的执行结果内容分别复制粘贴至对应报告中。任务三:指标计算编写Scala代码在Spark集群中运行,统计相关指标。根据dwd层表统计每个地区、每个国家、每个月下单的数量和下单的总金额,存入MySQL数据库shtd_store的nationeverymonth表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注nationkey int 国家表主键nationname text 国家名称regionkey int 地区表主键regionname text 地区名称totalconsumption double 消费总额 当月消费订单总额totalorder int 订单总数 当月订单总额year int 年 订单产生的年month int 月 订单产生的月请根据dwd层表计算出某年每个国家的平均消费额和所有国家平均消费额相比较结果(“高/低/相同”),存入MySQL数据库shtd_store的nationavgcmp表(表结构如下)中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注nationkey int 国家表主键nationname text 国家名称nationavgconsumption double 该国家内客单价 该国家已购买产品的人均消费额allnationavgconsumption double 所有国家内客单价 所有国家已购买的产品的人均消费额comparison string 比较结果 国家内人均和所有国家人均相比 结果有:高/低/相同根据dwd层表统计连续两个月下单并且下单金额保持增长的用户,订单发生时间限制为大于等于某年,存入MySQL数据库shtd_store的usercontinueorder表(表结构如下)中。然后在Linux的MySQL命令行中根据订单总数、消费总额、客户主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注custkey int 客户主键custname text 客户名称month text 月 记录当前月和下月,用下划线‘_’相连 例如: 202201_202202 表示2022年1月到2月用户连续下单。totalconsumption double 消费总额 连续两月的订单总额totalorder int 订单总数 连续两月的订单总数模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_orders表,将其转换为以下类型矩阵:其中A表示用户A,B表示用户B,矩阵中的【0,1】值为1表示A用户与B用户之间购买了1个相同的零件,0表示A用户与B用户之间没有购买过相同的零件。将矩阵保存为txt文件格式并存储在HDFS上,使用命令查看文件前2行,将执行结果截图粘贴至对应报告中;对dwd库中dim_part获取partkey 、mfgr、brand、size、retailprice五个字段并进行数据预处理,再进行归一化并保存至dwd.fact_part_machinelearning_data中,对制造商与品牌字段进行one-hot编码处理(将制造商与品牌的值转换成列名添加至表尾部,若该零部件属于该品牌则置为1,否则置为0),并按照partkey,size进行顺序排序,然后在Hive cli中执行命令desc dwd.fact_part_machinelearning_data 中查询出结果,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注partkey Double 零件keymfgr Double 制造商brand Double 品牌size Double 型号retailprice Double 价格Manufacturer#1 int 制造商1 若属于该制造商,则内容为1否则为0Manufacturer#2 int 制造商2 若属于该制造商,则内容为1否则为0.....Brand#1 int 品牌1 若属于该品牌,则内容为1否则为0Brand#2 int 品牌2 若属于该品牌,则内容为1否则为0……任务二:推荐系统根据任务一的结果,获取与该用户相似度(矩阵内的值最高)最高的前10个用户,并结合hive中dwd层的fact_orders表、fact_lineitem表、fact_part_machine_data表,获取到这10位用户已购买过的零部件,并剔除该用户已购买的零部件,并通过计算用户已购买产品与该数据集中余弦相似度累加,输出前5零部件key作为推荐使用。将输出结果保存至MySQL的part_machine表中。然后在Linux的MySQL命令行中查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中。模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集实时数据生成器26001端口的socket数据,将数据存入到Kafka的Topic中(topic名称为order,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算。使用Flink消费Kafka中的数据,统计个人实时订单总额,将key设置成totalprice存入Redis中(再使用hash数据格式,key存放为用户id,value存放为该用户消费总额),使用redis cli以get key方式获取totalprice值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面。在任务1进行的同时需监控若发现ORDERSTATUS字段为F,将数据存入MySQL表alarmdata中(可考虑侧边流的实现),然后在Linux的MySQL命令行中根据ORDERKEY逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费kafka中的数据,统计每分钟下单的数量,将key设置成totalorder存入redis中。使用redis cli以get key方式获取totalorder值,将结果粘贴至对应报告中,需两次截图,第一次截图(应该在job启动2分钟数据稳定后再截图)和第二次截图时间间隔应达一分钟以上,第一次截图放前面,第二次放后面。(注:流数据中,时间未精确到时分秒,建议StreamTimeCharacteristic设置成ProcessingTime(默认)或IngestionTime。)模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用柱状图展示消费额最高的国家编写Vue工程代码,根据接口,用柱状图展示某年某月消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用饼状图展示各地区消费能力编写Vue工程代码,根据接口,用饼状图展示某年第一季度各地区的消费总额占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用散点图展示总消费额变化编写Vue工程代码,根据接口,用散点图展示某年上半年商城总消费额的变化情况,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用条形图展示平均消费额最高的国家编写Vue工程代码,根据接口,用条形图展示某年平均消费额最高的5个国家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用折柱混合图展示地区平均消费额和国家平均消费额编写Vue工程代码,根据接口,用折柱混合图展示某年地区平均消费额和国家平均消费额的对比情况,柱状图展示平均消费额最高的5个国家,折线图展示每个国家所在的地区的平均消费额变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:数仓中Hive内外表对比在模块B中出现分区表均为内表,但分区表还有外表的存在形式,请问它们有哪些区别。将内容编写至对应报告中。任务二:对于数据挖掘模块中的用户推荐有什么好的建议在模块C中使用基于用户的推荐系统思路对用户的相似性进行计算,从而为每个用户推荐商品,你认为可以从哪些方面再进行优化?这种推荐策略对业务的发展会起到什么样的作用?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。2022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(6卷)任务书参赛队编号:背景描述工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。党中央、国务院高度重视工业互联网发展,习近平总书记连续四年对推动工业互联网发展做出重要指示。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 完全分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从Master节点复制JDK解压后的安装文件到Slave1、Slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;在Master节点将Hadoop解压到/opt目录下,并将解压包分发至Slave1、Slave2节点中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop集群,查看Master节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Sqoop安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Sqoop安装包解压到路径/opt目录下,将完整命令复制粘贴至对应报告中;修改Sqoop环境变量,并使环境变量只对当前root用户生效,将完整命令复制粘贴至对应报告中;修改并配置sqoop-env.sh文件,将完整命令复制粘贴至对应报告中;测试Sqoop连接Master节点的MySQL数据库是否成功并展示所有的database,将完整命令复制粘贴至对应报告中。任务三:Hive安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Hive安装包解压到/opt目录下,将完整命令复制粘贴至对应报告中;把解压后的apache-hive-1.2.2-bin文件夹更名为hive;进入hive文件夹使用ls进行查看,将完整命令复制粘贴至对应报告中;设置Hive环境变量,并使环境变量只对当前root用户生效;并将环境变量配置内容复制并粘贴至对应报告中;将Hive安装目录里hive-default.xml.template文件更名为hive-site.xml;将完整命令复制粘贴至对应报告中;修改hive-site.xml配置文件,将MySQL数据库作为Hive元数据库。将配置文件中配置Hive元存储的相关内容复制并粘贴至对应报告中;初始化Hive元数据,将MySQL数据库JDBC驱动拷贝到Hive安装目录的lib文件夹下;并通过schematool相关命令执行初始化,将初始化结果复制粘贴至对应报告中;完善其他配置并启动Hive,将命令行输出结果复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取编写Sqoop脚本,将MySQL库中表ChangeRecord,Basemachine,MachineData, ProduceRecord全量抽取到Hive的ods库中对应表ChangeRecord,Basemachine, MachineData, ProduceRecord中。抽取MySQL的shtd_store库中ChangeRecord表的全量数据进入Hive的ods库中表ChangeRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ChangeRecord命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中Basemachine表的全量数据进入Hive的ods库中表Basemachine,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.Basemachine命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ProduceRecord表的全量数据进入Hive的ods库中表ProduceRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中MachineData表的全量数据进入Hive的ods库中表MachineData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将Sqoop提交命令及hive cli的执行结果分别截图复制粘贴至对应报告中;任务二:数据清洗编写Hive SQL代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。抽取ods库中ChangeRecord的全量数据进入Hive的dwd库中表fact_change_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_change_record命令,将结果内容复制粘贴至对应报告中;抽取ods库中Basemachine的全量数据进入Hive的dwd库中表dim_machine,抽取数据之前需要对数据根据BaseMachineID进行去重处理。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照Base_machine顺序排序,查询dim_machine前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中ProduceRecord的全量数据进入Hive的dwd库中表fact_produce_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照produce_machine_id顺序排序,查询fact_produce_record前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中MachineData的全量数据进入Hive的dwd库中表fact_machine_data。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行show partitions dwd. fact_machine_data命令,将结果内容复制粘贴至对应报告中;任务三:指标计算编写Scala工程代码,根据dwd层表统计每个月、每个设备、每种状态的时长,存入MySQL数据库shtd_store的表(表结构如下)中,然后在Linux的MySQL命令行中根据设备id、状态持续时长均为逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注MachineID int 设备idChangeRecordState string 状态duration_time string 持续时长 当月该状态的时长和Year int 年 状态产生的年Month int 月 状态产生的月编写Hive SQL代码,根据dwd层MachineData表统计设备运行时各种状态(报警、离线、待机、运行)的连续日期。查询2021年10月各个设备连续同状态period_state的起止日期(ChangeStartTime和ChangeEndTime)。即如果机器运行了,就是运行状态的起止日期,如果机器待机了,就是待机状态的起止日期。最后结果各个设备内部按照起始日期排序。然后在Linux的MySQL命令行中根据machineID倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注machineID intperiod_state string 如:“待机” “运行”StartTime timestampEndTime timestamp模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_machine_data表,根据以下要求转换:获取最大分区的数据后,首先解析列get_xmldata中的数据(数据格式为xml,采用dom4j解析,会给出解析demo),并获取主轴转速,主轴倍率,主轴负载,进给倍率,进给速度,PMC程序号,循环时间,运行时间,有效轴数,总加工个数,已使用内存,未使用内存,可用程序量,注册程序量等相关的值,同时转换machine_record_stat字段的值,若值为报警,则填写1,否则填写0,以下为表结构,将数据保存在dwd.fact_machine_learning_data,在hive cli中按照machine_record_id顺序排序,查询dwd.fact_machine_learning_data前1条数据,将结果内容复制粘贴至对应报告中;dwd.fact_machine_learning_data表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_id double 机器idmachine_record_mainshaft_speed double 主轴转速 默认0.0machine_record_mainshaft_multiplerate double 主轴倍率 默认0.0machine_record_mainshaft_load double 主轴负载 默认0.0machine_record_feed_speed double 进给倍率 默认0.0machine_record_feed_multiplerate double 进给速度 默认0.0machine_record_pmc_code double PMC程序号 默认0.0machine_record_cricle_time double 循环时间 默认0.0machine_record_run_time double 运行时间 默认0.0machine_record_efficive_shaft double 有效轴数 默认0.0machine_record_amount_process double 总加工个数 默认0.0machine_record_use_memory double 已使用内存 默认0.0machine_record_free_memory double 未使用内存 默认0.0machine_record_amount_use_code double 可用程序量 默认0.0machine_record_amount_free_code double 注册程序量 默认0.0machine_record_state double 机器状态 默认0.0任务二:报警预测根据任务一的结果,建立随机森林(随机森林相关参数考生可自定义,不做限制),使用任务一的结果训练随机森林模型,然后再将hive中dwd.fact_machine_learning_data_test(表结构与dwd.fact_machine_learning_data一致,但machine_record_state列值为空)转成向量,预测其是否报警将结果输出到MySQL库shtd_industry中的ml_result表中。在Linux的MySQL命令行中查询出所有数据并按照machine_record_id顺序排序,将SQL语句与执行结果截图粘贴至对应报告中。ml_result表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_record_state double 机器状态 报警为1,其他状态则为0模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集/data_log目录下实时日志文件中的数据,将数据存入到Kafka的Topic中(topic名称分别为ChangeRecord和ProduceRecord,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为ChangeRecord的数据并进行相应的数据统计计算。使用Flink消费Kafka中ProduceRecord主题的数据,统计在已经检验的产品中,各设备每小时生产产品总数,将key设置成totalproduce存入Redis中(再使用hash数据格式,key存放为设备id,value存放为该设备生产总数),使用redis cli以get key方式获取totalproduce值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面;使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备状态信息,当某设备的状态在24小时内连续三小时为“预警”状态没有改变,则将该设备的状态数据写入MySql表recordstatealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中。模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用柱状图展示设备各个状态运行时长编写Vue工程代码,根据接口,用柱状图展示某年某月各设备的各个状态的运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用饼状图展示所有设备的各状态总时长编写Vue工程代码,根据接口,用饼状图展示某年第一季度所有设备的各状态总时长占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示机器运行时长编写Vue工程代码,根据接口,用折线图展示某机器在某一周的运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用散点图展示PM2.5浓度变化编写Vue工程代码,根据接口,用散点图展示设备所处环境的PM2.5浓度的变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用条形图展示各机器每日产量编写Vue工程代码,根据接口,用柱状图展示某机器在某天机器的产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务六:用折柱混合图展示机器日均产量和车间日均产量编写Vue工程代码,根据接口,用折柱混合图展示某机器在某月的日均产量和车间的日均产量,其中柱状图展示各机器的日均产量,折线图展示该机器所在车间的日均产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:如何解决Job运行效率低的问题在模块B中出现某些Job运行时间较长,你认为可能是哪些情况造成?有什么相关的方法吗?将内容编写至对应报告中。任务二:如何解决数据倾斜问题当使用spark产生了数据倾斜的情况时,请问有哪些方法可以解决这个问题呢?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop完全分布式安装配置 Hadoop完全分布式下的JDK的解压安装、JDK环境变量配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Flume安装配置 Flume的解压安装、环境变量配置、配置文件修改、运行测试等 4任务三:ZooKeeper安装配置 ZK的解压安装、环境变量配置、配置文件修改、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Spark,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Spark,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark,在dwd层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对工业数据集进行特征提取及数据预处理等操作 5任务二:报警预测 基于随机森林的设备报警预测的设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集文件及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用饼状图展示某设备当天各状态时间 正确使用Vue.js框架,结合Echarts绘制饼状图 2任务二:用柱状图展示各车间设备每月平均运行时长 正确使用Vue.js框架,结合Echarts绘制柱状图 3任务三:用折线图展示机器运行时长 正确使用Vue.js框架,结合Echarts绘制折线图 3任务四:用散点图展示PM2.5浓度变化 正确使用Vue.js框架,结合Echarts绘制散点图 3任务五:用折柱混合图展示机器日均产量和车间日均产量 正确使用Vue.js框架,结合Echarts绘制折柱混合图 4小计 15模块F:综合分析 任务一:Hive分区表作用 正确分析Hive分区表的作用 4任务二:如何解决数据倾斜问题 正确分析如何解决数据倾斜问题 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 1002022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(9卷)任务书参赛队编号:背景描述工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。党中央、国务院高度重视工业互联网发展,习近平总书记连续四年对推动工业互联网发展做出重要指示。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用 Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 完全分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从Master节点复制JDK解压后的安装文件到Slave1、Slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;在Master节点将Hadoop解压到/opt目录下,并将解压包分发至Slave1、Slave2中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop集群,查看Master节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Sqoop安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Sqoop安装包解压到路径/opt目录下,将完整命令复制粘贴至对应报告中;修改Sqoop环境变量,并使环境变量只对当前root用户生效,将完整命令复制粘贴至对应报告中;修改并配置sqoop-env.sh文件,将完整命令复制粘贴至对应报告中;测试Sqoop连接Master节点的MySQL数据库是否成功并展示所有的database,将完整命令复制粘贴至对应报告中。任务三:Hive安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Hive安装包解压到/opt目录下,将完整命令复制粘贴至对应报告中;把解压后的apache-hive-1.2.2-bin文件夹更名为hive;进入hive文件夹使用ls进行查看,将完整命令复制粘贴至对应报告中;设置Hive环境变量,并使环境变量只对当前root用户生效;并将环境变量配置内容复制并粘贴至对应报告中;将Hive安装目录里hive-default.xml.template文件更名为hive-site.xml;将完整命令复制粘贴至对应报告中;修改hive-site.xml配置文件,将MySQL数据库作为Hive元数据库。将配置文件中配置Hive元存储的相关内容复制并粘贴至对应报告中;初始化Hive元数据,将MySQL数据库JDBC驱动拷贝到Hive安装目录的lib文件夹下;并通过schematool相关命令执行初始化,将初始化结果复制粘贴至对应报告中;完善其他配置并启动Hive,将命令行输出结果复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取编写Scala工程代码,将MySQL库中表EnvironmentData,ChangeRecord,Basemachine,MachineData, ProduceRecord全量抽取到Hive的ods库中对应表EnvironmentData,ChangeRecord,Basemachine, MachineData, ProduceRecord中。抽取MySQL的shtd_store库中EnvironmentData表的全量数据进入Hive的ods库中表EnvironmentData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.EnvironmentData命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ChangeRecord表的全量数据进入Hive的ods库中表ChangeRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ChangeRecord命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中Basemachine表的全量数据进入Hive的ods库中表Basemachine,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.Basemachine命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ProduceRecord表的全量数据进入Hive的ods库中表ProduceRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中MachineData表的全量数据进入Hive的ods库中表MachineData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将结果截图复制粘贴至对应报告中;任务二:数据清洗编写Hive SQL代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。抽取ods库中EnvironmentData的全量数据进入Hive的dwd库中表fact_environment_data,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_environment_data命令,将结果内容复制粘贴至对应报告中;抽取ods库中ChangeRecord的全量数据进入Hive的dwd库中表fact_change_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_change_record命令,将结果内容复制粘贴至对应报告中;抽取ods库中Basemachine的全量数据进入Hive的dwd库中表dim_machine,抽取数据之前需要对数据根据BaseMachineID进行去重处理。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照Base_machine顺序排序,查询dim_machine前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中ProduceRecord的全量数据进入Hive的dwd库中表fact_produce_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照produce_machine_id顺序排序,查询fact_produce_record前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中MachineData的全量数据进入Hive的dwd库中表fact_machine_data。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行show partitions dwd. fact_machine_data命令,将结果内容复制粘贴至对应报告中;任务三:指标计算编写Scala工程代码,根据dwd层dwd.fact_machine_data表统计设备运行时各种状态(报警、离线、待机、运行)的连续日期。查询2021年10月各个设备连续同状态period_state的起止日期(ChangeStartTime和ChangeEndTime)。即如果机器运行了,就是运行状态的起止日期,如果机器待机了,就是待机状态的起止日期。最后结果各个设备内部按照起始日期排序。然后在Linux的MySQL命令行中根据machineID倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注machineID intperiod_state string 如:“待机” “运行”StartTime timestampEndTime timestamp编写Hive SQL代码,根据dwd层表展示每一个设备最近第二次的状态(倒数第二次),如果设备仅有一种状态,返回该状态(一个设备不会同时拥有两种状态),存入MySQL数据库shtd_store的表RecentState(表结构如下)中,然后在Linux的MySQL命令行中根据设备id进行倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注MachineID int 设备idRecordState string 状态信息 最近第二次的状态ChangeStartTime timestamp 状态开始时间ChangeEndTime timestamp 状态结束时间编写hql代码,根据dwd层dwd.fact_environment_data表,统计检测设备(BaseID)每日的平均湿度(Humidity),然后将每个设备的平均湿度与厂内所有检测设备每日检测结果的平均湿度做比较(结果值为:高/低/相同)存入MySQL数据库shtd_store的表MachineRunningCompare(表结构如下)中,然后在Linux的MySQL命令行中根据检测设备ID倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注BaseID int 检测设备IDMachineAvg decimal 单设备检测平均值FactoryAvg decimal 厂内所有设备平均值Comparison string 比较结果 高/低/相同EnvDate string 检测日期 如:2021-12-12模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_machine_data表,根据以下要求转换: 获取最大分区的数据后,首先解析列get_xmldata中的数据(数据格式为xml,采用dom4j解析,会给出解析demo),并获取主轴转速,主轴倍率,主轴负载,进给倍率,进给速度,PMC程序号,循环时间,运行时间,有效轴数,总加工个数,已使用内存,未使用内存,可用程序量,注册程序量等相关的值,同时转换machine_record_stat字段的值,若值为报警,则填写1,否则填写0,以下为表结构,将数据保存在dwd.fact_machine_learning_data,在hive cli中按照machine_record_id顺序排序,查询dwd.fact_machine_learning_data前1条数据,将结果内容复制粘贴至对应报告中;dwd.fact_machine_learning_data表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_id double 机器idmachine_record_mainshaft_speed double 主轴转速 默认0.0machine_record_mainshaft_multiplerate double 主轴倍率 默认0.0machine_record_mainshaft_load double 主轴负载 默认0.0machine_record_feed_speed double 进给倍率 默认0.0machine_record_feed_multiplerate double 进给速度 默认0.0machine_record_pmc_code double PMC程序号 默认0.0machine_record_cricle_time double 循环时间 默认0.0machine_record_run_time double 运行时间 默认0.0machine_record_efficive_shaft double 有效轴数 默认0.0machine_record_amount_process double 总加工个数 默认0.0machine_record_use_memory double 已使用内存 默认0.0machine_record_free_memory double 未使用内存 默认0.0machine_record_amount_use_code double 可用程序量 默认0.0machine_record_amount_free_code double 注册程序量 默认0.0machine_record_state double 机器状态 默认0.0任务二:报警预测根据任务一的结果,建立随机森林(随机森林相关参数考生可自定义,不做限制),使用任务一的结果训练随机森林模型,然后再将hive中dwd.fact_machine_learning_data_test(表结构与dwd.fact_machine_learning_data一致,但machine_record_state列值为空)转成向量,预测其是否报警将结果输出到mysql库shtd_industry中的ml_result表中。在Linux的MySQL命令行中查询出所有数据并按照machine_record_id顺序排序,将SQL语句与执行结果截图粘贴至对应报告中。ml_result表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_record_state double 机器状态 报警为1,其他状态则为0模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集/data_log目录下实时日志文件中的数据,将数据存入到Kafka的Topic中(topic名称分别为ChangeRecord和EnvironmentData,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为ChangeRecord的数据并进行相应的数据统计计算。使用Flink消费Kafka中EnvironmentData主题的数据,监控各环境检测设备数据,当温度(Temperature字段)持续10分钟高于39度时记录为预警数据(设备id,温度,预警时间),将该环境检测设备的预警数据写入Mysql表envtemperaturealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备从其他状态转变为“运行”状态的总次数,将key设置成totalswitch存入Redis中(再使用hash数据格式,key存放为设备id,value存放为该设备切换为“运行”的总次数),使用redis cli以get key方式获取totalswitch值,将结果截图粘贴至对应报告中,需要两次截图,第一次截图放前面,第二次放后面。使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备状态信息,当某设备的状态在24小时内连续三小时为“预警”状态没有改变,则将该设备的状态数据写入MySQL表recordstatealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中;模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用饼状图展示某设备当天各状态时间编写Vue工程代码,根据接口,用饼状图展示某日该设备的各个状态的运行时长占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用柱状图展示各车间设备每月平均运行时长编写Vue工程代码,根据接口,用柱状图展示各车间设备每月平均运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用折线图展示机器运行时长编写Vue工程代码,根据接口,用折线图展示某机器在某一周的运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用散点图展示环境湿度变化编写Vue工程代码,根据接口,用散点图展示设备所处环境的湿度(Humidity)的变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用条形图展示各机器每日产量编写Vue工程代码,根据接口,用柱状图展示某机器在某天机器的产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务六:用折柱混合图展示机器日均产量和车间平均产量编写Vue工程代码,根据接口,用折柱状图展示某机器在某月的日均产量和车间的月均产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:Flink的时间语义分析Flink有哪些时间语义,有哪些使用场景?将内容编写至对应报告中。任务二:如何解决数据倾斜问题当使用spark产生了数据倾斜的情况时,请问有哪些方法可以解决这个问题呢?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop完全分布式安装配置 Hadoop完全分布式下的JDK的解压安装、JDK环境变量配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Kafka安装配置 ZK的解压安装配置、Kafka的安装及配置文件修改、运行测试等 4任务三:Hive安装配置 Hive的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Spark,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Hive SQL,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark,在dwd层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对工业数据集进行特征提取及数据预处理等操作 5任务二:报警预测 基于随机森林的设备报警预测的设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集文件及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用饼状图展示某设备当天各状态时间 正确使用Vue.js框架,结合Echarts绘制饼状图 2任务二:用柱状图展示各车间设备每月平均运行时长 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务三:用散点图展示机器运行时长 正确使用Vue.js框架,结合Echarts绘制散点图 2任务四:用折线图展示PM2.5浓度变化 正确使用Vue.js框架,结合Echarts绘制折线图 3任务五:用条形图展示各机器每日产量 正确使用Vue.js框架,结合Echarts绘制条形图 3任务六:用折柱混合图展示机器日均产量和车间日均产量 正确使用Vue.js框架,结合Echarts绘制折柱混合图 3小计 15模块F:综合分析 任务一:Flink的时间语义分析 正确分析Flink的时间语义 4任务二:如何解决数据倾斜问题 正确分析如何解决数据倾斜问题 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 100模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop伪分布式安装配置 Hadoop伪分布式下的JDK的解压安装、JDK环境变量配置、Hadoop配置文件修改、运行测试等 7任务二:Flume安装配置 Flume的解压安装、环境变量配置、配置文件修改、运行测试等 4任务三:Hive安装配置 Hive的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Sqoop,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Spark及MR,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Hive SQL及Spark,在dwd及dws层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对工业数据集进行特征提取及数据预处理等操作 5任务二:报警预测 基于随机森林的设备报警预测的设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集文件及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用饼状图展示某设备当天各状态时间 正确使用Vue.js框架,结合Echarts绘制饼状图 2任务二:用柱状图展示各车间设备每月平均运行时长 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务三:用折线图展示机器运行时长 正确使用Vue.js框架,结合Echarts绘制折线图 2任务四:用散点图展示PM2.5浓度变化 正确使用Vue.js框架,结合Echarts绘制散点图 3任务五:用条形图展示各机器每日产量 正确使用Vue.js框架,结合Echarts绘制条形图 3任务六:用折柱混合图展示机器日均产量和车间日均产量 正确使用Vue.js框架,结合Echarts绘制折柱混合图 3小计 15模块F:综合分析 任务一:HDFS存储小文件问题 正确分析HDFS存储小文件问题 4任务二:如何解决数据倾斜问题 正确分析如何解决数据倾斜问题 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 1002022年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(8卷)任务书参赛队编号:背景描述工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。党中央、国务院高度重视工业互联网发展,习近平总书记连续四年对推动工业互联网发展做出重要指示。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用 Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。模块A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问; 相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略; 所有模块中应用命令必须采用绝对路径; 从本地仓库中拉取镜像,并启动3个容器 进入Master节点的方式为 docker exec –it master /bin/bash 进入Slave1节点的方式为 docker exec –it slave1 /bin/bash 进入Slave2节点的方式为 docker exec –it slave2 /bin/bash 同时将/opt目录下的所有安装包移动到3个容器节点中。任务一:Hadoop 完全分布式安装配置本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;修改/root/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从Master节点复制JDK解压后的安装文件到Slave1、Slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;在Master节点将Hadoop解压到/opt目录下,并将解压包分发至Slave1、Slave2中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制粘贴至对应报告中;启动Hadoop集群,查看Master节点jps进程,将查看结果复制粘贴至对应报告中。任务二:Kafka安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将ZooKeeper配置完毕后,在各节点启动Zookeeper,查看Master节点的zkServer服务状态,将查看命令及结果复制粘贴至对应报告中;修改Kafka的server.properties文件,并将修改的内容复制粘贴至对应报告中;完善其他配置并在每个节点启动Kafka,将Master节点的Kafka启动命令复制粘贴至对应报告中。任务三:Hive安装配置本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:将Master节点Hive安装包解压到/opt目录下,将完整命令复制粘贴至对应报告中;把解压后的apache-hive-1.2.2-bin文件夹更名为hive;进入hive文件夹使用ls进行查看,将完整命令复制粘贴至对应报告中;设置Hive环境变量,并使环境变量只对当前root用户生效;并将环境变量配置内容复制并粘贴至对应报告中;将Hive安装目录里hive-default.xml.template文件更名为hive-site.xml;将完整命令复制粘贴至对应报告中;修改hive-site.xml配置文件,将MySQL数据库作为Hive元数据库。将配置文件中配置Hive元存储的相关内容复制并粘贴至对应报告中;初始化Hive元数据,将MySQL数据库JDBC驱动拷贝到Hive安装目录的lib文件夹下;并通过schematool相关命令执行初始化,将初始化结果复制粘贴至对应报告中;完善其他配置并启动Hive,将命令行输出结果复制粘贴至对应报告中。模块B:离线数据处理(25分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据抽取编写Scala工程代码,将MySQL库中表EnvironmentData,ChangeRecord,Basemachine,MachineData, ProduceRecord全量抽取到Hive的ods库中对应表EnvironmentData,ChangeRecord,Basemachine, MachineData, ProduceRecord中。抽取MySQL的shtd_store库中EnvironmentData表的全量数据进入Hive的ods库中表EnvironmentData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.EnvironmentData命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ChangeRecord表的全量数据进入Hive的ods库中表ChangeRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ChangeRecord命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中Basemachine表的全量数据进入Hive的ods库中表Basemachine,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.Basemachine命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中ProduceRecord表的全量数据进入Hive的ods库中表ProduceRecord,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将结果截图复制粘贴至对应报告中;抽取MySQL的shtd_store库中MachineData表的全量数据进入Hive的ods库中表MachineData,字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions ods.ProduceRecord命令,将结果截图复制粘贴至对应报告中;任务二:数据清洗编写Hive SQL代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。抽取ods库中EnvironmentData的全量数据进入Hive的dwd库中表fact_environment_data,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_environment_data命令,将结果内容复制粘贴至对应报告中;抽取ods库中ChangeRecord的全量数据进入Hive的dwd库中表fact_change_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行desc dwd.fact_change_record命令,将结果内容复制粘贴至对应报告中;抽取ods库中Basemachine的全量数据进入Hive的dwd库中表dim_machine,抽取数据之前需要对数据根据BaseMachineID进行去重处理。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照Base_machine顺序排序,查询dim_machine前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中ProduceRecord的全量数据进入Hive的dwd库中表fact_produce_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。在hive cli中按照produce_machine_id顺序排序,查询fact_produce_record前2条数据,将结果内容复制粘贴至对应报告中;抽取ods库中MachineData的全量数据进入Hive的dwd库中表fact_machine_data。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写操作时间,并进行数据类型转换。并在hive cli执行show partitions dwd. fact_machine_data命令,将结果内容复制粘贴至对应报告中;任务三:指标计算编写Scala工程代码,根据dwd层dwd.fact_environment_data表,统计检测设备(BaseID)每日的PM10的检测平均浓度,然后将每个设备的平均浓度与厂内所有检测设备每日检测结果的平均浓度做比较(结果值为:高/低/相同)存入MySQL数据库shtd_store的表MachineRunningCompare(表结构如下)中,然后在Linux的MySQL命令行中根据检测设备ID倒序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。字段 类型 中文含义 备注BaseID int 检测设备IDMachineAvg decimal 单设备检测平均值FactoryAvg decimal 厂内所有设备平均值Comparison string 比较结果 高/低/相同EnvDate string 检测日期 如:2021-12-12编写Scala工程代码,根据dwd层dwd.fact_machine_data关联dwd.dim_machine表统计每个月、每个车间、每种状态的时长,存入MySQL数据库shtd_store的表(表结构如下)中,然后在Linux的MySQL命令行中根据设备id、状态持续时长均为逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注MachineID int 车间idChangeRecordState string 状态duration_time string 持续时长 当月该状态的时长和Year int 年 状态产生的年Month int 月 状态产生的月编写Scala工程代码,根据dwd层dwd.fact_change_record表联合dim_machine表,统计每个车间中设备运行时长(即设备状态为“运行”)的中位数,存入MySQL数据库shtd_store的表MachineRunningMedian(表结构如下)中,然后在Linux的MySQL命令行中根据所属车间、设备id均为倒序排序,查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中;字段 类型 中文含义 备注MachineID int 设备idMachineFactory int 所属车间TotalRunningTime int 运行总时长 结果以秒为单位模块C:数据挖掘(10分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; Master节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的元数据启动命令为: nohup hive --service metastore & Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该模块均使用Scala编写,利用Spark相关库完成。任务一:特征工程根据dwd库中fact_machine_data表,根据以下要求转换: 获取最大分区的数据后,首先解析列get_xmldata中的数据(数据格式为xml,采用dom4j解析,会给出解析demo),并获取主轴转速,主轴倍率,主轴负载,进给倍率,进给速度,PMC程序号,循环时间,运行时间,有效轴数,总加工个数,已使用内存,未使用内存,可用程序量,注册程序量等相关的值,同时转换machine_record_stat字段的值,若值为报警,则填写1,否则填写0,以下为表结构,将数据保存在dwd.fact_machine_learning_data,在hive cli中按照machine_record_id顺序排序,查询dwd.fact_machine_learning_data前1条数据,将结果内容复制粘贴至对应报告中;dwd.fact_machine_learning_data表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_id double 机器idmachine_record_mainshaft_speed double 主轴转速 默认0.0machine_record_mainshaft_multiplerate double 主轴倍率 默认0.0machine_record_mainshaft_load double 主轴负载 默认0.0machine_record_feed_speed double 进给倍率 默认0.0machine_record_feed_multiplerate double 进给速度 默认0.0machine_record_pmc_code double PMC程序号 默认0.0machine_record_cricle_time double 循环时间 默认0.0machine_record_run_time double 运行时间 默认0.0machine_record_efficive_shaft double 有效轴数 默认0.0machine_record_amount_process double 总加工个数 默认0.0machine_record_use_memory double 已使用内存 默认0.0machine_record_free_memory double 未使用内存 默认0.0machine_record_amount_use_code double 可用程序量 默认0.0machine_record_amount_free_code double 注册程序量 默认0.0machine_record_state double 机器状态 默认0.0任务二:报警预测根据任务一的结果,建立随机森林(随机森林相关参数考生可自定义,不做限制),使用任务一的结果训练随机森林模型,然后再将hive中dwd.fact_machine_learning_data_test(表结构与dwd.fact_machine_learning_data一致,但machine_record_state列值为空)转成向量,预测其是否报警将结果输出到mysql库shtd_industry中的ml_result表中。在Linux的MySQL命令行中查询出所有数据并按照machine_record_id顺序排序,将SQL语句与执行结果截图粘贴至对应报告中。ml_result表结构:字段 类型 中文含义 备注machine_record_id int 自增长idmachine_record_state double 机器状态 报警为1,其他状态则为0模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。 补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问; 请先检查ZooKeeper、Kafka、Redis端口看是否已启动,若未启动则各启动命令如下: ZK启动(netstat -ntlp查看2181端口是否打开) /usr/zk/zookeeper-3.4.6/bin/zkServer.sh start Redis启动(netstat -ntlp查看6379端口是否打开) /usr/redis/bin/redis-server /usr/redis/bin/redis.conf Kafka启动(netstat -ntlp查看9092端口是否打开) /opt/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon(空格连接下一行)/opt/kafka/kafka_2.11-2.0.0/config/server.properties Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集在Master节点使用Flume采集/data_log目录下实时日志文件中的数据,将数据存入到Kafka的Topic中(topic名称分别为ChangeRecord和EnvironmentData,分区数为4),将Flume的配置截图粘贴至对应报告中;Flume接收数据注入kafka 的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。任务二:使用Flink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为ChangeRecord的数据并进行相应的数据统计计算。使用Flink消费Kafka中EnvironmentData主题的数据,监控各环境检测设备数据,当温度(Temperature字段)持续10分钟高于39度时记录为预警数据(设备id,温度,预警时间),将该环境检测设备的预警数据写入Mysql表envtemperaturealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中;使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备从其他状态转变为“运行”状态的总次数,将key设置成totalswitch存入Redis中(再使用hash数据格式,key存放为设备id,value存放为该设备切换为“运行”的总次数),使用redis cli以get key方式获取totalswitch值,将结果截图粘贴至对应报告中,需要两次截图,第一次截图放前面,第二次放后面。使用Flink消费Kafka中ChangeRecord主题的数据,统计每个设备状态信息,当某设备的状态在24小时内连续三小时为“预警”状态没有改变,则将该设备的状态数据写入MySql表recordstatealarm中,然后在Linux的MySQL命令行中根据MachineID逆序排序,查询出前3条,将SQL语句与执行结果截图粘贴至对应报告中;模块E:数据可视化(15分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用饼状图展示某设备当天各状态时间编写Vue工程代码,根据接口,用饼状图展示某日该设备的各个状态的运行时长占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务二:用柱状图展示各车间设备每月平均运行时长编写Vue工程代码,根据接口,用柱状图展示各车间设备每月平均运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务三:用散点图展示机器运行时长编写Vue工程代码,根据接口,用折线图展示某机器在某一周的运行时长,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务四:用折线图展示PM2.5浓度变化编写Vue工程代码,根据接口,用散点图展示设备所处环境的PM2.5浓度的变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务五:用条形图展示各机器每日产量编写Vue工程代码,根据接口,用柱状图展示某机器在某天机器的产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。任务六:用折柱混合图展示机器日均产量和车间平均产量编写Vue工程代码,根据接口,用折柱状图展示某机器在某月的日均产量和车间的月均产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。模块F:综合分析(10分)任务一:Flink的时间语义分析Flink有哪些时间语义,有哪些使用场景?将内容编写至对应报告中。任务二:如何解决数据倾斜问题当使用spark产生了数据倾斜的情况时,请问有哪些方法可以解决这个问题呢?将内容编写至对应报告中。任务三:简要描述任务过程中的问题并进行总结将内容编写至对应报告中。模块 任务 主要知识与技能点 分值模块A:大数据平台搭建(容器环境) 任务一:Hadoop完全分布式安装配置 Hadoop完全分布式下的JDK的解压安装、JDK环境变量配置、节点配置、Hadoop配置文件修改、运行测试等 7任务二:Hive安装配置 Hive的解压安装、环境变量配置、运行测试等 4任务三:Sqoop安装配置 Sqoop的解压安装、环境变量配置、运行测试等 4小计 15模块B:离线数据处理 任务一:数据抽取 利用Spark,从MySQL中进行离线数据抽取,包括全量数据抽取和增量数据抽取操作 10任务二:数据清洗 利用Hive SQL,从ods到dwd的数据清洗,包括数据排序、去重、数据类型转换等操作 8任务三:指标计算 利用Spark,在dws层对数据进行相关数据指标的统计、计算等操作 7小计 25模块C:数据挖掘 任务一:特征工程 对推荐系统的数据集进行特征提取及数据预处理等操作 5任务二:推荐系统 基于SVD分解的推荐系统设计开发操作 5小计 10模块D:数据采集与实时计算 任务一:实时数据采集 基于Flume和Kafka的实时数据采集,包括Flume采集端口及配置、数据注入Kafka等操作 8任务二:使用Flink处理Kafka中的数据 使用Flink消费Kafka中的数据进行实时计算,包括实时数据统计计算、Redis基本操作、Kafka基本操作等 12小计 20模块E:数据可视化 任务一:用柱状图展示消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制柱状图 2任务二:用饼状图展示各地区消费能力 正确使用Vue.js框架,结合Echarts绘制饼状图 3任务三:用折线图展示总消费额变化 正确使用Vue.js框架,结合Echarts绘制折线图 3任务四:用条形图展示平均消费额最高的国家 正确使用Vue.js框架,结合Echarts绘制条形图 3任务五:用折柱混合图展示地区平均消费额和国家平均消费额 正确使用Vue.js框架,结合Echarts绘制折柱混合图 4小计 15模块F:综合分析 任务一:对于分组排序的理解 正确分析离线数据处理时使用的分组排序方法 4任务二:对于数据挖掘模块中的用户推荐有什么好的建议 正确分析数据挖掘模块中的用户推荐并提供合理化建议 3任务三:简要描述任务过程中的问题并进行总结 合理描述任务过程中的问题并进行总结 3小计 10模块G:职业素养 考察职业素养 竞赛团队分工明确合理、操作规范、文明竞赛 5小计 5总分 100 展开更多...... 收起↑ 资源列表 评分标准1.docx 评分标准10.docx 评分标准2.docx 评分标准3.docx 评分标准4.docx 评分标准5.docx 评分标准6.docx 评分标准7.docx 评分标准8.docx 评分标准9.docx 任务书1.docx 任务书10.docx 任务书2.docx 任务书3.docx 任务书4.docx 任务书5.docx 任务书6.docx 任务书7.docx 任务书8.docx 任务书9.docx