2025年广东省职业院校技能大赛高职组“大数据应用开发”赛项任务书(四)

2025年广东省职业院校技能大赛高职组“大数据应用开发”赛项任务书(四)

任务 A:大数据平台搭建(容器环境)(15 分)

环境说明:

在这里插入图片描述

子任务一:Hadoop 完全分布式安装配置

本任务需要使用 root 用户完成相关配置,安装 Hadoop 需要配置前置环境。命令中要求使用绝对路径,具体要求如下:
1、 从 虚 拟 机 bigdata-spark 的 /opt/software 目 录 下 将 安 装 包 hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz 复制到容器 master中的/opt/software 路径中(若路径不存在,则需新建),将 master 节点 JDK 安装包解压到/opt/module 路径中(若路径不存在,则需新建),将 JDK解压命令复制并粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

2、 修改容器中~/.bashrc 文件,设置 JDK 环境变量并使其生效,配置完毕后在 Master 节点分别执行“java -version”和“javac”命令,将命令行执行结果分别截图并粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

3、 请完成 host 相关配置,将三个节点分别命名为 master、slave1、slave2,并做免密登录,用 scp 命令并使用绝对路径从 master 复制 JDK 解压后的安装文件到 slave1、slave2 节点(若路径不存在,则需新建),并配置 slave1、 slave2 相关环境变量,将全部 scp 复制 JDK 的命令复制并粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

4、 在 master 将 Hadoop 解压到/opt/module(若路径不存在,则需新建)目录下,并将解压包分发至 slave1、slave2 中,其中 master、slave1、slave2 节点均作为 datanode,配置好相关环境,初始化 Hadoop 环境 namenode,将初始化命令及初始化结果截图,截取初始化结果日志最后 20 行(需包含出现成功格式化提示的行),粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

5、 启动 Hadoop 集群(包括 hdfs 和 yarn),使用 jps 命令查看 master 节点与 slave1 节点、slave2 节点的 Java 进程,将 jps 命令与结果截图粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下。

子任务二:HBase 分布式安装配置

本任务需要使用 root 用户完成相关配置, 安装 HBase 需要配置 Hadoop 和 ZooKeeper 等前置环境。命令中要求使用绝对路径,具体要求如下:
1、 从 虚 拟 机 bigdata-spark 的 /opt/software 目 录 下 将 安 装 包 apache-zookeeper-3.5.7-bin.tar.gz、hbase-2.2.3-bin.tar.gz 复制到容器 master 中的/opt/software 路径中(若路径不存在,则需新建),将 ZooKeeper、HBase 安装包解压到/opt/module 目录下,将 HBase 的解压命令
复制并粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

2、 完成 ZooKeeper 相关部署,用 scp 命令并使用绝对路径从容器 master 复制 HBase 解压后的包分发至 slave1、slave2 中,并修改相关配置,配置好环境变量,在容器 Master 节点中运行命令 hbase version,将全部复制命令复制并将 hbase version 命令的结果截图粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

3、 启动HBase 后在三个节点分别使用jps 命令查看,正常启动后在hbase shell中查看命名空间,将三个节点查看的 hbase 服务进程和查看命名空间的结果截图粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下。

子任务三:ClickHouse 单节点安装配置

本任务需要使用 root 用户完成相关配置,具体要求如下:
1、从虚拟机 bigdata-spark 的/opt/software 将 clickhouse 开头的相关文件复制到容器 master 中的/opt/module/clickhouse 路径中(若路径不存在,则需新建),将全部解压命令复制并粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

2、执行启动各个相关脚本,将全部启动命令复制并将执行结果(截取结果最后倒数 15 行即可)截图粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

3、设置远程访问并移除默认监听文件(listen.xml),同时由于 9000 端口被 Hadoop 占用,需要将 clickhouse 的端口更改为 9001,并启动 clickhouse,启动后查看 clickhouse 运行状态,并将启动命令复制、查看运行状态命令复制并将执行结果截图粘贴至物理机桌面【Release\任务 A 提交结果.docx】中对应的任务序号下。

任务 B:离线数据处理(25 分)

环境说明:

在这里插入图片描述

子任务一:数据抽取

编 写 Scala 代 码 , 使 用 Spark 将 MySQL 的 spark_test 库 中 表 clothing_sales_spark 的 数 据 全 量 抽 取 到 Hive 的 ods 库 中 对 应 表 clothing_sales_spark 中
1、 抽取 MySQL 的 spark_test 库中 clothing_sales_spark 表的全量数据进入 Hive 的 ods 库中表 clothing sales_spark,字段排序、类型不变,分区字段为 etldate,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyy-MM-dd),使用 Hive 的 cli 执行 select count(*) from ods. clothing_sales_spark 命令,将执行结果截图粘贴至客户端桌面【Release\任务 B 提交结果.docx】中对应的任务序号下。

