日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Azkaban任务调度(使用带有依赖的任务调度)【mapreduce数据清洗,数据入hive库,kylin预编译、数据分析】

發布時間:2024/9/27 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Azkaban任务调度(使用带有依赖的任务调度)【mapreduce数据清洗,数据入hive库,kylin预编译、数据分析】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 Azkaban任務調度管理

1.1 執行任務的腳本編寫和說明

在做任務調度的過程中,要編寫相應的腳本。

-rwxrwxrwx 1 root root 809 612 19:52 auto-exec-1-mr.sh -rwxrwxrwx 1 root root 975 612 19:53 auto-exec-2-load-logger-data.sh -rwxrwxrwx 1 root root 1459 612 19:53 auto-exec-3-kylin-build.sh -rwxrwxrwx 1 root root 446 616 14:34 auto-exec-4-analyze.sh -rwxrwxrwx 1 root root 110 612 19:54 auto-exec-5-sqoop-mysql.sh -rwxrwxrwx 1 root root 313 616 14:55 auto-exec-6-pv-uv.sh

然后讓這些腳本具有可執行權限:

[root@bigdata1 logger-handler]# pwd /home/bigdata/workspace/logger-handler [root@bigdata1 logger-handler]# chmod +x *.sh

1.1.1 auto-exec-1-mr.sh

該腳本主要用于執行數據清洗應用 #!/bin/bash sync echo 3 > /proc/sys/vm/drop_cachesecho "步驟1:執行logger的mr數據清洗程序"yesterday=`date --date='1 days ago' +%y-%m-%d` #刪除mapreduce清洗文件夾(存儲上一天的那個文件夾)#yesterdayFolder=/output/nginx/$yesterday#判斷上一天的這個文件夾是否存在 hdfs dfs -test -e /output/nginx/$yesterdayif [ $? -eq 0 ] thenecho "存在上一天這個文件夾"hdfs dfs -rm -r /output/nginx/$yesterday else#字符串中帶有變量時,這里的引號必須是雙引號echo "不存在$yesterday這個文件夾" fiecho "開始進行日志文件的mapreduce的清洗程序" cd /home/bigdata/workspace/logger-handler hadoop jar bigdata-logger-mr-1.0.0-SNAPSHOT-jar-with-dependencies.jar com.youx.bigdata.logger.driver.loggerRunner

1.1.2 auto-exec-2-load-logger-data.sh

該腳本主要用于執行將清洗的數據load到hive庫中的操作。 #!/bin/bash sync echo 3 > /proc/sys/vm/drop_cachesecho "步驟2:執行hive命令load數據到hive中"#如果時間定義成+%Y-%m-%d 則時間變成了2018-05-24了 yesterday=`date --date='1 days ago' +%y-%m-%d` echo $yesterday#定義變量 str1="part-r-"#獲取到hdfs中中文件列表,awk '{print $8}'獲取到第八列 for hdfsFile in `hdfs dfs -ls /output/nginx/$yesterday | awk '{print $8}'` doecho $hdfsFileresult=$(echo $hdfsFile | grep "${str1}")if [[ "$result" != "" ]]then#表示包含這個part-r-這類前綴的文件的,然后開始做數據導入操作。#使用hive -e的方式執行hive命令#要注意的是,當執行過一遍之loaddata后,原來放置mapreduce處理結果位置的這個數據就沒了。hive -e "use nginx_log;load data inpath 'hdfs://bigdata1:9000$hdfsFile' into table nginx_log_info;"else#表示不包含這個文件的continuefi done#hive -e " #use nginx_log;"

1.1.3 auto-exec-3-kylin-build.sh

該腳本主要用于讓kylin自動預編譯。

#!/bin/bash sync echo 3 > /proc/sys/vm/drop_cachesecho "步驟3:kylin-build" ################################################################################# #腳本功能:在數據被load到hive之后,使用kylin進行Build,增量更新kylin cube ##################################################################################cubeName cube名稱 #endTime 執行build cube的結束時間(命令傳給Kylin的kylinEndTime = readEndTime + (8小時,轉化為毫秒))。 # 只需要給kylin傳入build cube的結束時間即可。 #buildType BUILD構建cube操作(還有Refresh、Merge等操作,增量構建為BUILD)#endTime=`date "+%Y-%m-%d 00:00:00"` endTime=`date +%Y-%m-%d -d "+1days"` echo "$endTime" endTimeTimeStamp=`date -d "$endTime" +%s` echo $endTimeTimeStamp#將時間戳編程毫秒值 endTimeTimeStampMs=$(($endTimeTimeStamp * 1000)) echo $endTimeTimeStampMscubeName=logger_cube#curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "startTime"}' curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "endTime":'$endTimeTimeStampMs', "buildType": "BUILD"}' http://bigdata1:7070/kylin/api/cubes/logger_cat/rebuild #curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "startTime": 820454400000, "endTime": 821318400000, "buildType": "BUILD"}' http://localhost:7070/kylin/api/cubes/kylin_sales/build

