基于hadoop生态搭建的电商数据仓库,整体功能架构包含数据采集、数仓搭建、数据导出、数据可视化

项目简介

基于hadoop生态搭建的电商数据仓库,整体功能架构包含数据采集、数仓搭建、数据导出、数据可视化等。

图片加载失败请查看

电商数据仓库项目简介

详情学习攻略请查看

hadoop安装

hive安装

hive常用命令

完善中…

项目踩坑请查看

Linux卸载安装Mysql踩坑

Linux报错只读文件系统(集群非法关机、断电)踩坑

sqoop拒绝连接

kafka manager启动失败解决方案

hive拒绝连接解决方案

系统架构

系统数据流程如下图: 系统数据流程图.jpeg

数仓分层如下图: 数仓分层图.png

hive表关系图如下图: hive表关系图.jpeg

技术架构

名称 版本号 类型 说明
hadoop 2.7.6 数据存储
jdk 1.8.0 依赖
zookeeper 3.4.6 集群管理
flume 1.7.0 数据采集传输
kafka 2.11-0.11 数据采集传输
kafka manager 1.3.3 可视化管理
hive 1.2.1 数据计算 使用tez 0.9.1作为计算引擎
mysql 5.6.24 数据存储
sqoop 1.4.6 数据采集传输
azkaban 2.5.0 任务调度
presto 0.196 数据查询 使用yanagishima 18.0作为web页面
druid 2.7.10 数据查询 imply方式安装
hbase 1.2.1 数据存储

项目结构说明

├─azkaban azkaban job文件 
│
├─flume-interceptor  采集flume拦截器,用来区分日志类型与简单数据清洗
│
├─hive
│  └─gmall
│      ├─用户行为数仓 用户行为数仓hive sql
│      │     
│      └─系统业务数仓 系统业务数仓hive sql
│              
├─hive-function hive自定义函数
│              
├─log-collector 生成日志文件项目,打包成jar包后通过命令运行,将标准输出重定向至log文件即可
│             
├─mysql mysql结构、函数
│      
├─shell 数仓中常用脚本
│  ├─ads ads层加载数据脚本
│  │      
│  ├─dwd dwd层加载数据脚本
│  │      
│  ├─dws dws层加载数据脚本
│  │      
│  ├─ods ods层加载数据脚本
│  │      
│  ├─sqoop mysql导入导出数据脚本
│  │     
│  ├─tools 集群公共脚本
│  │      
│  └─utils 通用工具脚本
│          
└─spring-boot-echarts-master 可视化web项目

集群规划

集群规划

脚本说明

名称 参数 参数说明 脚本说明
ods_log.sh $1 分区名(时间) 行为数仓ods层导入hdfs数据
ods_log.sh $1 分区名(时间) 行为数仓ods层导入hdfs数据
ods_db.sh $1 分区名(时间) 业务数仓ods层导入hdfs数据
dwd_start_log.sh $1 分区名(时间) 行为数仓dwd层启动日志表dwd_start_log自动导入ods层数据
dwd_base_log.sh $1 分区名(时间) 行为数仓dwd层事件日志表dwd_base_event_log自动导入ods层数据
dwd_event_log.sh $1 分区名(时间) 行为数仓dwd层各个事件表自动导入数据
dwd_db.sh $1 分区名(时间) 业务数仓dwd层自动导入数据
dws_uv_log.sh $1 分区名(时间) 行为数仓DWS层加载活跃用户明细数据脚本
dws_db_wide.sh $1 分区名(时间) 业务数仓dws层用户行为宽表自动导入数据
dws_sale.sh $1 分区名(时间) 业务数仓dws层用户购买商品明细宽表自动导入数据
ads_back_log.sh $1 分区名(时间) ads层回流用户指标分析数据导入脚本
ads_continuity_log.sh $1 分区名(时间) ads层最近七天连续活跃三天用户指标分析数据导入脚本
ads_continuity_wk_log.sh $1 分区名(时间) ads层最近三周活跃用户指标分析数据导入脚本
ads_db_gmv.sh $1 分区名(时间) ads层GMV指标分析数据导入脚本
ads_slient_log.sh $1 分区名(时间) ads层沉默用户指标分析数据导入脚本
ads_wastage_log.sh $1 分区名(时间) ads层流失用户指标分析数据导入脚本
ads_uv_log.sh $1 分区名(时间) ads层活跃用户指标分析数据导入脚本
sqoop_import.sh $1 hdfs导入指定mysql表数据,可选:表名、all(全部导入) hdfs导入mysql数据脚本
$2 时间
sqoop_export.sh $1 hive导出指定hive表数据,可选:ads_uv_count(日活指标表)、ads_user_action_convert_day(漏斗分析指标表)、ads_gmv_sum_day(GVM指标表)、all(上述三个全部导出) hive导出ads层数据至mysql脚本
lg.sh $1 每条日志数据产生的延迟时间(毫秒) 生成日志文件脚本,生成数据的时间与当前服务器时间一致
$2 生成日志数据条数
zk.sh $1 可选:start(启动)、stop(停止)、status(查看状态) 群起zookeeper脚本
f1.sh $1 可选:start(启动)、stop(停止) 群起采集flume脚本
f2.sh $1 可选:start(启动)、stop(停止) 启动消费flume脚本
kf.sh $1 可选:start(启动)、stop(停止) 群起kafka脚本
km.sh $1 可选:start(启动)、stop(停止) 启动Kafka Manager脚本
hv.sh $1 可选:start(启动)、stop(停止) 启动hive metastore服务脚本,注:当启动卡住可以直接Ctrl+C退出启动界面,再使用jps命令查看进程是否启动,进程启动即可。
cluster.sh $1 可选:start(启动)、stop(停止) 群起用户行为数据采集架构脚本
xcall.sh $1 要执行的命令 集群执行统一命令脚本
xsync $1 文件绝对路径 集群分发文件脚本

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/notes/172345.html

(0)
上一篇 2021年9月27日 17:24
下一篇 2021年9月27日 17:30

相关推荐

发表回复

登录后才能评论