子任务二:数据清洗

编写Scala 代码,使用 Spark 将ods 库中相应表数据全量抽取到Hive 的dwd 库对应表中。表中有涉及到 timestamp 类型的,均要求按照 yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加 00:00:00,添 加之后使其符合 yyyy-MM-dd HH:mm:ss。(若 dwd 库中部分表没有数据,正常抽取即可)
抽 取 ods 库 中 clothing_sales_spark 表 中 全 量 数 据 进 入 dwd 库 表 clothing_sales_spark 中,分区字段为 etldate,值与 ods 库的相对应表该值相等且要符合以下几个要求:
1、 如果订单折扣率字段有缺失值,则使用(零售单价-折后单价)/零售单价计算 后 进 行 填 充 , 将 查 询 日 销 单 明 细 ID 为 RXDMX-00c28b80a3e60f5c18f69b2a93861112-5 、
RXDMX-1e3f59d9979d8655ce833b9b985c09e9-7 、
RXDMX-1b9d52484507a08ad34e0e71be5031c1-2 的三个订单结果截图粘贴至客户端桌面【Release\任务 B 提交结果.docx】中对应的任务序号下;
2、 处理日销单明细 ID 重复的数据,根据交易时间取较新的一条数据,交易信 息老旧一条数据进行删除,请统计出该张表去除重复数据后一共有多少数据,截图粘贴至客户端桌面【Release\任务 B 提交结果.docx】中对应的任务序号下;
3、 如果订单明细中的零售单价字段为空,则根据折扣率和折后单价计算零售单价进行填充,请统计处理后宽表中零售单价的平均数,截图粘贴至客户端桌面【Release\任务 B 提交结果.docx】中对应的任务序号下;

子任务三:指标计算

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

1、 根据 dwd 层表,计算 2024 年每个门店的销售额及平均折扣率,销售额使用折后总价作为标准来计算,统计每个门店的平均折扣率(年度总折扣金额/年度总原价金额) ,将计算结果存入 Hive 的 dws 数据库的 store_sales 表中
(表结构如下),然后使用 hive cli,找出折扣率最高的门店 TOP5,将 SQL语句复制粘贴至物理机桌面【Release\任务 B 提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面【Release\任务 B 提交结果.docx】中对应的任务序号下;

字段名类型中文含义备注
store_namestring门店名称
total_salesdouble销售额统计折后总价
avg_discount_ratedouble平均折扣率每个门店的平均折扣率=该门店年度总折扣金额/该门店年度总原价金额

2、 根据 dwd 层表,计算 2023 年每个门店员工的销售额与其业绩表现。销售额使用实际支付总价来衡量。通过 IS_MANAGER 字段,区分门店经理和普通员工,计算每位员工的销售业绩。输出员工姓名、员工所属门店、是否为经理、销售总额,在该门店的排名,并找出每个门店业绩表现最好的 TOP3 个员工,存入 MySQL 数据库 spark_result 的 employee_sales 表中(表结构如下),然后在 Linux 的 MySQL 命令行中,根据门店编码、门店名称、排名均为升序排序,查询出前 10 条,将 SQL 语句复制粘贴至客户端桌面【Release\任务 B提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面
【Release\任务 B 提交结果.docx】中对应的任务序号下;

在这里插入图片描述
3、 根据 dwd 层表,计算不同门店每个月的销售情况。统计每个月不同门店的销售数量、销售金额,找出销售金额连续增长两个月及以上的门店信息。输出门店名称、销售数量、销售金额、上个月销售金额、上上个月销售金额,月份,将计算结果存入 Hive 的 dws 数据库的 continuous_growth 表中(表结构如下),然后使用 hive cli,根据门店和月份均为升序排序,查询出前 5条,将 SQL 语句复制粘贴至物理机桌面【Release\任务 B 提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面【Release\任务 B提交结果.docx】中对应的任务序号下。

字段名类型中文含义备注
store_namestring门店名称
total_quantityint销售数量
total_sales_amountdouble销售金额
Last_month_sales_amountdouble上个月销售金额
Sales_amount_two_months_agodouble上上个月销售金额
Sales_monthstring月份例如:2023-05

任务 C:数据挖掘(10 分)

环境说明:

在这里插入图片描述

子任务一:特征工程