1.1.4 auto-exec-4-analyze.sh

該腳本主要用于執行分析url訪問次數,url平均訪問時間

#!/bin/bash sync echo 3 > /proc/sys/vm/drop_caches#echo "步驟4:執行分析程序"#echo "休眠10秒" #sleep 10s#echo "休眠1分鐘" #sleep 1m#echo "休眠1小時" #sleep 1hecho "休眠2個小時,開始" sleep 120m echo "休眠2個小時,結束"cd /home/bigdata/workspace/logger-handler #執行分析程序 hadoop jar bigdata-logger-kylin-1.0.0-SNAPSHOT-jar-with-dependencies.jar com.youx.bigdata.logger.kylin.LoggerKylinAnalyze

1.1.5 auto-exec-5-sqoop-mysql.sh

該腳本暫時未做功能

1.1.6 auto-exec-6-pv-uv.sh

該腳本主要用于調用執行分析程序pv,uv的程序。 #!bin/bash sync echo 3 > /proc/sys/vm/drop_cachesecho "休眠140分鐘,開始" sleep 140m echo "休眠140分鐘,結束"#執行分析程序 cd /home/bigdata/workspace/logger-handler hadoop jar bigdata-operation-info-1.0.0-SNAPSHOT-jar-with-dependencies.jar com.youx.bigdata.logger.analyze.OperationInfoAnalyze

1.2 Job任務編寫

Azkaban的任務腳本是以.job結尾的文件。

1.2.1 auto-exec-1-mr.job

具體內容是:

#auto-exec-1-mr.job type=command command=sh /home/bigdata/workspace/logger-handler/auto-exec-1-mr.sh

說明:
通過上面的寫法,通過命令的方式執行job,其中命令是:

command=sh /home/bigdata/workspace/logger-handler/auto-exec-1-mr.sh

1.2.2 auto-exec-2-load-logger-data.job

下面的job主要的作用是將數據清洗的結果load到hive倉庫中。 #auto-exec-2-load-logger-data.job type=command dependencies=auto-exec-1-mr command=sh /home/bigdata/workspace/logger-handler/auto-exec-2-load-logger-data.sh 上面增加了一個關鍵字:dependencies,表示這個任務依賴任務auto-exec-1-mr,只有當auto-exec-1-mr任務執行完畢之后才會進行后續操作。

1.2.3 auto-exec-3-kylin-build.job

執行kylin的build任務。 #auto-exec-3-kylin-build.job type=command dependencies=auto-exec-2-load-logger-data command=sh /home/bigdata/workspace/logger-handler/auto-exec-3-kylin-build.sh

1.2.4 auto-exec-4-analyze.job

執行url訪問統計和訪問量統計的任務

#auto-exec-4-analyze.job type=command dependencies=auto-exec-3-kylin-build command=sh /home/bigdata/workspace/logger-handler/auto-exec-4-analyze.sh

1.2.5 auto-exec-5-sqoop-mysql.job

執行將hive中數據導入到mysql中的操作。

1.2.6 auto-exec-6-pv-uv.job

執行pv,uv分析任務 #auto-exec-6-pv-uv.job type=command dependencies=auto-exec-5-sqoop-mysql command=sh /home/bigdata/workspace/logger-handler/auto-exec-6-pv-uv.sh

1.2.7 統一壓縮job到zip包

Azkaban的執行需要一個壓縮包,所以需要將上面編寫的job統一壓縮到一個zip中。效果圖下:

1.3 項目創建/上傳任務包/配置任務調度

當job都編寫完成之后,開始創建azkaban的任務調度的項目,并上傳任務執行包。
創建項目。
訪問:https://bigdata1:8443/index,輸入用戶名/密碼: admin / admin之后進入azkaban界面。

創建項目:
點擊上面的”Create Project”

點擊”Create Project”,進入一下界面:

點擊“upload”

點擊”選擇文件”


點擊Upload按鈕,進入以下界面:

點擊”Execute Flow”,進入以下界面:

點擊Schedule,進入以下界面:


點擊schddule,任務配置完成

最終進入以下界面:

總結

以上是生活随笔為你收集整理的Azkaban任务调度(使用带有依赖的任务调度)【mapreduce数据清洗,数据入hive库,kylin预编译、数据分析】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。