大数据项目之在线教育离线数仓

大数据项目之在线教育离线数仓
zzh大数据开发项目之在线教育离线数仓从零到一(学习项目)
本文详细介绍了大数据开发项目之在线教育离线数仓的开发过程,从零到一,包括项目背景、需求分析、设计思路、技术选型、开发环境搭建、数据采集、数仓搭建、
项目整体流程
该项目是一个在线教育大数据开发项目,旨在构建离线数仓,对在线教育业务数据进行分析处理,以支持企业决策。以下是项目的详细流程:
1. 业务流程与数据来源
- 业务流程:用户从在线教育网站首页开始浏览课程,可通过分类查询或全文检索寻找课程,找到后可添加到购物车、登录、结算,生成订单和支付数据,订单生成后会进行跟踪处理。
- 数据来源:包括用户行为数据(通过前端埋点采集,存储在 HDFS 文件中)和业务数据(存储在 MySQL 中)。(因为本项目为学习项目,所以数据来源均为数据模拟器模拟的虚拟数据)
2. 系统数据流程设计
- 集群流程图:业务服务器与 App 业务交互,通过 Nginx 进行数据传输。日志数据经日志服务器采集,可采用 flume 采集方式,部分数据经消息缓存后存入 Kafka。业务数据通过 DataX 每日同步从 MySQL 数据库导入。数据在集群中经过 ODS、DWD、DWS 等层的处理,最终用于可视化。
问:为什么不直接使用flume把数据采集到hdfs,要在之间加一个kafka呢?可以把Kafka换为flume聚合吗? - 集群特点:具备多数据源对接能力,可进行离线批量和在线实时处理,有统一的集群管理配置监控平台,并实现用户认证和权限管理,满足多租户需求。
3. 技术选型
Apache 框架版本:确定了 Hadoop、Flume、Kafka、Hive、Sqoop 等多种技术框架的具体版本,每个版本都有其特定的功能特点,以满足项目需求。
框架 版本 Hadoop 3.1.3 Zookeeper 3.5.7 MySQL 5.7.16 Hive 3.1.2 Flume 1.9.0 Kafka 3.0.0 Spark 3.0.0 DataX 3.0.0 Superset 1.3.2 DolphinScheduler 2.0.3 Maxwell 1.29.2 服务器选型:因为本项目仅为学习项目所以服务器选型比较简单仅为三台虚拟机。
4. 集群规模规划
集群规划:详细规划了各服务器节点上部署的组件,如 DataNode、NodeManager、ResourceManager 等在不同服务器上的分布。
服务名称 子服务 hadoop102 hadoop103 hadoop104 HDFS NameNode √ HDFS DataNode √ √ √ HDFS SecondaryNameNode √ Yarn NodeManager √ √ √ Yarn Resourcemanager √ Zookeeper Zookeeper Server √ √ √ Flume(采集日志) Flume √ √ Kafka Kafka √ √ √ Flume(消费Kafka日志) Flume √ Flume(消费Kafka业务) Flume √ Hive Hive √ MySQL MySQL √ DataX DataX √ Maxwell Maxwell √ Spark √ √ √ DolphinScheduler ApiApplicationServer √ DolphinScheduler AlertServer √ DolphinScheduler MasterServer √ DolphinScheduler WorkerServer √ √ √ DolphinScheduler LoggerServer √ √ √
5. 数据仓库学习重点
- 建模(建表)
- SQL及优化
- 任务调度器
如果直接将MySQL作为数据仓库数据源
- MySQL为行存储,数仓为列存储
- MySQL不是海量数据,数据仓库要求海量数据(因为数据量越大,分析结果越准确)
- 会降低MySQL的查询性能
- 所以数仓设计自己的数据源要求汇总数据
- 加hdfs(因为数仓采用hive)为解耦合,数据源和数仓分离,数据源只负责采集数据,数仓只负责分析数据
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果