使用 Idea Spark 工程或 Spark-shell , 读取虚拟机 bigdata-spark 的
/opt/data 目录下的 credit_train.csv:
1、 使用 VectorAssembler 对 Age、Income、dist_home_val、dist_avg_income、 high_avg 进行特征工程处理,使用 transform 处理,使用 Dataframe 的 show(5, truncate =false)打印特征向量列的前 5 行。将对应 show 代码以及 show 结果的截图粘贴至物理机桌面【Release\任务 C 提交结果.docx】中对应的任务序号下。

2、使用 StandardScaler 对 VectorAssembler 处理后的特征向量列进行标准化处理,使用 transform 处理,使用 Dataframe 的 show(5, truncate =false)打印特征向量列、标准化向量列的前 5 行。将对应 show 代码以及 show 结果的截图粘贴至物理机桌面【Release\任务 C 提交结果.docx】中对应的任务序号下。

子任务二:信用卡支出预测

使用 Idea Spark 工程或 Spark-shell , 读取虚拟机 bigdata-spark 的
/opt/data 目录下的 credit_test.csv:

1、 接子任务一,将 credit_train.csv 划分 80%训练集和 20%测试集,使用 Idea Spark 工程或 Spark-shell,基于 GBTR 梯度提升决策树模型(GBTR 相关参数可自定义,不做限制)编写信用卡支出预测,使用 80%训练集训练处模型后,使用 20%测试集进行预测,并使用 show(5, truncate =false)输出预测结果中 prediction,avg_exp 三列结果。将对应 show 的代码以及 show 结果的截图粘贴至物理机桌面【Release\任务 C 提交结果.docx】中对应的任务序号下

2、 结合已训练好的模型,预测虚拟机 bigdata-spark 的/opt/data 目录下的 credit_test.csv 新数据集,并使用 show(5, truncate = false)输出预测结果中以下列
“Age” “Income”“dist_home_val” “dist_avg_income” “high_avg” “avg_exp” “prediction”
将对应 show 的代码以及 show 结果的截图粘贴至物理机桌面【Release\任务 C 提交结果.docx】中对应的任务序号下

任务 D:数据采集与实时计算(20 分)

环境说明:
在这里插入图片描述

子任务一:实时数据采集

1、 在虚拟机 bigdata-spark 使用 Flume 采集/opt/data 目录下实时日志文件 中 的 数 据 ( 如 果 没 有 权 限 , 请 执 行 授 权 命 令 chmod 777
/opt/data/ChangeRecord),将数据存入到 Kafka 的 Topic 中(Topic 名称
分别为 ChangeRecord、ProduceRecord 和 EnvironmentData,分区数为 4),将 Flume 采集 ChangeRecord 主题的配置截图粘贴至客户端桌面【Release\任务 D 提交结果.docx】中对应的任务序号下;

子任务二:使用Flink 处理Kafka 中的数据

编写 Scala 代码,使用 Flink 消费 Kafka 中的数据并进行相应的数据统计计算。
1、 使用 Flink 消费 Kafka 中 ProduceRecord 主题的数据,统计在已经检验的产品中 , 各 设备每 5 分钟 生产 产品总 数, 将结 果存入 HBase 中 的 gyflinkresult:Produce5minAgg 表,rowkey“设备 id-系统时间”(如: 123-2023-01-01 12:06:06.001),将结果截图粘贴至客户端桌面【Release\任务 D 提交结果.docx】中对应的任务序号下;
注:ProduceRecord 主题,每生产一个产品产生一条数据; change_handle_state 字段为 1 代表已经检验,0 代表为检验;时间语义使用 Processing Time。

在这里插入图片描述
在这里插入图片描述
2、 使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,实时统计每个设备从其他状态转变为“ 运行” 状态的总次数, 将结果存入 MySQL 数据库 spark_industry 的 change_state_other_to_run_agg 表中(表结构如下)。请将任务启动命令复制粘贴至客户端桌面【Release\任务 D 提交结果.docx】中对应的任务序号下,启动 1 分钟后根据 change_machine_id 降序查询 change_state_other_to_run_agg 表并截图粘贴至客户端桌面【Release\任务 D 提交结果.docx】中对应的任务序号下;
注:时间语义使用 Processing Time。 change_state_other_to_run_agg 表:

字段类型中文含义
change_machine_idint设备 id
last_machine_statevarchar上一状态。即触发本次统计的最近一次非运行状态
total_change_torunint从其他状态转为运行的总次数
in_timevarcharflink 计算完成时间(yyyy-MM-ddHH:mm:ss)

