2022年全国职业院校技能大赛
高职组
“大数据技术与应用”
赛项赛卷(6卷)
任
务
书
参赛队编号:______________
1
背景描述
工业互联网是工业全要素、全产业链、全价值链的全面连接,是
人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网
从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是
建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键
支撑。党中央、国务院高度重视工业互联网发展,习近平总书记连续
四年对推动工业互联网发展做出重要指示。加快发展工业互联网产业,
不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也
是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展
的客观要求。
为完成工业大数据分析工作,你所在的小组将应用大数据技术,
以Scala作为整个项目的基础开发语言,基于大数据平台综合利用
Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可
视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工
作。
2
模块A:大数据平台搭建(容器环境)(15分)
环境说明:
服务端登录地址详见各模块服务端说明。
补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问;
相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行
安装,用不到的可忽略;
所有任务中应用命令必须采用绝对路径;
进入Master节点的方式为
dockerexec-itmaster/bin/bash
进入Slavel节点的方式为
dockerexec-itslavel/bin/bash
进入Slave2节点的方式为
dockerexec-itslave2/bin/bash
MySQL已在容器的Master中安装完毕,用户名/密码为root/
任务一:Hadoop完全分布式安装配置
本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。
具体要求如下:
1、从宿主机/opt目录下将文件hadoop-2.7.7.tar.gz、
jdk-8u212-1inux-x64.tar.gz复制到容器master中的/opt/software路径
中(若路径不存在,则需新建),将master节点JDK安装包解压到/opt/module
路径中(若路径不存在,则需新建),将JDK解压命令复制并粘贴至客户端桌
面【Release'重命名为工位号'模块A提交结果.docx】中对应的任务序号下;
2、修改容器中/etc/profile文件,设置JDK环境变量并使其生效,配置完毕后
3
在master节点分别执行"java-version"和"javac”命令,将命令行执
行结果分别截图并粘贴至客户端桌面【Release'重命名为工位号'模块A提
交结果.docx】中对应的任务序号下;
3、请完成host相关配置,将三个节点分别命名为master、slavel、slave2,
并做免密登录,用scp命令并使用绝对路径从master复制JDK解压后的安
装文件到slavedslave2节点(若路径不存在,则需新建),并配置slave1.
slave2相关环境变量,将全部scp复制JDK的命令复制并粘贴至客户端桌面
【Release'重命名为工位号'模块A提交结果.docx]中对应的任务序号下;
4、在master将Hadoop解压到/opt/module(若路径不存在,则需新建)目录下,
并将解压包分发至slavel、slave2中,其中master、slavel,slave2节点
均作为datanode,配置好相关环境,初始化Hadoop环境namenode,将初始
化命令及初始化结果截图(截取初始化结果日志最后20行即可)粘贴至客
户端桌面【Release'重命名为工位号'模块A提交结果.docx】中对应的任务
序号下;
5、启动Hadoop集群(包括hdfs和yarn),使用jps命令查看master节点与
slavel节点的Java进程,将jps命令与结果截图粘贴至客户端桌面
【Release'重命名为工位号'模块A提交结果.docx]中对应的任务序号下。
任务二:Sqoop安装配置
本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环
境,具体要求如下:
1、从宿主机/opt目录下将文件
sqoop-1.4.2.bin一hadoop-2.0.0-alpha.tar.gz、
mysql-connector-java-5.1.47.jar复制到容器master中的/opt/software
路径中(若路径不存在,则需新建),将容器master节点Sqoop安装包解
压到/opt/module目录下,将解压命令复制并粘贴至客户端桌面【Release'
重命名为工位号'模块A提交结果.docx]中对应的任务序号下;
2、完善其他Sqoop相关配置,设置Sqoop环境变量,并使环境变量生效,执行
命令sqoopversion并将命令与其结果截图粘贴至客户端桌面【Release'重
4
命名为工位号'模块A提交结果,docx】中对应的任务序号下;
3、测试Sqoop连接容器master节点的MySQL数据库是否成功并展示所有的
database,并将连接命令与结果截图粘贴至客户端桌面【Release'重命名为
工位号'模块A提交结果.docx】中对应的任务序号下。
任务三:Hive安装配置
本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环
境,具体要求如下:
1,从宿主机/opt目录下将文件apache-hive-2.3.4-bin.tar.gz、
mysql-connector-java-5.1.47.jar复制到容器master中的/opt/software
路径中(若路径不存在,则需新建),将Master节点Hive安装包解压到
/opt/module目录下,将解压命令复制并粘贴至客户端桌面【Release'重命
名为工位号'模块A提交结果.docx】中对应的任务序号下;
2、设置Hive环境变量,并使环境变量生效,执行命令hive-version并将命
令与结果截图并粘贴至客户端桌面【Release'重命名为工位号'模块A提交结
果.docx】中对应的任务序号下;
3、完成相关配置并添加所依赖的包,将MySQL数据库作为Hive元数据库。初
始化Hive元数据,并通过schematool相关命令执行初始化,将初始化结果
截图(范围为命令执行结束的最后10行)粘贴至客户端桌面【Release'重命
名为工位号'模块A提交结果.docx】中对应的任务序号下。
5
模块B:离线数据处理(25分)
环境说明:
服务端登录地址详见各模块服务端说明。
补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问;
Master节点MySQL数据库用户名/密码:root/(已配置远程
连接);
Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/
Spark任务在Yarn上用Client运行,方便观察日志。
注:该Spark版本无法进行本地调试,请打包上传集群调试。
任务一:数据抽取
编写Sqoop脚本,将MySQL库中表ChangeRecord^BaseMachine^MachineDatax
ProduceRecord全量抽取到Hive的ods库中对应表changerecord、basemachine、
machinedata>producerecord中。(提示:可通过sqoop将mysql的数据先加
载到hdfs,然后再通过hive中loaddatainpath的方式为将数据加载到分区
表中,同时hive表中默认的分隔符为 )
1抽取MySQL的shtd_industry库中ChangeRecord表的全量数据进入Hive的
ods库中表changerecord,字段排序、类型不变,同时添加静态分区,分区
字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字
段格式为yyyyMMdd)。使用hivecli执行showpartitionsods.changerecord
命令,将Sqoop提交命令及hivecli的执行结果分别截图粘贴至客户端桌
面【Release'重命名为工位号'模块B提交结果.docx】中对应的任务序号下;
2、抽取MySQL的shtdindustry库中BaseMachine表的全量数据进入Hive的
ods库中表basemachine,字段排序、类型不变,同时添加静态分区,分区
字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字
6
段格式为yyyyMMdd)。使用hivecli执行showpartitionsods.basemachine
命令,将Sqoop提交命令及hivecli的执行结果分别截图粘贴至客户端桌
面【Release'重命名为工位号'模块B提交结果.docx】中对应的任务序号下;
3、抽取MySQL的shtd_industry库中ProduceRecord表的全量数据进入Hive
的ods库中表producerecord,剔除ProducePrgCode字段,其余字段排序、
类型不变,同时添加静态分区,分区字段为etldate,类型为String,且值
为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用hivecli
执行ducerecord命令,将Sqoop提交命令及hive
cli的执行结果分别截图粘贴至客户端桌面【Release'重命名为工位号'模块
B提交结果.docx】中对应的任务序号下;
4、抽取MySQL的shtd_industry库中MachineData表的全量数据进入Hive的
ods库中表machinedata,字段排序、类型不变,同时添加静态分区,分区
字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字
段格式为yyyyMMdd)。使用hivecli执行showpartitionsods.machinedata
命令,将Sqoop提交命令及hivecli的执行结果分别截图粘贴至客户端桌
面【Release'重命名为工位号'模块B提交结果.docx】中对应的任务序号下。
任务二:数据清洗
编写HiveSQL代码,将ods库中相应表数据全量抽取到Hive的dwd库中对
应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-ddHH:mm:ss,
不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添
加之后使其符合yyyy-MM-ddHH:mm:sso
1、抽取ods库中changerecord的全量数据进入Hive的dwd库中表
fact_change_record,抽取数据之前需要对数据根据changeid和
changemachineid进行联合去重处理,分区字段为etldate且值与ods库的
相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、
dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、
dwd_modify_user均填写“userl”,dwd_insert_time>dwd_modify_time
均填写当前操作时间,并进行数据类型转换。使用hivecli按照
7
change_machine_id降序、change_id升序排序,查询前1条数据,将结果
截图粘贴至客户端桌面【Release'重命名为工位号'模块B提交结果.docx】
中对应的任务序号下;
2、抽取ods库中basemachine的全量数据进入Hive的dwd库中表dim_machine,
抽取数据之前需要对数据根据basemachineid进行去重处理。分区字段为
etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user>
dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中
dwd_insert_userdwd_modify_user均填写“userl”,dwd_insert_time>
dwd_modify_time均填写当前操作时间,并进行数据类型转换。使用hivecli
按照basemachineid升序排序,查询dim_machine前2条数据,将结果截
图粘贴至客户端桌面【Release'重命名为工位号'模块B提交结果.docx】中
对应的任务序号下;
3、抽取ods库中producerecord的全量数据进入Hive的dwd库中表
fact_producerecord,分区字段为etldate且值与ods库的相对应表该值相
等,并添力口dwd_insert_user、dwd_insert_time、dwd_modify_user、
dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写
“userl",dwd_insert_time>dwd_jnodify_time均填写当前操作时间,并
进行数据类型转换。使用hivecli按照produce_machine_id升序排序,查
询fact_produce_record前1条数据,将结果截图粘贴至客户端桌面
【Release'重命名为工位号'模块B提交结果.docx]中对应的任务序号下;
4、抽取ods库中machinedata的全量数据进入Hive的dwd库中表
fact_machine_datao分区字段为etldate且值与ods库的相对应表该值相
等,并添力口dwd_insert_user、dwd_insert_time、dwd_modify_user、
dwdmodify_time四列,其中dwd_insert_user>dwdmodify_user均填写
“userl",dwd_insert_time>dwd_modify_time均填写当前操作时间,并
进行数据类型转换。使用hivecli按照machine_id降序排序,查询前1条
数据,将结果截图粘贴至客户端桌面【Release'重命名为工位号'模块B提
交结果.docx】中对应的任务序号下。
8
任务三:指标计算
1、编写Scala代码,使用Spark根据dwd层的fact_change_record表统计每
个月(change_start_time的月份)、每个设备、每种状态的时长,若某状
态当前未结束(即change_end_time值为空)则该状态不参与计算。计算结
果存入MySQL数据库shtdindustry的machinestate_time表中(表结构
如下),然后在Linux的MySQL命令行中根据设备id、状态持续时长均为降
序排序,查询出前10条,将SQL语句复制粘贴至客户端桌面【Release'重
命名为工位号'模块B提交结果.docx】中对应的任务序号下,将执行结果截
图粘贴至客户端桌面【Release'重命名为工位号'模块B提交结果.docx】中
对应的任务序号下;
machine_state_time表结构:
字段类型中文含义备注
machinejdint设备id
change_record_statevarchar状态
duration_timevarchar持续时长(秒)当月该状态的时长和
yearint年状态产生的年
monthint月状态产生的月
2、编写Scala代码,使用Spark根据dwd层的fact_change_record表关联
dimjnachine表统计每个车间中所有设备运行时长(即设备状杰为“运行”)
的中位数在哪个设备(为偶数时,两条数据原样保留输出),若某个设备运
行状态当前未结束(即change_end_time值为空)则该状态不参与计算,计
算结果存入MySQL数据库shtd_industry的machine_running_median表中
(表结构如下),然后在Linux的MySQL命令行中根据所属车间、设备id
均为降序排序,查询出前5条数据,将SQL语句复制粘贴至客户端桌面
【Release'重命名为工位号'模块B提交结果.docx】中对应的任务序号下,
将执行结果截图粘贴至客户端桌面【Release'重命名为工位号'模块B提交
结果.docx】中对应的任务序号下;
9
machine_running_median表结构:
字段类型中文含义备注
machinejdint设备id
machine__factoryint所属车间
total_running_timeint运行总时长结果以秒为单位
3、编写Scala代码,使用Spark根据dwd层的fact_produce_record表,基于
全量历史数据计算各设备生产一个产品的平均耗时,
produce_code_end_time值为1900-01-0100:00:00的数据为脏数据,需要
剔除,并以produce_recordid和produce_machine_id为联合主键进行去
重(注:fact_produce_record表中,一条数据代表加工一个产品,
produce_code_start_time字段为开始力口工时间,produce_code_end_time
字段为完成加工时间),将设备生产每个产品的耗时与该设备生产一个产品
的平均耗时作比较,保留耗时高于平均值的产品数据,将得到的数据写入
MySQL数据库shtdindustry的machine_produce_per_avgtime表中(表结
构如下),然后在Linux的MySQL命令行中根据设备id降序排序查询前3
条数据,将SQL语句复制粘贴至客户端桌面【Release'重命名为工位号'模
块B提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端
桌面【Release'重命名为工位号'模块B提交结果.docx】中对应的任务序号
下;
machine_produce_per_avgtime表结构:
字段类型中文含义备注
produce_record_idint生产记录id每生产一件产品
产生一条数据
produce_machinejdint设备id
producetimeint该产品耗时
produce_per_avgtimeint设备生产一个产单位:秒
品平均耗时
1
4、根据dwd层的fact_change_record表,计算2021年10月12日这天
(change_start_time字段的日期)状态为“待机”的数据,计算当天每小
时新增的“待机”状态时长与当天“待机”状态总时长,将结果存入MySQL
数据库shtd_industry的accumu1ate_standby表中(表结构如下),然后
在Linux的MySQL的命令行根据starthour降序查询accumulate_standby
表前3条数据,将SQL语句复制粘贴至客户端桌面【Release'重命名为工位
号'模块B提交结果.docx]中对应的任务序号下,将执行结果截图粘贴至客
户端桌面【Release'重命名为工位号'模块B提交结果.docx]中对应的任务
序号下;
accumulate_standby表结构:
字段类型中文含义备注
start_datevarchar状态开始II期yyyy-MM-dd
start__hourvarchar状态开始时间存当前时间的小
时整数,如:1点
存1、
13点存13
hour_add_standbyint该小时新增“待
机”状态时长
day__agg_standbyint截止到这个小时,
当天“待机”状态
总时长
5、根据dwd层的fact_change_record表,计算2021年10月13日这天
(change_start_time字段的日期)状态为“运行”的数据,以3小时为一
个计算窗口,做滑动窗口计算,滑动步长为1小时,窗口不满3小时不触发
计算(即从凌晨3点开始触发计算,第一条数据的state_start_time为
2021-10-13_02,以有数据的3个小时为一个时间窗口),将计算结果存入
MySQL数据库shtd_industry的siide_window_rurmning表中,然后在Linux
的MySQL命令行中按照statestart_time字段所带的小时信息进行升序排
1
序查询slide_window_runnning表前3条数据,将核心业务代码中的开窗相
关代码与MySQL查询结果分别截图粘贴至客户端桌面【Release'重命名为工
位号'模块B提交结果.docx】中对应的任务序号下。
s1ide_window_runnning表结构:
字段类型中文含义备注
state_start_timevarchar运行状态开始时间
yyyy-MM-dd_HH
window-sumint3小时运行总时长单位:秒
window_avgint每小时平均运行时长基于所在窗口
1
模块C:数据挖掘(10分)
环境说明:
服务端登录地址详见各模块服务端说明。
补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问;
Master节点MySQL数据库用户名/密码:root/(已配置远程
连接);
Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/
Spark任务在Yarn上用Client运行,方便观察日志。
该模块均使用Scala编写,利用Spark相关库完成。
注:该Spark版本无法进行本地调试,请打包上传集群调试。
任务一:特征工程
1、根据dwd库中fact_machine_data表(或MySQL的shtd_industry库中
MachineData表),根据以下要求转换:获取最大分区(MySQL不用考虑)
的数据后,首先解析列machine_record_data(MySQL中为
MachineRecordData)的数据(数据格式为xml,采用dom4j解析,解析demo
在客户端/home/ubuntu/Documents目录下),并获取每条数据的主轴转速,
主轴倍率,主轴负载,进给倍率,进给速度,PMC程序号,循环时间,运行
时间,有效轴数,总加工个数,已使用内存,未使用内存,可用程序量,注
册程序量等相关的值(若该条数据没有相关值,则按下表设置默认值),同
时转换machine_record_state字段的值,若值为报警,则填写1,否则填写
0,以下为表结构,将数据保存在dwd.fact_machine_learning_data,分区
字段为etldate,类型为String,且值为当前比赛日的前一天日期(分区字
段格式为yyyyMMdd)。使用hivecli按照machine_record_id升序排序,
1
查询dwd.fact_machine_learning_data前1条数据,将结果截图粘贴至客
户端桌面【Release'重命名为工位号'模块C提交结果.docx]中对应的任务
序号下。
dwd.fact_machine_learning_data表结构:
字段类型中文含义备注
machine_recordidint主键
machine_iddouble设备id
machine_record_statedouble设备状态默认0.0
machine_record_mainshaft_speeddouble主轴转速默认0.0
machine_record_mainshaft_multipleratedouble主轴倍率默认0.0
machine_record_mainshaft_loaddouble主轴负载默认0.0
machine_record_feed_speeddouble进给倍率默认0.0
machine_record_feed_multipleratedouble进给速度默认0.0
machine_record_pmc_codedoublePMC程序号默认0.0
machine_recordcircletimedouble循环时间默认0.0
machine_record_run_timedouble运行时间默认0.0
machine_record_effective_shaftdouble有效轴数默认0.0
machine_record_amount_processdouble总加工个默认0.0
数
machine_recorduse_memorydouble已使用内默认0.0
存
machine_record_free_memorydouble未使用内默认0.0
存
machine_record_amount_use_codedouble可用程序默认0.0
量
machine_recordamountfree_codedouble注册程序默认0.0
量
machine_record_datetimestamp记录日期
dwd_insert_userstring设置为
1
null
dwd_insert_timetimestamp设置为
当前操
作时间
dwd_modify_userstring设置为
null
dwd_modify_timetimestamp设置为
当前操
作时间
任务二:报警预测
1、根据任务一的结果,建立随机森林(随机森林相关参数可自定义,不做限制),
使用任务一的结果训练随机森林模型,然后再将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为1、8、20、28和36的5条数据,将
SQL语句复制并粘贴至客户端桌面【Release'重命名为工位号'模块C提交结
果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面
【Release'重命名为工位号'模块C提交结果.docx]中对应的任务序号下。
ml_result表结构:
字段类型中文含义备注
machine_record_idint主键
machine_record_statedouble设备状态报警为1,其他
状态则为0
1
模块D:数据采集与实时计算(20分)
环境说明:
服务端登录地址详见各模块服务端说明。
补充说明:各主机可通过Asbru工具或SSH客户端进行SSH访问;
请先检查ZooKeeper、Kafka、Redis端口是否已启动,若未启动则
各启动命令如下:
ZK启动(netstat-ntlp查看2181端口是否打开)
/usr/zk/zookeeper-3.4.6/bin/zkServer.shstart
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/perties
Flink任务在Yarn上用perjob模式(即Job分离模式,不采用
Session模式),方便Yarn回收资源。
任务一:实时数据采集
1、在Master节点使用Flume采集/data_log目录下实时日志文件中的数据(实
时日志文件生成方式为在/data_log目录下执行https://www.renrendoc.com/paper/make_data_file_vl命令
即可生成日志文件,如果没有权限,请执行授权命令chmod777
/data_log/make_data_file_vl),将数据存入到Kafka的Topic中(Topic
名称分别为ChangeRecord、ProduceRecord和EnvironmentData,分区数为
4),将Flume采集ChangeRecord主题的配置(有路径的配置项须使用绝对
路径)截图粘贴至客户端桌面【Release'重命名为工位号'模块D提交结
1
果.docx】中对应的任务序号下;
2、编写新的Flume配置文件,将数据备份到HDFS目录/user/test/flumebackup
下,要求所有主题的数据使用同一个Flume配置文件完成采集,将Flume的
配置(有路径的配置项须使用绝对路径)截图粘贴至客户端桌面【Release'
重命名为工位号'模块D提交结果.docx】中对应的任务序号下。
任务二:使用Flink处理Kafka中的数据
编写Scala工程代码,使用Flink消费Kafka中的数据并进行相应的数据统
计计算。
1,使用Flink消费Kafka中ProduceRecord主题的数据,统计在已经检验的产
品中,各设备每5分钟生产产品总数,将结果存入Redis中,使用Hash数
据结构,Key为''totalproduce”,对应值的(Key,Value)为(设备id,
最近五分钟生产总数)。使用rediscli以HGETALLkey方式获取
totalproduce值,将结果截图粘贴至客户端桌面【Release、重命名为工位号
'模块D提交结果.docx】中对应的任务序号下,需两次截图,第一次截图和
第二次截图间隔5分钟以上,第一次截图放前面,第二次截图放后面;
注:ProduceRecord主题,生产一个产品产生一条数据;
change_handle_state字段为1代表已经检验,0代表未检验;
时间语义使用ProcessingTime。
2、使用Flink消费Kafka中ChangeRecord主题的数据,当某设备30秒状态连
续为“预警”,输出预警信息。当前预警信息输出后,最近30秒不再重复
预警(即如果连续1分钟状态都为“预警”只输出两次预警信息),将结果
存入Redis中,使用Hash数据结构,Key为"warning30sMachine”,对应
值的(Key,Value)为(设备id,预警信息)。使用rediscli以HGETALL
key方式获取warning30sMachine值,将结果截图粘贴至客户端桌面
【Release、重命名为工位号'模块D提交结果.docx】中对应的任务序号下,
需两次截图,第一次截图和第二次截图间隔1分钟以上,第一次截图放前面,
第二次截图放后面,同时描述本题使用的核心编程思想,将内容编写至客户
1
端桌面【Release'重命名为工位号'模块D提交结果.docx】中对应的任务序
号下;
注:时间使用change_start_time字段,忽略数据中的change_end_time(不参
与任何计算),忽略数据迟到问题。
(设备id,预警信息)示例:115,2022-01-0109:53:10:设备115连续30
秒为预警状态请尽快处理!
(2022-01-0109:53:10为change_start_time字段值,中文内容及格式必须为
示例所示内容。)
3、使用Flink消费Kafka中ChangeRecord主题的数据,统计每3分钟各设备
状态为“预警”且未处理的数据总条数,将结果存入MySQL数据库
shtd_industry的threemin_warning_state_agg表中(追加写入,表结构如
下)。请将任务启动命令复制粘贴至客户端桌面【Release'重命名为工位号
'模块D提交结果.docx】中对应的任务序号下,启动且数据进入后按照设备
id升序排序查询threemin_warning_state_agg表进行截图,第一次截图后
等待3分钟再次查询并截图,将两次截图分别粘贴至客户端桌面【Release'
重命名为工位号'模块D提交结果.docx】中对应的任务序号下。
threeminwarningstateagg表结构:
字段类型中文含义
change_machine_idint设备id
totalwarningint未被处理预警的数据总
条数
window_end_timevarchar窗口结束时间
(yyyy-MM-ddHH:mm:ss)
注:时间语义使用ProcessingTime。
1
模块E:数据可视化(15分)
环境说明:
数据接口地址及接口描述详见各模块服务端说明。
注:所有数据排序按照接口返回数据顺序处理即可,不用特意排序。
任务一:用柱状图展示设备历史各个状态持续时长
编写Vue工程代码,根据接口,用柱状图展示接口所有数据中各设备各个状态持
续时长(秒),同时将用于图表展示的数据结构在浏览器的console中进行打印
输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌
面【Release'重命名为工位号'模块E提交结果.docx】中对应的任务序号下。
任务二:用柱状图展示每日所有车间各设备平均运行时长
编写Vue工程代码,根据接口,用柱状图展示每日各设备(不区分车间)平均运
行时长(秒,四舍五人保留两位小数),同时将用于图表展示的数据结构在浏览
器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分
别截图并粘贴至客户端桌面【Release'重命名为工位号'模块E提交结果.docx】
中对应的任务序号下。
任务三:用折线图展示某设备每日运行时长
编写Vue工程代码,根据接口,用折线图展示设备0P160每日的运行时长(秒),
同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可
视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release'
重命名为工位号'模块E提交结果,docx】中对应的任务序号下。
1
任务四:用条形图展示每日各设备产量
编写Vue工程代码,根据接口,用条形图展示每日各设备产量,同时将用于图表
展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览
器console打印结果分别截图并粘贴至客户端桌面【Release'重命名为工位号'
模块E提交结果.docx】中对应的任务序号下。
任务五:用折柱混合图展示设备日均产量和所在车间日均产量
编写Vue工程代码,根据接口,用折柱混合图展示各设备的日均产量(四舍五入
保留两位小数)和所在车间的日均产量(四舍五入保留两位小数),其中柱状图
展示各设备的日均产量,折线图展示该设备所在车间的日均产量,同时将用于图
表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏
览器console打印结果分别截图并粘贴至客户端桌面【Release'重命名为工位号
'模块E提交结果.docx】中对应的任务序号下。
2
模块F:综合分析(10分)
任务一:Flink有哪些重启策略?各个重启策略如何配置?
在模块D中使用到了Flink,Flink在运行job时可能会出现各种问题,从而会
导致其失败或者重启,对于类似于网络波动造成的运行失败可以采取相对应重启
策略来重试,请问Flink有几种重启策略(中文)?分别怎么配置这些重启策略?
将内容编写至客户端桌面【Release'重命名为工位号'模块F提交结果.docx】中
对应的任务序号下。
任务二:Spark的数据本地性有哪几种,分别表示什么?
在模块B与模块C中使用到了Spark,其中有些job运行较慢,有些较快,一部
分原因与数据位置和计算位置相关,其数据本地性可以在SparkUI中查看到。请
问Spark的数据本地性有哪几种(英文)?分别表示的含义是什么(中文)?将
内容编写至客户端桌面【Release'重命名为工位号'模块F提交结果.docx】中对
应的任务序号下。
任务三:数据仓库中怎么处理缓慢变化维,有哪几种方式?
在模块B的数据仓库的设计过程中,会出现缓慢变化维的问题,缓慢变化维是指
一些维度表的数据不是静态的,而是会随着时间而缓慢地变化,在数仓设计中有
哪些方式应对这些问题?将内容编写至客户端桌面【Release'重命名为工位号'
模块F提交结果.docx】中对应的任务序号下。
2
附录:补充说明
命令行截图样例(保证清晰)
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Getting1non-emptyblocksoutof4blocks
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Started0remotefetchesin0ms
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Getting2non-emptyblocksoutof4blocks
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Started0remotefetchesin0ms
21/06/1714:24:59INFOExecutor:Finishedtask2.0instage64.0(TID223).2399bytesresultsenttodriver
21/06/1714:24:59INFOExecutor:Runningtask5.0instage64.0(TID220)
21/06/1714:24:59INFOExecutor:Finishedtask4.0instage64.0(TID225).2439bytesresultsenttodriver
21/06/1714:24:59INFOTaskSetManager:Finishedtask2.0instage64.0(TID223)in12msonlocalhost(2/6)
21/06/1714:24:59INFOTaskSetManager:Finishedtask4.0instage64.0(TID225)in6msonlocalhost(3/6)
21/06/1714:24:59INFOExecutor:Runningtask3.0instage64.0(TID224)
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Getting0non-emptyblocksoutof4blocks
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Started0remotefetchesin0ms
21/06/1714:24:59INFOExecutor:Finishedtask5.0instage64.0(TID220).2280bytesresultsenttodriver
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Getting2non-emptyblocksoutof4blocks
21/06/1714:24:59INFOShuffleBlockFetcherlterator:Started0remotefetchesin0ms
21/06/1714:24:59INFOTaskSetManager:Finishedtask1.0instage64.0(TID222)in17msonlocalhost(4/6)
21/06/1714:24:59INFOExecutor:Finishedtask3.0instage64.0(TID224).2439bytesresultsenttodriver
21/06/1714:24:59INFOTaskSetManager:Finishedtask5.0instage64.0(TID220)in19msonlocalhost(5/6)
21/06/1714:24:59INFOTaskSetManager:Finishedtask3.0instage64.0(TID224)in13msonlocalhost(6/6)
21/06/1714:24:59INFOTaskSchedulerlmpl:RemovedTaskSet64.0,whosetaskshaveallcompleted,frompool
21/06/1714:24:59INFODAGSchedul
到此这篇查看yarn状态的命令(查看yarn log)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/22451.html