全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx

上传人:b****6 文档编号:21598229 上传时间:2023-01-31 格式:DOCX 页数:11 大小:21.95KB
下载 相关 举报
全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx_第1页
第1页 / 共11页
全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx_第2页
第2页 / 共11页
全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx_第3页
第3页 / 共11页
全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx_第4页
第4页 / 共11页
全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx

《全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx》由会员分享,可在线阅读,更多相关《全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

全国职业院校技能大赛高职组大数据技术与应用赛项赛题任务书5Word下载.docx

环境说明:

服务端登录地址详见各模块服务端说明。

补充说明:

宿主机可通过Asbru工具或SSH客户端进行SSH访问;

相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;

所有模块中应用命令必须采用绝对路径;

从本地仓库中拉取镜像,并启动3个容器

进入Master节点的方式为

dockerexec–itmaster/bin/bash

进入Slave1节点的方式为

dockerexec–itslave1/bin/bash

进入Slave2节点的方式为

dockerexec–itslave2/bin/bash

同时将/opt目录下的所有安装包移动到3个容器节点中。

任务一:

HadoopHA安装配置

本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。

命令中要求使用绝对路径,具体要求如下:

1、将Master节点JDK安装包解压并移动到/usr/local/src路径下,将命令复制并粘贴至对应报告中;

2、请完成host相关配置,将三个节点分别命名为master、slave1、slave2,配置SSH免密登录,从Master节点复制JDK环境变量文件以及JDK解压后的安装文件到Slave1、Slave2节点,配置java环境变量,配置完毕后在Master节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;

3、Zookeeper配置完毕后,分发Zookeeper,分别在3个节点启动Zookeeper,并在Slave2节点查看ZooKeeper运行状态,将查看命令和结果复制并粘贴至对应报告中;

4、ZooKeeper、HadoopHA配置完毕后,请将dfs.ha.namenodes.hadoopcluster设置为nn1,nn2并在Master节点启动Hadoop,并查看服务(nn1,nn2)进程状态,并将查看命令及结果复制并粘贴至对应报告中;

5、HadoopHA配置完毕后,在Slave1节点查看服务进程,将查看命令及结果复制并粘贴至对应报告中。

任务二:

Flume安装配置

本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:

1、设置Flume环境变量,并使环境变量只对当前root用户生效,将变量内容复制并粘贴至对应报告中;

2、完善相关配置,监控Hadoop的namenode日志,传输到HDFS的是/tmp/flume目录,将conf-file中的修改内容复制并粘贴至对应报告中;

3、启动Flume传输Hadoop日志,查看HDFS中/tmp/flume目录下生成的文件,将查看命令及结果(至少10条结果)复制并粘贴至对应报告中。

任务三:

Sqoop安装配置

1、将Master节点Sqoop安装包解压,修改解压后文件夹名为sqoop并移动到/usr/local/src路径下,将全部命令复制粘贴至对应报告中;

2、完善相关配置,修改Sqoop环境变量,并使环境变量只对当前root用户生效,并将环境变量修改内容复制粘贴至对应报告中;

3、测试Sqoop连接Master节点的MySQL数据库是否成功并展示所有的database,并将连接命令复制粘贴至对应报告中。

模块B:

离线数据处理(25分)

各主机可通过Asbru工具或SSH客户端进行SSH访问;

Master节点MySQL数据库用户名/密码:

root/123456(已配置远程连接);

Hive的元数据启动命令为:

nohuphive--servicemetastore&

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中。

1、抽取shtd_store库中CUSTOMER的全量数据进入Hive的ods库中表customer。

字段排序、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。

并在hivecli执行showpartitionsods.customer命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中;

2、抽取shtd_store库中NATION的全量数据进入Hive的ods库中表nation。

并在hivecli执行showpartitionsods.nation命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中;

3、抽取shtd_store库中PART的全量数据进入Hive的ods库中表part。

并在hivecli执行showpartitionsods.part命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中;

4、抽取shtd_store库中PARTSUPP的全量数据进入Hive的ods库中表partsupp。

并在hivecli执行showpartitionsods.partsupp命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中;

5、抽取shtd_store库中REGION的全量数据进入Hive的ods库中表region。

并在hivecli执行showpartitionsods.region命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中;

6、抽取shtd_store库中SUPPLIER的全量数据进入Hive的ods库中表supplier。

并在hivecli执行showpartitionsods.supplier命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中;

7、抽取shtd_store库中ORDERS的增量数据进入Hive的ods库中表orders,要求只取某年某月某日及之后的数据(包括某年某月某日),根据ORDERS表中ORDERKEY作为增量字段(提示:

对比MySQL和Hive中的表的ORDERKEY大小),只将新增的数据抽入,字段类型不变,同时添加动态分区,分区字段类型为String,且值为ORDERDATE字段的内容(ORDERDATE的格式为yyyy-MM-dd,分区字段格式为yyyyMMdd),。

并在hivecli执行selectcount(distinct(dealdate))fromods.orders命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中;

8、抽取shtd_store库中LINEITEM的增量数据进入Hive的ods库中表lineitem,根据LINEITEM表中orderkey作为增量字段,只将新增的数据抽入,字段类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。

并在hivecli执行showpartitionsods.lineitem命令,将Sqoop提交命令及hivecli的执行结果分别截图复制粘贴至对应报告中。

数据清洗

编写Scala工程代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。

表中有涉及到timestamp类型的,均要求按照yyyy-MM-ddHH:

mm:

ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:

00:

00,添加之后使其符合yyyy-MM-ddHH:

ss。

1、将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均填写操作时间,并进行数据类型转换。