任务 E:数据可视化(15 分)

环境说明:

在这里插入图片描述

子任务一:用柱状图展示销售数量最高的门店

编 写 Vue 工 程 代 码 , 读 取 虚 拟 机 bigdata-spark 的 /opt/data 目 录 下 clothing_sales_data.csv 文件,用柱状图展示 2023~2024 年销售数量最高的前 5 个门店,同时将用于图表展示的数据结构在 vscode 终端中进行打印输出,将图表可视化结果和 vscode 终端打印结果分别截图并粘贴至物理机桌面
【Release\任务 E 提交结果.docx】中对应的任务序号下。

子任务二:用柱状图展示销售金额最低的导购人员名称

编 写 Vue 工 程 代 码 , 读 取 虚 拟 机 bigdata-spark 的 /opt/data 目 录 下 clothing_sales_data.csv 文件,用柱状图展示 2023~2024 年销售金额最低的前 10 个导购,同时将用于图表展示的数据结构在 vscode 终端中进行打印输出,将图表可视化结果和 vscode 终端打印结果分别截图并粘贴至物理机桌面
【Release\任务 E 提交结果.docx】中对应的任务序号下。

子任务三:用折线图展示不同月份销售金额变化

编 写 Vue 工 程 代 码 , 读 取 虚 拟 机 bigdata-spark 的 /opt/data 目 录 下 clothing_sales_data.csv 文件,用折线图展示 2023~2024 年不同月份销售量变化,同时将用于图表展示的数据结构在 vscode 终端中进行打印输出,将图表可

视化结果和 vscode 终端打印结果分别截图并粘贴至物理机桌面【Release\任务 E 提交结果.docx】中对应的任务序号下。

子任务五:用饼状图展示每个月份销售数量

编 写 Vue 工 程 代 码 , 读 取 虚 拟 机 bigdata-spark 的 /opt/data 目 录 下 clothing_sales_data.csv 文件,用饼状图展示 2024 年中每个月的销售数量,同时将用于图表展示的数据结构在 vscode 终端中进行打印输出,将图表可视化结果和 vscode 终端打印结果分别截图并粘贴至物理机桌面【Release\任务 E 提交结果.docx】中对应的任务序号下。

子任务五:用基础南丁格尔玫瑰图展示销量最高的导购人员名称

编 写 Vue 工 程 代 码 , 读 取 虚 拟 机 bigdata-spark 的 /opt/data 目 录 下 clothing_sales_data.csv 文件,用基础南丁格尔玫瑰图展示 2023~2024 年销售数量最高的前 5 名导购人员名称,同时将用于图表展示的数据结构在 vscode 终端中进行打印输出,将图表可视化结果和 vscode 终端打印结果分别截图并粘贴至物理机桌面【Release\任务 E 提交结果.docx】中对应的任务序号下。

任务 F:综合分析(10 分)

子任务一:Kafka 的消费组如何实现消息的负载均衡?

请简述 Kafka 的消费组如何实现消息的负载均衡。将内容编写至客户端桌面
【Release\任务 F 提交结果.docx】中对应的任务序号下。

子任务二:Flink CDC 如何确保数据一致性?

请简述 Flink CDC 如何确保数据一致性,将内容编写至客户端桌面【Release\任务 F 提交结果.docx】中对应的任务序号下。

子任务三:Hive 中如何优化查询性能?

请简述 Hive 中如何优化查询性能,将内容编写至客户端桌面【Release\任务 F提交结果.docx】中对应的任务序号下。

附录:补充说明

截图样例(保证清晰,选取可视区域截取)
在这里插入图片描述
在这里插入图片描述

表结构说明

1.1门店服装销售数据表(clothing_sales_spark)

标签中文含义备注
daily_sales_detail_id日销单明细 ID
daily_sales_id日销单 ID
style_combo_code款式组合编码
sales_quantity销售数量
retail_unit_price零售单价
discount_rate折扣率
discounted_unit_price折后单价
discounted_total_price折后总价
store_code门店编码
salesperson_code导购员编码
transaction_time交易时间
product_combo_name款式组合名称
product_code款式编码
salesperson_name导购员姓名
is_manager是否门店经理
store_name门店名称

1.2信用卡支出数据文件(credit_train.csv)

标签中文含义备注
Age年龄
Income收入
dist_home_val所在小区房屋均价( 万元)
dist_avg_income当地人均收入
high_avg高出当地平均收入
avg_exp信用卡支出(元)

需要大数据应用开发省赛赋能培训可联系我🙂,点赞关注收藏三连一下吧~。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺仔Sec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值