小編給大家分享一下基于Azkaban協(xié)調(diào)時序任務(wù)執(zhí)行的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、蘇家屯網(wǎng)站維護、網(wǎng)站推廣。
在數(shù)據(jù)服務(wù)的業(yè)務(wù)場景中,很常見的業(yè)務(wù)流程就是日志文件經(jīng)過大數(shù)據(jù)分析,再向業(yè)務(wù)輸出結(jié)果數(shù)據(jù);在該過程中會有很多任務(wù)需要執(zhí)行,并且很難精準把握任務(wù)執(zhí)行的結(jié)束時間,但是又希望整個任務(wù)鏈盡快結(jié)束釋放資源。
大致執(zhí)行順序如下:
業(yè)務(wù)日志文件同步到HDFS文件系統(tǒng);
經(jīng)過Hadoop執(zhí)行分析計算過程;
結(jié)果數(shù)據(jù)在導(dǎo)入數(shù)倉進行存儲;
最終需要把數(shù)倉內(nèi)數(shù)據(jù)同步到業(yè)務(wù)庫;
這樣的流程不必業(yè)務(wù)中任務(wù)調(diào)度,時間基本是可預(yù)估的,只要把握留足任務(wù)間隔時間即可,大數(shù)據(jù)的任務(wù)鏈路通常需要一個結(jié)束直接啟動另一個,以此降低時間成本,初入數(shù)據(jù)服務(wù)公司時,就發(fā)生過因為同步任務(wù)執(zhí)行結(jié)束但是最后的個別CSV數(shù)據(jù)文件未生成結(jié)束的案例,導(dǎo)致近百萬的分析數(shù)據(jù)同步更新業(yè)務(wù)庫失敗。
Azkaban是由Linkedin公司推出的可以管理批量工作流任務(wù)的調(diào)度器,用于在一個工作流內(nèi)以一個特定的順序運行一組工作和流程。Azkaban使用job配置文件建立任務(wù)之間的依賴關(guān)系,并提供一個易于使用的web用戶界面維護和跟蹤你的工作流。
Azkaban特點和優(yōu)勢
提供功能清晰,簡單易用的 Web UI 界面;
作業(yè)配置簡單,任務(wù)作業(yè)依賴關(guān)系清晰;
提供可擴展的組件;
基于Java語言開發(fā),易于二次開發(fā);
相比較于Oozie配置工作流的過程是編寫大量的XML配置,并且其代碼復(fù)雜度比較高,不易于二次開發(fā),Azkaban則顯得輕量級,功能和用法相對簡單和容易使用。
Web服務(wù)
azkaban-web-server-2.5.0.tar.gz
執(zhí)行服務(wù)
azkaban-executor-server-2.5.0.tar.gz
SQL腳本
azkaban-sql-script-2.5.0.tar.gz
上傳上面三個安裝包,并解壓操作。
[root@hop01 azkaban]# pwd /opt/azkaban [root@hop01 azkaban]# tar -zxvf azkaban-web-server-2.5.0.tar.gz [root@hop01 azkaban]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz [root@hop01 azkaban]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz [root@hop01 azkaban]# mv azkaban-web-2.5.0/ server [root@hop01 azkaban]# mv azkaban-executor-2.5.0/ executor
[root@hop01 ~]# mysql -uroot -p123456 mysql> create database azkaban_test; mysql> use azkaban_test; mysql> source /opt/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
查看表
[root@hop01 opt]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA
生成文件:keystore
拷貝到AzkabanWeb服務(wù)器目錄下:
[root@hop01 opt]# mv keystore /opt/azkaban/server/
基礎(chǔ)配置
[root@hop01 conf]# pwd /opt/azkaban/server/conf [root@hop01 conf]# vim azkaban.properties
核心修改內(nèi)容:MySQL和Jetty。
default.timezone.id=Asia/Shanghai # Azkaban MySQL server properties. database.type=mysql mysql.port=3306 mysql.host=localhost mysql.database=azkaban_test mysql.user=root mysql.password=123456 mysql.numconnections=100 # Azkaban Jetty server properties. jetty.maxThreads=25 jetty.ssl.port=8443 jetty.port=8081 jetty.keystore=keystore jetty.password=123456 jetty.keypassword=123456 jetty.truststore=keystore jetty.trustpassword=123456
這里配置符合本地配置參數(shù)即可。
用戶配置
[root@hop01 conf]# vim azkaban-users.xml
增加一個管理員用戶:
<azkaban-users> <user username="admin" password="admin" roles="admin,metrics" /> </azkaban-users>
[root@hop01 conf]# pwd /opt/azkaban/executor/conf [root@hop01 conf]# vim azkaban.properties
核心修改內(nèi)容:MySQL和時區(qū)。
default.timezone.id=Asia/Shanghai # Azkaban MySQL server properties. database.type=mysql mysql.port=3306 mysql.host=localhost mysql.database=azkaban_test mysql.user=root mysql.password=123456 mysql.numconnections=100
Web服務(wù)
[root@hop01 bin]# pwd /opt/azkaban/server/bin [root@hop01 bin]# ll total 16 -rwxr-xr-x 1 root root 161 Apr 21 2014 azkaban-web-shutdown.sh -rwxr-xr-x 1 root root 1275 Apr 21 2014 azkaban-web-start.sh
這里分別是啟動和關(guān)閉的腳本。
[root@hop01 bin]# /opt/azkaban/server/bin/azkaban-web-start.sh
Executor服務(wù)
[root@hop01 bin]# /opt/azkaban/executor/bin/azkaban-executor-start.sh
啟動日志
兩個服務(wù)的關(guān)鍵尾行日志:
Azkaban Server running on ssl port 8443. Azkaban Executor Server started on port 12321
登錄界面
注意這里是基于https協(xié)議:
https://hop01:8443/
創(chuàng)建command類型job
[root@hop01 flow_01]# pwd /opt/azkaban/testJob/flow_01 [root@hop01 flow_01]# vim simple.job type=command command=echo 'mySimpleJob'
打成zip包
[root@hop01 flow_01]# zip -q -r simpleJob.zip simple.job
創(chuàng)建項目
上傳任務(wù)包
執(zhí)行任務(wù)
創(chuàng)建任務(wù)A
[root@hop01 flow_02]# vim simpleA.job type=command command=echo 'simplejobA'
創(chuàng)建任務(wù)B
[root@hop01 flow_02]# vim simpleB.job type=command dependencies=simpleA command=echo 'simplejobB'
打包任務(wù)
[root@hop01 flow_02]# zip -q -r simpleTwoJob.zip simpleA.job simpleB.job
同樣的操作方式,兩個任務(wù)放在zip包中,通過Web服務(wù)上傳,觀察執(zhí)行效果即可。
看完了這篇文章,相信你對“基于Azkaban協(xié)調(diào)時序任務(wù)執(zhí)行的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
當(dāng)前名稱:基于Azkaban協(xié)調(diào)時序任務(wù)執(zhí)行的示例分析
鏈接URL:http://www.chinadenli.net/article6/gepdig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站策劃、做網(wǎng)站、外貿(mào)建站、網(wǎng)站制作、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)