Code Monkey home page Code Monkey logo

mall-data-warehouse's Introduction

-mall-data-warehouse-

项目简介

基于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 文件绝对路径 集群分发文件脚本

hive 表说明

完善中...

mysql 表说明

完善中...

mall-data-warehouse's People

Contributors

6039547 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.