1.前期准备
环境
1、hadoop -hdfs 、hadoop-yarn、
2、kafka
3、maxwell // 保证能监测到mysql maxwell用户密码为123456否则需要改app-dw的conf下maxwel配置文件
4、flume
//将钉钉群中flume-interceptor-1.0.0-jar-with-dependencies.jar上传flume的lib目录下
//将hadoop的/opt/apps/hadoop/share/hadoop/common/lib下的guava-27.0-jre.jar复制到flume的里边目录并把原来的低版本guavajar包删除
5、datax
6、zookpeer
7、hive
8、mysql 5.x node01节点//保证binlog开启
9、kafka-ui
保证环境变量正常且所有软件正常启动
准备工作://准备工作阶段如果执行过不用重复执行
1,在node01 mysql创建数据库
注意:数据库一定要在node01 hive主节点也要在
如果不在需更改app-dw的conf下maxwell及datax配置的与mysql相关配置文件
还要注意hdfs数据传输端口必须是9000否则需要更改app-dw的conf下flume及datax配置的与hdfs相关配置文件
使用datagrip 或者navicat远程连接mysql执行sql脚本“commerce.sql“”初始化仓库
2、在kafka中创建topic
命令创建dw_topic_db
kafka-topics.sh --bootstrap-server node01:9092 --create --replication-factor 3 --partitions 10 --topic dw_topic_db
命令创建dw_topic_db
kafka-topics.sh --bootstrap-server node01:9092 --create --replication-factor 3 --partitions 10 --topic dw_topic_log
或者使用kafka-ui可视化创建
3、在hdfs中创建源数据目录
hdfs -dfs mkdir -p /dw/commerce/source/log
hdfs -dfs mkdir -p /dw/commerce/source/db
4、上传app-dw文件至/opt/下
一定要用我的文件夹,里边内容完整已将修改成功,并且所有脚本执行及执行节点都在node01
仅上传至node01即可
配置环境变量
环境变量HOME名必须是APP_DW_HOME
文件名及内容尽量不要更改
#my_home
#app-dw
export APP_DW_HOME=/opt/app-dw
export PATH=$PATH:$APP_DW_HOME/bin
export PATH=$PATH:$APP_DW_HOME/sbin
可能缺少的环境变量
#datax
export DATAX_HOME=/opt/apps/datax
export PATH=$PATH:$DATAX_HOME/bin
#maxwell
export MAXWELL_HOME=/opt/apps/maxwell
export PATH=$PATH:$MAXWELL_HOME/bin
2、启动流程
最先执行hive仓库初始化
首先在hive中创建commerce数据库
#执行hive仓库初始化,最终各个分层创建成功
dw-hive-init-table.sh//只执行一次如果执行过不用执行
开始执行流程
#启动收集将数据收集至kafka
coolect-db.sh start
collect-log.sh start
db 数据会在 topic dw_mock_db
log 数据会在 topic dw_mock_log
#生成db 和· log数据
start-mock-dbs-batch.sh 2023-05-01 2023-05-09 //生成日志数据(batch执行)和db数据
start-mock-log.sh 2023-05-01 //2023-05-01====2023-05-09
start-mock-log.sh 2023-05-02
start-mock-log.sh 2023-05-03
start-mock-log.sh 2023-05-04
start-mock-log.sh 2023-05-05
start-mock-log.sh 2023-05-06
start-mock-log.sh 2023-05-07
start-mock-log.sh 2023-05-08
start-mock-log.sh 2023-05-09
#业务数据全量同步初始化
sync-db-inc-init.sh all
业务数据全量同步————数据会同步至hdfs
#从kafka把log数据传输至hdfs /dw/commerce/source/log 目录下
sync-log.sh
#从kafka把db数据传输至hdfs /dw/commerce/source/db 目录下
sync-db-full.sh all 2023-05-10
#业务数据增量同步
++不执行sync-db-inc.sh start
#####加载数据到ods
== db数据
load-data-to-ods-db.sh all 2023-05-10
== log数据
load-data-to-ods-log.sh 2023-05-01
load-data-to-ods-log.sh 2023-05-02
load-data-to-ods-log.sh 2023-05-03
load-data-to-ods-log.sh 2023-05-04
load-data-to-ods-log.sh 2023-05-05
load-data-to-ods-log.sh 2023-05-06
load-data-to-ods-log.sh 2023-05-07
load-data-to-ods-log.sh 2023-05-08
load-data-to-ods-log.sh 2023-05-09
#####加载数据到dim
load-data-to-dim-init.sh all 2023-05-26 //初始化dim,只进行一次
##逐个表进行加载
load-data-to-dim.sh dim_user_zip 2023-05-10
load-data-to-dim.sh dim_province_full 2023-05-10
load-data-to-dim.sh dim_coupon_full 2023-05-10
load-data-to-dim.sh dim_activity_full 2023-05-10
load-data-to-dim.sh dim_sku_full 2023-05-10
load-data-to-dim.sh dim_date 2023-05-10
####加载数据到dwd
load-data-to-dwd-init.sh all 2023-05-10
Time taken: 68.191 seconds
FAILED: RuntimeException cannot find field display_type(lowercase form: display_type) in [displaytype, item, item_type, order, pos_id]
load-data-to-dwd.sh all 2023-05-10
####加载数据到dws
load-data-to-dws-init.sh all 2023-05-10 //初始化dws,只进行一次
load-data-to-dws-1d.sh all 2023-05-26 //加载1d
load-data-to-dws-td.sh all 2023-05-26 //加载td
load-data-to-dws-nd.sh all 2023-05-26 //加载nd
有空表
####加载数据到ads
大部分表为空
load-data-to-ads.sh
对脚本bin、sbin赋予权限
进入bin和sbin 执行chmod u+x ./*
如遇到hive命令找不到在脚本hive命令前加source /etc/profile
如果环境正常看老师最后一节视频一样可以进行
以上不保证完全正确