2024年河南省职业院校 技能大赛高职组 “大数据分析与应用” 赛项任务书(四)

news2025/3/25 19:54:22

2024 年河南省职业院校 技能大赛高职组 “大数据分析与应用” 赛项任务书(四))

    • 背景描述:
        • 任务一:Hadoop 完全分布式安装配置(25 分)
        • 任务二:离线数据处理(25 分)
          • 子任务一:数据抽取
        • 任务三:数据采集与实时计算(20 分)
          • 任务一:实时数据采集
        • 任务四:数据可视化(10 分)
          • 子任务一:用柱状图展示各省份消费额的中位数
        • 任务五:综合分析(20 分)
          • 子任务一:Kafka 中的数据如何保证不丢失?
          • 子任务二:请描述 HBase 的 rowkey 设计原则。
    • 需要培训私信博主,资源环境也可以(包拿奖)!!

背景描述:

大数据时代背景下,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。
因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用Hudi、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。

任务一:Hadoop 完全分布式安装配置(25 分)

本任务需要使用 root 用户完成相关配置,安装 Hadoop 需要配置前置环境。
命令中要求使用绝对路径,具体要求如下:

1、 从 宿 主 机 /opt 目 录 下 将 文 件 hadoop-3.1.3.tar.gz 、jdk-8u212-linux-x64.tar.gz 复制到容器 Master 中的/opt/software 路径中(若路径不存在,则需新建),将 Master 节点 JDK 安装包解压到/opt/module路径中(若路径不存在,则需新建),将 JDK 解压命令复制并粘贴至客户端桌面【Release\任务 A 提交结果.docx】中对应的任务序号下;

2、 修改容器中/etc/profile 文件,设置 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 节点的 Java 进程,将 jps 命令与结果截图粘贴至客户端桌面【Release\任务 A 提交结果.docx】中对应的任务序号下。

任务二:离线数据处理(25 分)
子任务一:数据抽取

编写 Scala 代码,使用 Spark 将 MySQL 的 user 库中表 user_info、order_info的数据增量抽取到 hive 的 ods_mysql 库(路径为/user/hive/warehouse/)的user_info、order_info 中。

1.抽取 user 库中 user_info 的增量数据进入 hive 的 ods_mysql 库中表user_info。根据ods_mysql.user_info 表中 operate_time 或 create_time 作为增量字段(即 MySQL 中每条数据取这两个时间中较大的那个时间作为增量字段去和 ods 里的这两个字段中较大的时间进行比较),只将新增的数据抽入,字段名称、类型不变,同时添加分区,若 operate_time 为空,则用 create_time 填充,分区字段为 etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字 段 格 式 为 yyyyMMdd ) 。 id 作 为 primaryKey , operate_time 作 为preCombineField 。 使 用 spark-shell 执 行 show partitionsods_mysql.user_info 命令。抽 取 user 库 中 order_info 的 增 量 数 据 进 入 Hive 的 ods_mysql 库 中 表order_info,根据 ods_mysql.order_info 表中 operate_time 或 create_time
作为增量字段(即 MySQL 中每条数据取这两个时间中较大的那个时间作为增量字段去和 ods 里的这两个字段中较大的时间进行比较),只将新增的数据抽入,字段名称、类型不变,同时添加分区,分区字段为 etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。id 作为 primaryKey,operate_time 作为 preCombineField。
使用 spark-shell 执行 show partitionsods_mysql.order_info 命令。将结果截图粘贴至客户端桌
面【Release\任务 B 提交结果.docx】中对应的任务序号下

2、 将 ods_mysql 库中 order_info 表昨天的分区(子任务一生成的分区)数据抽取到 dwd_ds_hive 库中 fact_order_info 的动态分区表,分区字段为etl_date,类型为 String,取 create_time 值并将格式转换为 yyyyMMdd,同时若 operate_time 为空,则用 create_time 填充,并添加 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 均填写当前操作时间,并进行数据类型转换。id 作为primaryKey,operate_time 作为 preCombineField。使用 spark-shell 执行show partitions dwd.fact_order_info 命令,将结果截图粘贴至客户端桌面【Release\任务 B 提交结果.docx】中对应的任务序号下;

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

1、 在主节点使用 Flume 采集实时数据生成器 10050 端口的 socket 数据,将数据存入到 Kafka 的 Topic 中(Topic 名称为 order,分区数为 4),使用 Kafka自带的消费者消费 order(Topic)中的数据。

