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-04hdfs 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-04hdfs 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-03cd /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-03cd /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}/ yarnif [ $? -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脚本,并执行

idmp计算任务shell脚本创建路径全过程相关推荐

  1. 【Android RTMP】NV21 图像旋转处理 ( 快速搭建 RTMP 服务器 Shell 脚本 | 创建 RTMP 服务器镜像 | 浏览器观看直播 | 前置 / 后置摄像头图像旋转效果展示 )

    文章目录 安卓直播推流专栏博客总结 一. 编写快速搭建 RTMP 服务器 Shell 脚本 二. RTMP 快速搭建方法 三.创建阿里云 RTMP 服务器镜像 四.浏览器查看直播内容 五.前置 / 后 ...

  2. Linux编程 20 shell编程(shell脚本创建,echo显示信息)

    一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1    使用多个命令 Shell ...

  3. shell脚本-创建用户的4种思路

    大家好,我是沐风,互联网老辛的助理,今天由我分享shell脚本之创建用户的4种思路. 这里只是抛砖引玉,希望你看完之后能够用更多种方法实现,集思广益,用老辛讲的 [穷举法]反复练习. 需求描述: 写一 ...

  4. Shell脚本编程实践——第3关:使用Shell脚本创建文件目录

    任务描述 本关任务:设计一个Shell程序,在/home目录下建立一个userdata目录,在userdata目录下再建立5个目录,即user1-user5,并设置每个目录的权限,其中其他用户的权限为 ...

  5. Linux下通过shell脚本创建账户

    当我们在linux平台上开发一些项目时,或者有一些项目是需要部署到linux系统上时,有时候会涉及到linux上的特定的账户,例如有一些项目需要运行在某些特定的账户下,或者有时候需要在全新的环境上搭建 ...

  6. linux查看命令本身shell脚本的路径

    使用type命令,输入: type tshark 可以查看tshark脚本的路径:tshark is /usr/local/bin/tshark 或使用which命令: which tshark 得出 ...

  7. vi新建一个shell脚本_如何在Vim中为Shell脚本创建自定义页眉模板

    在本文中,我们将向您展示一个简单的方法来为Vim编辑器中所有新创建的bash脚本配置一个自定义标题. 这意味着每次使用vi / vim编辑器打开一个新的.sh文件时,自定义标题将自动添加到文件中. 如 ...

  8. Linux中使用shell脚本创建用户

    Linux中shell脚本训练 • 执行users_create.sh userlist passlist • 建立userlist列表中的用户 • 设定userlist列表中的密码为passlist ...

  9. shell脚本创建hbase表

    create_hbase_table.sh #!/bin/bash #1,判断执行脚本时,是否输入正确的参数 [[ $# < 1 ]] && echo "请输入hbas ...

最新文章

  1. iphone照片永久删除怎么恢复_怎么恢复删除的照片?专业数据恢复软件轻松搞定...
  2. 《自然》杂志:关于人类未来的工作,有三个最紧迫的问题
  3. 饼图大小调整_别让这些细节毁了你的图表,饼图制作的三大准则和七大细节
  4. 深圳.NET俱乐部7月活动小结及照片
  5. 如何修复重编译Datapump工具expdp/impdp
  6. 天翼云从业认证(4.2)网站建设实战
  7. SAP Spartacus里的feature module
  8. 如何在Django模板中注入全局变量
  9. 比亚迪汉家族3月热销12359辆 汉EV单车销量破万
  10. 卷积神经网络——第一周 卷积神经网络基础——第二部分
  11. 原生html如何发送网络请求,原生JS向服务器发送GET请求
  12. Mysql面试常见题
  13. 2022爱分析· 汽车行业数字化厂商全景报告
  14. 软件反破解的几个思路
  15. iOS加速计和陀螺仪
  16. 程序员需要学会宏观看待问题
  17. 【算法】ACO蚂蚁寻路最短路径TSP问题-多篇文章总结
  18. oracle游标添加数据,Oracle使用游标更新数据
  19. Android通过MediaStore获取音乐文件信息的方法
  20. ORACLE 习题(一)

热门文章

  1. 接了个私活,甲方竟然让我教他写代码!
  2. 黑客黑掉15万台打印机,可打印任意文档
  3. 一个学校组织的计算机网络属于,计算机网络基础知识试题及答案
  4. nyoj325 zb的生日 DFS
  5. Enum 枚举小结 java **** 最爱那水货
  6. OpenCV+TensorFlow图片手写数字识别(附源码)
  7. 发送手机短信获取验证码功能
  8. DASCTF X CBCTF 2022九月挑战赛 WriteUp
  9. 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)
  10. 【车载以太网】【SOME/IP】(四)解读SOME/IP通信协议