idmp计算任务shell脚本创建路径全过程

idmp计算任务线上部署思路全过程

1.预处理
a.准备geohash地理位置字典(很长时间设置一遍)
b.id-mapping用户的唯一标识是每天都要去做的!

--在hdfs中创建地区字典文件夹
hdfs dfs -mkdir -p /doit12/dicts/area_dicts/
--将字典文件上传
hdfs dfs -put /root/geo_dict.parquet /doit12/dicts/area_dicts/
--在hdfs中创建第一日字典文件夹(哪怕是空的)
hdfs dfs -mkdir -p /doit12/dicts/idmp/2020-01-31/
hdfs dfs -mkdir -p /doit12/dicts/idmp/2020-02-01/
hdfs dfs -mkdir -p /doit12/dicts/idmp/2020-02-02/
--将字典文件上传
hdfs dfs -put /root/idmp01.parquet /doit12/dicts/idmp/2020-01-31/
hdfs dfs -put /root/idmp01.parquet /doit12/dicts/idmp/2020-02-01/
hdfs dfs -put /root/idmp01.parquet /doit12/dicts/idmp/2020-02-02/

--在hdfs中创建文三个渠道日志文件夹
hdfs dfs -mkdir -p /doit12/logdata/applog/2020-02-01
hdfs dfs -mkdir -p /doit12/logdata/applog/2020-02-02
hdfs dfs -mkdir -p /doit12/logdata/applog/2020-02-03
hdfs dfs -mkdir -p /doit12/logdata/applog/2020-02-04

hdfs dfs -mkdir -p /doit12/logdata/weblog/2020-02-01
hdfs dfs -mkdir -p /doit12/logdata/weblog/2020-02-02
hdfs dfs -mkdir -p /doit12/logdata/weblog/2020-02-03
hdfs dfs -mkdir -p /doit12/logdata/weblog/2020-02-04

hdfs dfs -mkdir -p /doit12/logdata/wxlog/2020-02-01
hdfs dfs -mkdir -p /doit12/logdata/wxlog/2020-02-02
hdfs dfs -mkdir -p /doit12/logdata/wxlog/2020-02-03
hdfs dfs -mkdir -p /doit12/logdata/wxlog/2020-02-04


--将日志文件上传
cd /root/01; hdfs dfs -put ./* /doit12/logdata/applog/2020-02-01
cd /root/02; hdfs dfs -put ./* /doit12/logdata/applog/2020-02-02
cd /root/03; hdfs dfs -put ./* /doit12/logdata/applog/2020-02-03


cd /root/02; hdfs dfs -put ./* /doit12/logdata/weblog/2020-02-01
cd /root/02; hdfs dfs -put ./* /doit12/logdata/weblog/2020-02-02
cd /root/02; hdfs dfs -put ./* /doit12/logdata/weblog/2020-02-03

cd /root/03; hdfs dfs -put ./* /doit12/logdata/wxlog/2020-02-01
cd /root/03; hdfs dfs -put ./* /doit12/logdata/wxlog/2020-02-02
cd /root/03; hdfs dfs -put ./* /doit12/logdata/wxlog/2020-02-03

最终脚本:

#!/bin/bash

############################################
#
#   author: hunter.d
#   date  : 2020-02-01
#   desc  : idmp计算任务执行脚本
#
############################################  


# 判断脚本是否传入了指定的数据日期
if [ $# -gt 1 ]
then
DATA_DAY=$1
OLD_IDMP_DAY=$2
else
#获取当前时间前一天的日期,必须是大Y,然后+后面没有空格!!!!
#date +'%Y-%m-%d'
#你要把一个命令赋值给一个变量,要用到飘``,你想打印一下看一下这个变量的值是echo ${data_day}
#shell中引用变量用${}
#获取当前一天的日期作为数据处理的日期
DATA_DAY=`date -d'-1 day' +'%Y-%m-%d'`
#获取当前两天的日期作为idmpde的目录日期
OLD_IDMP_DAY=`date -d'-2 day' +'%Y-%m-%d'`
fi

#spark的环境配置路径
export SPARK_HOME=/usr/apps/spark-2.3.3-bin-hadoop2.7/

#
#--master yarn\ 在yarn上执行
#--deploy-mode cluster\ 调配模式为集群
#--num-executors 3 \ 有3台机器线程同时执行
#--executor-memory 1 \用1g去执行
#--executor-cores 1 \用1核去执行
#--class cn.doitedu.dw.idmp.LogDataIdmpV2 \你要运行的类的名字reference(全类名)
#下一个说明是jar包的路径 
#第一个参数是app日志存在的hdfs路径
#第二个参数是web日志存在的hdfs路径
#第三个参数是wx日志存在的hdfs路径
#第四个参数是上一日的idmp映射字典的hdfs路径 
#第五个参数是今天的输出hdfs路径

${SPARK_HOME}bin/spark-submit  \
--master yarn \
--deploy-mode cluster \
--num-executors 4 \
--executor-memory 1g \
--executor-cores 1 \
--class cn.doitedu.dw.idmp.LogDataIdmpV2  \
/root/dw.jar /doit12/logdata/applog/${DATA_DAY} /doit12/logdata/weblog/${DATA_DAY} /doit12/logdata/wxlog/${DATA_DAY} /doit12/dicts/idmp/${OLD_IDMP_DAY}/ /doit12/dicts/idmp/${DATA_DAY}/ yarn

if [ $? -ne 0 ]
then
echo '不好了.....出了点莫名其妙的问题.....'
else
echo 'idmping计算successfully completed!'
fi

–准备上一日的idmapping数据存放的目录
hdfs dfs -mkdir -p /doit12/dicts/idmp/2020-01-31/
–将上一日的字典传入该目录
hdfs dfs -put /root/part.parquet /doit12/dicts/idmp/2020-01-31/

–将预处理工程进行参数化改造并打成jar包,并上传到服务器的/root目录下

–开发idmp计算任务shell脚本,并执行

–开发预处理计算任务shell脚本,并执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值