那些年我做过的“学习用”项目

宣胤

第一个项目:离线数仓(hadoop+flume+kafka+hive)

数据仓库

image-20230426233540128
image-20230426233540128

系统数据流程图

image-20230426233006098
image-20230426233006098

开始就是安装需要用到的软件:
hadoop
zookeeper
kafka
flume
mysql
maxwell
datax
hive
dolphinscheduler
superset

设置进程启停脚本:
lg.sh:运行hadoop102、hadoop103上生产日志数据的jar包,并把数据写入文件app.date.log文件
f1.sh:启动hadoop102、hadoop03上的flume进程,采集日志数据文件app.date.log中的数据到kafka的topic_log主题
mxw.sh:启动hadoop102上的maxwell进程,监控mysql中指定数据库的变化(首先需要开启mysql的binlog),将变化的数据写入kafka的topic_db主题
f2.sh:启动hadoop104上的flume进程,采集kafka的topic_log主题中的日志数据到hdfs中
gen_import_config.py:datax的配置文件生成脚本
gen_import_config.sh:datax的批量配置文件生成脚本
mysql_to_hdfs_full.sh:mysql全量表数据同步至hdfs的脚本
f3.sh:启动hadoop104上的flume进程,采集kafka的topic_db主题中的业务数据到hdfs中
mysql_to_kafka_inc_init.sh:mysql增量表首次全量同步业务数据至kafka
cluster.sh:启动和关闭zookeeper、hadoop、kafka、采集flume–f1、日志消费flume–f2、业务消费flume–f3、maxwell
hdfs_to_ods_log.sh:将hdfs中的日志数据导入hive的ods层中对应的表中
hdfs_to_ods_db.sh:将hdfs中的业务数据导入hive的ods层中对应的表中
ods_to_dim_init.sh:将hive的ods层数据首日装载到dim层中
ods_to_dim.sh:将hive的ods层数据每日装载到dim层中
ods_to_dwd_init.sh:将hive的ods层数据首日装载到dwd层中
ods_to_dwd.sh:将hive的ods层数据每日装载到dwd层中
dwd_to_dws_1d_init.sh:将hive中的dwd层数据 装载dws层最近1日数据表中
dws_1d_to_dws_nd.sh:将hive中的dws层最近1日数据 装载到dws层最近n日数据表中
dws_1d_to_dws_td_init.sh:将hive中的dws层最近1日数据 首日 装载到dws层历史至今数据表中
dws_1d_to_dws_td.sh:将hive中的dws层最近1日数据 每日 装载到dws层历史至今数据表中
dws_to_ads.sh:将dws层数据装载到ads层数据表中

在hive中创建按层次分布的数据仓库–使用DataGrip创建

image-20230426230726666
image-20230426230726666

ADS层

image-20230506185735889
image-20230506185735889

image-20230506185753481
image-20230506185753481

ADS层数据
ADS层数据

DWS层

image-20230506185645322
image-20230506185645322

image-20230506185703842
image-20230506185703842

image-20230426231355375
image-20230426231355375

DWD层

image-20230506185545495
image-20230506185545495

image-20230506185604987
image-20230506185604987

image-20230426231507605
image-20230426231507605

DIM层

image-20230506185233492
image-20230506185233492

image-20230506185504319
image-20230506185504319

image-20230426231557848
image-20230426231557848

ODS层

image-20230506185132757
image-20230506185132757

image-20230506185152140
image-20230506185152140

image-20230426231637998
image-20230426231637998

将报表数据(ADS层数据)导出到MySQL–使用DataX

使用脚本hdfs_to_mysql.sh:将ADS层数据导入MySQL

启动dolphinscheduler,并通过web ui访问

image-20230426162836842
image-20230426162836842

image-20230426162721178
image-20230426162721178

查看虚拟机进程

image-20230426164046511
image-20230426164046511

管理项目

image-20230426162905277
image-20230426162905277

管理工作流

image-20230426162936789
image-20230426162936789

image-20230426163008508
image-20230426163008508

为每个步骤添加脚本(这些脚本就是之前在虚拟机中编写的脚本)

image-20230426163045722
image-20230426163045722

执行任务

image-20230426163824085
image-20230426163824085

image-20230426163901535
image-20230426163901535

使用superset进行可视化展示

image-20230426164823994
image-20230426164823994

image-20230426164844424
image-20230426164844424

编辑各类表单

image-20230426165147121
image-20230426165147121

查看离线指标看板

image-20230426165057382
image-20230426165057382

  • 标题: 那些年我做过的“学习用”项目
  • 作者: 宣胤
  • 创建于: 2023-04-26 16:34:06
  • 更新于: 2023-05-06 19:34:00
  • 链接: http://xuanyin02.github.io/2023/042646735.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
那些年我做过的“学习用”项目