在hivecli中按照cust_key顺序排序,查询dim_customer前1条数据,将结果内容复制粘贴至对应报告中;

2、将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均填写操作时间,并进行数据类型转换。

在hivecli中按照part_key顺序排序,查询dim_part前1条数据,将结果内容复制粘贴至对应报告中;

3、将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均填写操作时间,并进行数据类型转换。

在hivecli中按照nation_key顺序排序,查询dim_nation前1条数据,将结果内容复制粘贴至对应报告中;

4、将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均填写操作时间,并进行数据类型转换。

在hivecli中按照region_key顺序排序,查询dim_region表前1条数据,将结果内容复制粘贴至对应报告中;

5、将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均填写操作时间,并进行数据类型转换。

在执行hivecli执行selectcount(distinct(dealdate))fromdwd.fact_orders命令,将结果内容复制粘贴至对应报告中;

6、待任务5完成以后,需删除ods.orders中的分区,仅保留最近的三个分区。

并在hivecli执行showpartitionsods.orders命令,将结果截图粘贴至对应报告中;

7、将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均填写操作时间,并进行数据类型转换。

在hivecli执行showpartitionsdwd.fact_lineitem命令,将结果截图粘贴至对应报告中。

指标计算

编写Scala代码使用Spark引擎,并计算相关指标。

1、根据dwd层表统计每人每天下单的数量和下单的总金额,存入dws层的customer_consumption_day_aggr表(表结构如下)中,然后在hivecli中按照cust_key,totalconsumption,totalorder三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;

字段

类型

中文含义

备注

cust_key

int

客户key

cust_name

string

客户名称

totalconsumption

double

消费总额

当月消费订单总额

totalorder

订单总数

当月订单总额

year

订单产生的年

month

订单产生的月

day

订单产生的日

2、根据dws层表customer_consumption_day_aggr统计连续两个月下单并且下单金额保持增长的用户,订单发生时间限制为大于等于某年,存入MySQL数据库shtd_store的usercontinueorder表(表结构如下)中。

然后在Linux的MySQL命令行中根据订单总数、消费总额、客户主键三列均逆序排序的方式,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中。

custkey

客户主键

custname

text

记录当前月和下月,用下划线‘_’相连

例如:

202201_202202

表示2022年1月到2月用户连续下单。

连续两月的订单总额

连续两月的订单总数

3、根据任务2的结果并结合表dim_nation与表customer_consumption_day_aggr,请计算每个国家连续两个月下单并且下单金额保持增长与该国已下单用户的占比,将结果存入MySQL数据库shtd_store的userrepurchased表(表结构如下)中。

nationkey

国家主键

nationname

国家名称

purchaseduser

下单人数

该国家内已下单人数

repurchaseduser

连续下单人数

该国家内连续两个月下单并且下单金额保持增长人数

repurchaserate

占比

下单人数/连续下单人数(保留3位小数)

模块C:

数据挖掘(10分)

该模块均使用Scala编写,利用Spark相关库完成。

特征工程

1、根据dwd库中fact_orders表,将其转换为以下表:

第一列为用户id,其余列名为零部件id,按照cust_key进行顺序排序,保存在hive的dwd.fact_cust_part_machinelearning_data中,然后在Hivecli中执行命令descfact_cust_part_machinelearning中查询出结果,将SQL语句与执行结果截图粘贴至对应报告中。

partkey1

用户是否购买过零部件1

若用户购买过该零部件,则值为1,否则为0

partkey2

用户是否购买过零部件2

partkey3

用户是否购买过零部件3

.....

基于SVD分解的推荐系统

1、根据任务一的结果,对其进行SVD分解,对数据进行降维(保留95%以上的特征信息),根据该用户已购买的商品分别与未购买的商品计算余弦相似度再进行累加求均值,将结果最大的5件商品key进行输出作为推荐使用。

将输出结果保存至MySQL的part_machine表中。

然后在Linux的MySQL命令行中查询出前5条数据,将SQL语句与执行结果截图粘贴至对应报告中。

模块D:

数据采集与实时计算(20分)

请先检查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/server.properties

Flink任务在Yarn上用perjob模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。

实时数据采集

1、在Master节点使用Flume采集实时数据生成器26001端口的socket数据,将数据存入到Kafka的Topic中(topic名称为order,分区数为4),将Flume的配置截图粘贴至对应报告中;

2、Flume接收数据注入kafka的同时,将数据备份到HDFS目录/user/test/flumebackup下,将备份结果截图粘贴至对应报告中。

使用Flink处理Kafka中的数据

编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算。

1、使用Flink消费Kafka中的数据,统计个人实时订单总额,将key设置成totalprice存入Redis中(再使用hash数据格式,key存放为用户id,value存放为该用户消费总额),使用rediscli以getkey方式获取totalprice值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面。

2、在任务1进行的同时需监控若发现ORDERSTATUS字段为F,将数据存入MySQL表alarmdata中(可考虑侧边流的实现),然后在Linux的MySQL命令行中根据ORDERKEY逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至对应报告中;

3、使用Flink消费kafka中的数据,统计每分钟下单的数量,将key设置成totalorder存入redis中。

使用rediscli以getkey方式获取totalorder值,将结果粘贴至对应报告中,需两次截图,第一次截图(应该在job启动2分钟数据稳定后再截图)和第二次截图时间间隔应达一分钟以上,第一次截图放前面,第二次放后面。

(注:

流数据中,时间未精确到时分秒,建议StreamTimeCharacteristic设置成ProcessingTime(默认)或IngestionTime。

模块E:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1