azkaban流程调度

1.搜集数据

upload.job

#upload.job
type=command
command=bash upload.sh

upload.sh

#!/bin/bash

#set java env
export JAVA_HOME=/soft/jdk/
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

#set hadoop env
export HADOOP_HOME=/soft/hadoop/
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

#日志文件存放的目录
log_src_dir=/home/centos/logs/log/ 

#待上传文件存放的目录
log_toupload_dir=/home/centos/logs/toupload/

#得到昨天的日期
day_01=`date -d'-1 day' +%Y-%m-%d`
#得到昨天的年份
syear=`date --date=$day_01 +%Y`
#得到昨天的月份
smonth=`date --date=$day_01 +%m`
#得到昨天的日份
sday=`date --date=$day_01 +%d`

#日志文件上传到hdfs的根路径
hdfs_root_dir=/data/clickLog/$syear/$smonth/$sday

#创建hdfs上的路径文件夹
hadoop fs -mkdir -p $hdfs_root_dir

#读取日志文件的目录,判断是否有需要上传的文件
ls $log_src_dir | while read fileName
do
    if [[ "$fileName" == access.log ]]; then
    # if [ "access.log" = "$fileName" ];then
        date=`date +%Y_%m_%d_%H_%M_%S`
        #将文件移动到待上传目录并重命名
        mv $log_src_dir$fileName $log_toupload_dir"xxxxx_click_log_$fileName"$date
        #将待上传的文件path写入一个列表文件willDoing
        echo $log_toupload_dir"xxxxx_click_log_$fileName"$date >> $log_toupload_dir"willDoing."$date
    fi

done

#找到列表文件willDoing
ls $log_toupload_dir | grep will |grep -v "_COPY_" | grep -v "_DONE_" | while read line
do
    #将待上传文件列表willDoing改名为willDoing_COPY_
    mv $log_toupload_dir$line $log_toupload_dir$line"_COPY_"
    #读列表文件willDoing_COPY_的内容(一个一个的待上传文件名)  ,此处的line 就是列表中的一个待上传文件的path
    cat $log_toupload_dir$line"_COPY_" |while read line
    do
        hadoop fs -put $line $hdfs_root_dir
    done    
    mv $log_toupload_dir$line"_COPY_"  $log_toupload_dir$line"_DONE_"
done

2.清洗数据

clean.job

# clean.job
type=command
dependencies=upload
command=bash clean.sh

clean.sh

#!/bin/bash

#set java env
export JAVA_HOME=/soft/jdk
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

#set hadoop env
export HADOOP_HOME=/soft/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

#获取昨天的日期
day_01=`date -d'-1 day' +%Y-%m-%d`
#获取昨天的年份
syear=`date --date=$day_01 +%Y`
#获取昨天的月份
smonth=`date --date=$day_01 +%m`
#获取昨天的日份
sday=`date --date=$day_01 +%d`

#日志在hdfs上的路径
log_hdfs_dir=/data/clickLog/$syear/$smonth/$sday
#mapreduce程序的入口路径
click_log_clean=clickLog.AccessLogDriver
#清洗后的数据路径
clean_dir=/cleaup/$syear/$smonth/$sday
#清洗后的数据路径不可存在(删除操作)
hadoop fs -rm -r -f $clean_dir
#运行mapreduce程序的jar文件(jar文件的位置;程序的入口路径;数据输入路径;数据输出路径)
hadoop jar /home/centos/hivedemo/mrclick.jar $click_log_clean $log_hdfs_dir $clean_dir

3.数据绑定到hive

hivesql.job

# hivesql.job
type=command
dependencies=clean
command=bash hivesql.sh

hivesql.sh

#!/bin/bash

#set java env
export JAVA_HOME=/soft/jdk
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

#set hadoop env
export HADOOP_HOME=/soft/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

#set hive env
export HIVE_HOME=/soft/hive
export PATH=${HIVE_HOME}/bin:$PATH

#获取昨天的日期
day_01=`date -d'-1 day' +%Y-%m-%d`
#获取昨天的年份
syear=`date --date=$day_01 +%Y`
#获取昨天的月份
smonth=`date --date=$day_01 +%m`
#获取昨天的日份
sday=`date --date=$day_01 +%d`

#清洗后的数据在hdfs上的路径
clean_dir=/cleaup/$syear/$smonth/$sday

#hive sql 导入数据到hive
HQL_origin="load data inpath '$clean_dir' into table mydb.accesslog"

#执行sql语句
hive -e  "$HQL_origin"

4.查询数据

ip.job

# ip.job
type=command
dependencies=hivesqljob
command=bash ip.sh

ip.sh

#!/bin/bash

#set java env
export JAVA_HOME=/soft/jdk
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

#set hadoop env
export HADOOP_HOME=/soft/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

 #set hive env
export HIVE_HOME=/soft/hive
export PATH=${HIVE_HOME}/bin:$PATH

#hive sql 从一张表查询出数据放到结果集表中
HQL_origin="insert into  mydb.upflow  select ip,sum(upflow) as sum from mydb.accesslog group by ip order by sum desc "

#执行sql语句
hive -e  "$HQL_origin"

5.导出到mysql

mysql.job

# mysql.job
type=command
dependencies=ipjob
command=bash mysql.sh

mysql.sh

#!/bin/bash

#set java env
export JAVA_HOME=/soft/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

#set hadoop env
export HADOOP_HOME=/soft/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

#set hive env
export HIVE_HOME=/soft/hive
export PATH=${HIVE_HOME}/bin:$PATH

#set sqoop env
export SQOOP_HOME=/soft/sqoop
export PATH=${SQOOP_HOME}/bin:$PATH

#sqoop语句 从hive导出到mysql(导出到mysql的表中从hive的路径文件下)
sqoop export --connect jdbc:mysql://s201:3306/userdb --username sqoop --password sqoop --table upflow --export-dir /user/hive/warehouse/mydb.db/upflow --input-fields-terminated-by ','

五个job有依赖关系

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,627评论 6 517
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,180评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 169,346评论 0 362
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,097评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,100评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,696评论 1 312
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,165评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,108评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,646评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,709评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,861评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,527评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,196评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,698评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,804评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,287评论 3 379
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,860评论 2 361

推荐阅读更多精彩内容

  • 前言 大数据处理技术应用: [x] 电信运营商 数据营销:房地产营销、运营商时代(汇聚用户行为) [x] 互联网用...
    MichaelFly阅读 4,427评论 0 16
  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 7,287评论 0 34
  • 我以为我们不曾相爱 原来你也爱过我 错过的岁月 才使我心酸
    持续多久阅读 164评论 0 0
  • 实验环境 操作系统:Ubuntu 16.04.1 LTS 在安装Swoole之前先确保系统是否安装了make和gc...
    小丑蛙很挑剔阅读 164评论 0 0
  • 第四十八節 仰望蒼穹 啊,沒錯,真的是雨神附身,自從來了塞爾加湖,這裏就一直淅淅瀝瀝的下著雨。 但,這並沒有影響到...
    梵清Lily阅读 179评论 0 1