项目简介
基于hadoop生态搭建的电商数据仓库,整体功能架构包含数据采集、数仓搭建、数据导出、数据可视化等。
图片加载失败请查看
详情学习攻略请查看
完善中…
项目踩坑请查看
系统架构
技术架构
名称 | 版本号 | 类型 | 说明 |
---|---|---|---|
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