2、 采用多路复用模式,Flume 接收数据注入 kafka 的同时,将数据备份到 HDFS目录/user/test/flumebackup 下。 子任务二:使用 Flink 处理 Kafka 中的数据编写 Scala 代码,使用 Flink 消费 Kafka 中 Topic 为 order 的数据并进行相应的数据统计计算(订单信息对应表结构 order_info,同时计算中使用order_info 表 中 create_time 或 operate_time 取 两 者 中 值 较 大 者 作 为EventTime,若 operate_time 为空值或无此列,则使用 create_time 填充,允许数据延迟 5s,订单状态 order_status 分别为 1001:创建订单、1002:支付订单、1003:取消订单、1004:完成订单、1005:申请退回、1006:退回完成。另外对于数据结果展示时,不要采用例如:1.9786518E7 的科学计数法)。

1、 使用 Flink 消费 Kafka 中的数据,统计商城实时订单数量(需要考虑订单状态,若有取消订单、申请退回、退回完成则不计入订单数量,其他状态则累加),将 key 设置成 totalcount 存入 Redis 中。

2、 在任务 1 进行的同时,使用侧边流,统计每分钟申请退回订单的数量,将 key设置成 refundcountminute 存入 Redis 中。

3、 在任务 1 进行的同时,使用侧边流,计算每分钟内状态为取消订单占所有订单的占比,将 key 设置成 cancelrate 存入 Redis 中,value 存放取消订单的占比(为百分比,保留百分比后的一位小数,四舍五入,例如 12.1%)。

任务四:数据可视化(10 分)
子任务一:用柱状图展示各省份消费额的中位数

编写 Vue 工程代码,根据接口,用柱状图展示 2020 年部分省份所有订单消费额的中位数(前 10 省份,降序排列,若有小数则四舍五入保留两位),同时将用于图表展示的数据结构在浏览器的 console 中进行打印输出。 子任务二:用玫瑰图展示各地区消费能力编写 Vue 工程代码,根据接口,用基础南丁格尔玫瑰图展示 2020 年各地区的消费总额占比,同时将用于图表展示的数据结构在浏览器的 console 中进行打印输出。

任务五:综合分析(20 分)
子任务一:Kafka 中的数据如何保证不丢失?

在任务 D 中使用到了 Kafka,将内容编写至客户端桌面中对应的任务序号下。

子任务二:请描述 HBase 的 rowkey 设计原则。

请简要概述 HBase 的 rowkey 的重要性并说明在设计 rowkey 时应遵循哪些原则,将内容编写至客户端桌面中对应的任务序号下。

需要培训私信博主,资源环境也可以(包拿奖)!!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2320410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dify创建第一个Agent

1、首先LLM模型必须支持 Function Calling 由于deepseek-R1本地化部署时还不支持,所以使用 qwq模型。 2、创建空白 Agent 3、为Agent添加工具 4、测试 当未添加时间工具时 询问 时间 如下 5、开启时间工具 询问如下

⭐算法OJ⭐判断二叉搜索树【树的遍历】(C++实现)Validate Binary Search Tree

图论入门【数据结构基础】:什么是树?如何表示树? 之前我们有分别讲解二叉树的三种遍历的相关代码实现: ⭐算法OJ⭐二叉树的前序遍历【树的遍历】(C实现)Binary Tree Preorder Traversal ⭐算法OJ⭐二叉树的…

2. 商城前端部署

商城客户端前端部署 https://gitee.com/newbee-ltd/newbee-mall-api-go 使用开源新蜂商城的前端,git clone到本地 然后在vscode终端依次输入下列指令(配置好vue3相关环境的前提下): npm install npm i --legacy-peer-deps npm …

鸿蒙生态开发

鸿蒙生态开发概述 鸿蒙生态是华为基于开源鸿蒙(OpenHarmony)构建的分布式操作系统生态,旨在通过开放共享的模式连接智能终端设备、操作系统和应用服务,覆盖消费电子、工业物联网、智能家居等多个领域。以下从定义与架构、核心技术…

基于STM32进行FFT滤波并计算插值DA输出

文章目录 一、前言背景二、项目构思1. 确定FFT点数、采样率、采样点数2. 双缓存设计 三、代码实现1. STM32CubeMX配置和HAL库初始化2. 核心代码 四、效果展示和后话五、项目联想与扩展1. 倍频2. 降频3. 插值3.1 线性插值3.2 样条插值 一、前言背景 STM32 对 AD 采样信号进行快…

【Oracle资源损坏类故障】:详细了解坏块

目录 1、物理坏块与逻辑坏块 1.1、物理坏块 1.2、逻辑坏块 2、两个坏块相关的参数 2.1、db_block_checksum 2.2、db_block_checking 3、检测坏块 3.1、告警日志 3.2、RMAN 3.3、ANALYZE 3.4、数据字典 3.5、DBVERIFY 4、修复坏块 4.1、RMAN修复 4.2、DBMS_REPA…

