《GZ033 大数据应用开发赛项正式赛卷-2023年全国职业院校技能大赛赛项正式赛卷.docx》由会员分享,可在线阅读,更多相关《GZ033 大数据应用开发赛项正式赛卷-2023年全国职业院校技能大赛赛项正式赛卷.docx(24页珍藏版)》请在优知文库上搜索。
1、2023年全国职业院校技能大赛赛题第02套赛项名称:大数据应用开发英又名称:BigDataAPPliCatiOnDeVeloPment赛项组别:高等职业教育组赛项编号:GZ033背景描述大数据时代背景下,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消
2、费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以SCala作为整个项目的基础开发语言,基于大数据平台综合利用Hudi.Spark.FlinkVue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技
3、术人员,请按照下面任务完成本次工作。任务A:大数据平台搭建(容器环境)(15分)环境说明:服务端登录地址详见各任务服务端说明。补充说明:宿主机可通过ASbrU工具或SSH客户端进行SSH访问;相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;所有任务中应用命令必须采用绝对路径;进入Master节点的方式为dockerexec-itmasterbinbash进入SIaVel节点的方式为dockerexec-itslavelbinbash进入Slave2节点的方式为dockerexec-itslave2binbash三个容器节点的root密码均为123456子任务
4、一:Hadoop完全分布式安装配置本任务需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:1、从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linu-64.tar.gz复制到容器Master中的optsoftware路径中(若路径不存在,则需新建),将Master节点JDK安装包解压到optmodule路径中(若路径不存在,则需新建),将JDK解压命令复制并粘贴至客户端桌面【Release、任务A提交结果.docx】中对应的任务序号下;2、修改容器中etcprofile文件,设置JDK环境变量并使
5、其生效,配置完毕后在Master节点分别执行“java-version和javac”命令,将命令行执行结果分别截图并粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;3、请完成host相关配置,将三个节点分别命名为master、slave1slave2,并做免密登录,用Scp命令并使用绝对路径从Master复制JDK解压后的安装文件到slavelslave2节点(若路径不存在,则需新建),并配置SlaVe1、slave2相关环境变量,将全部scp复制JDK的命令复制并粘贴至客户端桌面【Release任务A提交结果.docx中对应的任务序号下;4、在Master将Ha
6、doop解压到optmodule(若路径不存在,则需新建)目录下,并将解压包分发至SlaVe1、SlaVe2中,其中InaSter、slaveKSlaVe2节点均作为datanode,配置好相关环境,初始化HadoOP环境namenode,将初始化命令及初始化结果截图(截取初始化结果日志最后20行即可)粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;5、启动HadOOP集群(包括hdfs和yarn),使用jps命令查看MaSter节点与slavel节点的Java进程,将jps命令与结果截图粘贴至客户端桌面【Release任务A提交结果.docx中对应的任务序号下。
7、子任务二:Flume安装配置本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:1、从宿主机/opt目录下将文件apache-flume-1.9.O-bin.tar.gz复制到容器MaSter中的optsoftware路径中(若路径不存在,则需新建),将MaSter节点FlUme安装包解压到optmodule目录下,将解压命令复制并粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;2、完善相关配置,设置FIUIne环境变量,并使环境变量生效,执行命令flume-ngversion并将命令与结果截图粘贴至客户端桌面【Releas
8、e任务A提交结果.docx】中对应的任务序号下;3、启动FIUnle传输HadOoP日志(namenode或datanode日志),查看HDFS中tmpflume目录下生成的内容,将查看命令及结果(至少5条结果)截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下。子任务三:FlinkonYarn安装配置本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:1、从宿主机/opt目录下将文件flink-1.14.0-bin-scala_2.12.tgz复制到容器MaSter中的optsoftware(若路径不存在,则需新建)中,将
9、FIink包解压到路径optmodule中(若路径不存在,则需新建),将完整解压命令复制粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;2、修改容器中etcprofile文件,设置Flink环境变量并使环境变量生效。在容器中/opt目录下运行命令flink-version,将命令与结果截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下;3、开启HadOOP集群,在yarn上以perjob模式(即JOb分离模式,不采用SeSSiOn模式)运行$FLINKJIOME/examples/batch/WordCount.jar,将运行结果最后
10、10行截图粘贴至客户端桌面【Release任务A提交结果.docx】中对应的任务序号下。示例:flinkrun-myarn-cluster-p2-yjm2G-ytm2G$FLINK_IIOME/examples/batch/WordCount.jar任务B:离线数据处理(25分)环境说明:服务端登录地址详见各任务服务端说明。补充说明:各节点可通过ASbrU工具或SSH客户端进行SSH访问;主节点MySQL数据库用户名/密码:root123456(已配置远程连接);Spark任务在Yarn上用Client运行,方便观察日志。若HUdi中无数据,正常抽取提示:在本卷中所示的Ods、dwd层均为hu
11、di中OdS_ds_hudi、dwd_ds_hudi,不操作Hive中的数据子任务一:数据抽取编写Scala代码,使用Spark将MySQL的shtd_store库中表USeJinf0、sku_infobase-provincebase_regionOrdeJinf0、order_detail的数据增量抽取到Hudi的ods_dSJlUdi库(路径为/user/hive/warehouse/ods_ds_hudi.db)的user_info、sku_info、base_provincebase-regionOrdeJinf0、order_detail中。(若ods_ds_hudi库中部分表没有
12、数据,正常抽取即可)1、抽取ShtCLStOre库中USeJinfO的增量数据进入Hudi的OdS_ds_hudi库中表USejinf0。根据ods_ds_hudi.user_info表中operate_time或create_time作为增量字段(即MySQL中每条数据取这两个时间中较大的那个时间作为增量字段去和ods_ds_lWdi里的这两个字段中较大的时间进行比较),只将新增的数据抽入,字段名称、类型不变,同时添加分区,若operate_time为空,则用create_time填充,分区字段为etl_date,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMd
13、d)。id作为PJrinIaryKey,oPerate_time作为PreCOmbineField。使用spark-shell执行showpartitionsods_ds_hudi.useJinfO命令,将结果截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下;2、抽取shtd_store库中sku_info的增量数据进入Hudi的OdS_ds_hudi库中表SkU_info。根据OdS_ds_hudi.sku_info表中create_time作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加分区,分区字段为etl_date,类型为String,且值
14、为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。id作为primaryKey,create_time作为PreCOmbineFiel.d。使用spark-shell执行showpartitionsods_ds_hudi.sku_info命令,将结果截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下;3、抽取Shtd_store库中base_province的增量数据进入HUdi的OdS_ds_hudi库中表base_provinceo根据ods_ds_hudi.base_province表中id作为增量字段,只将新增的数据抽入,字段名称、类型不变并添加
15、字段CreateIinIe取当前时间,同时添加分区,分区字段为etl_date,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)Oid作为primaryKey,create_time作为preCombineFieldo使用spark-shell执行showpartitionsods_ds_hudi.base_province命令,将结果截图粘贴至客户端桌面【Release任务B提交结果.docx】中对应的任务序号下;4、抽取shtd_store库中base_region的增量数据进入HUdi的ods_ds_hudi库中表base_rcgion。根据ods_ds
16、_hudi.basjregion表中id作为增量字段,只将新增的数据抽入,字段名称、类型不变并添加字段Create_time取当前时间,同时添加分区,分区字段为etl_date,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。id作为PrimaryKey,create_time作为PreCombineField。使用spark-shell执行showpartitionsods_ds_hudi.base_region命令,将结果截图粘贴至客户端桌面【Release任务B提交结果.docx中对应的任务序号下;5、抽取shtd_store库中order_info的增量数据进入Hudi的ods_