1. 清空HDFS上所有的文件
bash
hdfs dfs -rm -R /user
hdfs dfs -rm -R /tmp
hdfs dfs -rm -R /origin_data
2.移除掉duoduo_baobiao这个database
然后把duoduo_baobiao 这个database里面的所有的表都建立好
sql
Drop database duoduo_baobiao;
CREATE DATABASE duoduo_baobiao;
USE duoduo_baobiao;
#每月商品行为表
DROP TABLE IF EXISTS ads_sku_sales_top10;
CREATE TABLE ads_sku_sales_top10
(
sku_id VARCHAR(255) COMMENT 'sku_id',
favour_cnts BIGINT COMMENT '收藏次数',
cart_cnts BIGINT COMMENT '加购物车次数',
order_cnts BIGINT COMMENT '下单次数',
pay_cnts BIGINT COMMENT '支付次数'
)
COMMENT '每月商品行为表' ;
#每月商品分类销量排行表
DROP TABLE IF EXISTS ads_sales_category_top_top10;
CREATE TABLE ads_sales_category_top_top10
(
category3_name VARCHAR(255) COMMENT '三级分类名称',
cat_num BIGINT COMMENT '分类商品销量'
)
COMMENT '每月商品分类销量排行表';
#每月商品品牌销售排行表
DROP TABLE IF EXISTS ads_sku_num_trademark_top10;
CREATE TABLE ads_sku_num_trademark_top10
(tm_name VARCHAR(255) COMMENT '品牌名称',
total_num BIGINT COMMENT '销售数量'
)COMMENT '每月商品品牌销售排行表';
#每月省市下单金额排行表
DROP TABLE IF EXISTS ads_sku_amount_province_top10;
CREATE TABLE ads_sku_amount_province_top10
(province_name VARCHAR(255) COMMENT '省市名称',
total_amount DECIMAL(16,2) COMMENT '下单金额'
)COMMENT '每月省市下单金额排行表';
#每月省市支付金额排行表
DROP TABLE IF EXISTS ads_sku_payamount_province_top10;
CREATE TABLE ads_sku_payamount_province_top10
(province_name VARCHAR(255) COMMENT '省市名称',
total_payamount DECIMAL(16,2) COMMENT '支付金额'
)COMMENT '每月省市支付金额排行表';
#每月用户支付金额排行表
DROP TABLE IF EXISTS ads_user_payamount_top10;
CREATE TABLE ads_user_payamount_top10
(user_name VARCHAR(255) COMMENT '用户名称',
total_payamount DECIMAL(16,2) COMMENT '下单金额'
)COMMENT '每月用户支付金额排行表';
#每月用户下单金额排行榜
DROP TABLE IF EXISTS ads_user_order_amount_top10;
CREATE TABLE ads_user_order_amount_top10
(
user_name VARCHAR(255) COMMENT '用户名',
order_amount DECIMAL(20,2) COMMENT '下单金额'
)
COMMENT '每月用户下单金额排行榜' ;
#每月商品差评排行榜
DROP TABLE IF EXISTS ads_sku_badcomment_top10;
CREATE TABLE ads_sku_badcomment_top10
(sku_name VARCHAR(255) COMMENT '商品sku名称',
bad_cnt BIGINT COMMENT '差评数量'
)COMMENT '每月商品差评排行榜';
#每月商品好评排行榜
DROP TABLE IF EXISTS ads_sku_goodcomment_top10;
CREATE TABLE ads_sku_goodcomment_top10
(sku_name VARCHAR(255) COMMENT '商品sku名称',
good_cnt BIGINT COMMENT '好评数量'
)COMMENT '每月商品好评排行榜';
#每月用户给差评排行榜
DROP TABLE IF EXISTS ads_user_badcomment_top10;
CREATE TABLE ads_user_badcomment_top10
(user_name VARCHAR(255) COMMENT '用户名称',
bad_cnt BIGINT COMMENT '差评数量'
)COMMENT '每月用户给差评排行榜';
3.九个sh文件传到/duoduo文件夹中
4.赋予九个sh文件可执行权限
bash
chmod 777 ./*sh

5.job文件构建
bash
#step1.job
type=command
command=/duoduo/mysql_to_hdfs.sh first ${dt}
#step2.job
type=command
command=/duoduo/create.sh
#step3.job
type=command
dependencies=step1,step2
command=/duoduo/ods.sh first ${dt}
#step4.job
type=command
dependencies=step3
command=/duoduo/dwd.sh
#step5.job
type=command
dependencies=step4
command=/duoduo/ods_to_dwd.sh first ${dt}
#step6.job
type=command
dependencies=step5
command=/duoduo/dws.sh ${dt}
#step7.job
type=command
dependencies=step6
command=/duoduo/dwt.sh ${dt}
#step8.job
type=command
dependencies=step7
command=/duoduo/ads.sh
#step9.job
type=command
dependencies=step8
command=/duoduo/ads_to_mysql.sh
6.输入参数,运行脚本
输入的参数 dt 的值 2025-08-11 必须加单引号 '2025-08-11'