996引擎-接口测试:背包

996引擎-接口测试:背包 背包测试NPC参考资料背包测试NPC CONSTANT = require("Envir/QuestDiary/constant/CONSTANT.lua"); MsgUtil = require("Envir/QuestDiary/utils/996/MsgUtil.lua");

Electron打包文件生成.exe文件打开即可使用

1 、Electron 打包,包括需要下载的内容和环境配置步骤 注意:Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的框架 首先需要电脑环境有Node.js 和 npm我之前的文章有关nvm下载node的说明也可以去官网下载 检查是否有node和npm环…

单播、广播、组播和任播

文章目录 一、单播二、广播三、组播四、任播代码示例: 五、各种播的比较 一、单播 单播(Unicast)是一种网络通信方式,它指的是在网络中从一个源节点到一个单一目标节点对的传输模式。单播传输时,数据包从发送端直接发…

Cursor+Claude-3.5生成Android app

一、Android Studio下载 https://developer.android.com/studio?hlzh-tw#get-android-studio 等待安装完成 二、新建工程 点击new project 选择Empty Activity 起一个工程名 当弹出这个框时 可以在settings里面选择No proxy 新建好后如下 点击右边模拟器&#xff0c…

QT Quick(C++)跨平台应用程序项目实战教程 3 — 项目基本设置(窗体尺寸、中文标题、窗体图标、可执行程序图标)

目录 1. 修改程序界面尺寸和标题 2. 窗体图标 3. 修改可执行程序图标 上一章创建好了一个初始Qt Quick项目。本章介绍基本的项目修改方法。 1. 修改程序界面尺寸和标题 修改Main.qml文件,将程序宽度设置为1200,程序高度设置为800。同时修改程序标题…

Transformers x SwanLab:可视化NLP模型训练(2025最新版)

HuggingFace 的 Transformers 是目前最流行的深度学习训框架之一(100k Star),现在主流的大语言模型(LLaMa系列、Qwen系列、ChatGLM系列等)、自然语言处理模型(Bert系列)等,都在使用T…

VSCode 抽风之 两个conda环境同时在被激活

出现了神奇的(toolsZCH)(base) 提示符,如下图所示: 原因大概是:conda 环境的双重激活:可能是 conda 环境没有被正确清理或初始化,导致 base 和 toolsZCH 同时被激活。 解决办法就是 :conda deactivate 两次…

Mybatis的基础操作——03

写mybatis代码的方法有两种: 注解xml方式 本篇就介绍XML的方式 使用XML来配置映射语句能够实现复杂的SQL功能,也就是将sql语句写到XML配置文件中。 目录 一、配置XML文件的路径,在resources/mapper 的目录下 二、写持久层代码 1.添加mappe…

React:React主流组件库对比

1、Material-UI | 官网 | GitHub | GitHub Star: 94.8k Material-UI 是一个实现了 Google Material Design 规范的 React 组件库。 Material UI 包含了大量预构建的 Material Design 组件,覆盖导航、滑块、下拉菜单等各种常用组件,并都提供了高度的可定制…

python每日十题(6)

】函数定义:函数是指一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用其函数名即可。函数能提高应用的模块性和代码的重复利用率 在Python语言中,用关键字class来定义类 在Python语…

1.Go - Hello World

1.安装Go依赖 https://go.dev/dl/ 根据操作系统选择适合的依赖,比如windows: 2.配置环境变量 右键此电脑 - 属性 - 环境变量 PS: GOROOT:Go依赖路径; GOPATH:Go项目路径; …

优先队列 priority_queue详解

说到&#xff0c;priority_queue优先队列。必须先要了解啥是堆与运算符重载(我在下方有解释)。 否则只知皮毛&#xff0c;极易忘记寸步难行。 但在开头&#xff0c;还是简单的说下怎么用 首先&#xff0c;你需要调用 #include <queue> 在main函数中&#xff0c;声明…

《信息系统安全》(第一次上机实验报告)

实验一 &#xff1a;网络协议分析工具Wireshark 一 实验目的 学习使用网络协议分析工具Wireshark的方法&#xff0c;并用它来分析一些协议。 二实验原理 TCP/IP协议族中网络层、传输层、应用层相关重要协议原理。网络协议分析工具Wireshark的工作原理和基本使用规则。 三 实…

简要分析IPPROTO_TCP参数

IPPROTO_TCP是操作系统或网络编程中定义的一个 协议号常量&#xff0c;用于标识 传输控制协议&#xff08;TCP&#xff09;。其核心作用是 在传输层指定使用TCP协议&#xff0c;确保数据通过TCP的可靠传输机制进行通信。 一、定义与值 头文件&#xff1a;定义在<netinet/in.…