Azkaban 簡(jiǎn)單入門

Azkaban是由Linkedin開(kāi)源的一個(gè)批量工作流任務(wù)調(diào)度器昆雀。用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程。Azkaban定義了一種KV文件格式來(lái)建立任務(wù)之間的依賴關(guān)系,并提供一個(gè)易于使用的web用戶界面維護(hù)和跟蹤你的工作流井赌。

1. 安裝

準(zhǔn)備工作

azkaban-web-server-2.5.0.tar.gz
azkaban-executor-server-2.5.0.tar.gz
azkaban-sql-script-2.5.0.tar.gz

其中闸翅,azkaban-web-server-2.5.0.tar.gz是服務(wù)器,azkaban-executor-server-2.5.0.tar.gz是執(zhí)行服務(wù)器辜伟,azkaban-sql-script-2.5.0.tar.gz是執(zhí)行的sql腳本氓侧。

2. mysql創(chuàng)建表

分別把他們解壓安裝后。我們還需要在mysql中創(chuàng)建數(shù)據(jù)庫(kù)导狡,然后運(yùn)行azkaban提供的sql腳本來(lái)創(chuàng)建azkaban所需要的表约巷。

mysql -uroot -p
mysql> create database azkaban;
mysql> use azkaban;
Database changed
mysql> source /home/fantj/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
mysql> show tables;
+------------------------+
| Tables_in_azkaban      |
+------------------------+
| active_executing_flows |
| active_sla             |
| execution_flows        |
| execution_jobs         |
| execution_logs         |
| project_events         |
| project_files          |
| project_flows          |
| project_permissions    |
| project_properties     |
| project_versions       |
| projects               |
| properties             |
| schedules              |
| triggers               |
+------------------------+
15 rows in set (0.00 sec)

3. 創(chuàng)建SSL配置

1. 執(zhí)行命令keytool -keystore keystore -alias jetty -genkey -keyalg RSA會(huì)在當(dāng)前目錄生成一個(gè)keystore證書(shū)文件,當(dāng)然執(zhí)行該命令需要你填寫(xiě)一些信息旱捧,比如你的姓名+工作單位等独郎。按照提示填寫(xiě)即可。
2. 然后把 keystore 考貝到 azkaban web服務(wù)器bin目錄中

4. 配置時(shí)區(qū)

[root@s166 azkaban]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
 1) Afghanistan       18) Israel            35) Palestine
 2) Armenia       19) Japan         36) Philippines
 3) Azerbaijan        20) Jordan            37) Qatar
 4) Bahrain       21) Kazakhstan        38) Russia
 5) Bangladesh        22) Korea (North)     39) Saudi Arabia
 6) Bhutan        23) Korea (South)     40) Singapore
 7) Brunei        24) Kuwait            41) Sri Lanka
 8) Cambodia          25) Kyrgyzstan        42) Syria
 9) China         26) Laos          43) Taiwan
10) Cyprus        27) Lebanon           44) Tajikistan
11) East Timor        28) Macau         45) Thailand
12) Georgia       29) Malaysia          46) Turkmenistan
13) Hong Kong         30) Mongolia          47) United Arab Emirates
14) India         31) Myanmar (Burma)       48) Uzbekistan
15) Indonesia         32) Nepal         49) Vietnam
16) Iran          33) Oman          50) Yemen
17) Iraq          34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

    China
    Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:  Sat Jul 28 18:29:58 CST 2018.
Universal Time is now:  Sat Jul 28 10:29:58 UTC 2018.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
    TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai

這個(gè)配置需要給集群的每個(gè)主機(jī)設(shè)置枚赡,因?yàn)槿蝿?wù)調(diào)度離不開(kāi)準(zhǔn)確的時(shí)間氓癌。我們也可以直接把相關(guān)文件拷貝到別的主機(jī)作覆蓋。

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@s166 azkaban]# scp /usr/share/zoneinfo/Asia/Shanghai  root@s168:/etc/localtime
Shanghai                                                                                              100%  388   500.8KB/s   00:00    
[root@s166 azkaban]# scp /usr/share/zoneinfo/Asia/Shanghai  root@s169:/etc/localtime
Shanghai   

5. 修改配置

5.1 修改服務(wù)端配置
5.1.1 /webserver/conf目錄下的azkaban.properties(我之前將服務(wù)端的解壓文件改名為webserver)
#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=jiaoroot
jetty.keypassword=jiaoroot
jetty.truststore=keystore
jetty.trustpassword=jiaoroot

# Azkaban Executor settings
executor.port=12321

# mail settings
mail.sender=844072586@qq.com
mail.host=smtp.qq.com
job.failure.email=
job.success.email=

lockdown.create.projects=false

cache.directory=cache

主要修改時(shí)區(qū)+mysql配置+SSL密碼和文件路徑+郵箱配置贫橙。不貼注釋了顽铸,一看就懂。

5.1.2. 修改/conf/目錄下的azkaban-users.xml
<azkaban-users>
        <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
        <user username="metrics" password="metrics" roles="metrics"/>
        <user username="admin" password="admin" roles="admin">
        
        <role name="admin" permissions="ADMIN" />
        <role name="metrics" permissions="METRICS"/>
</azkaban-users>
5.2 執(zhí)行服務(wù)器配置

修改/executor/conf目錄下的azkaban.properties

#Azkaban
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

6. 執(zhí)行

6.1 啟動(dòng)web服務(wù)器

webserver/bin目錄下料皇,執(zhí)行[root@s166 webserver]# nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &啟動(dòng)服務(wù)谓松。

小技巧:先別記著用nohup執(zhí)行星压,不然報(bào)錯(cuò)不能夠及時(shí)的反饋,應(yīng)該在嘗試執(zhí)行通過(guò)后再去嘗試用nohup來(lái)執(zhí)行鬼譬。[root@s166 executor]# bin/azkaban-executor-start.sh

我大概見(jiàn)到的一些報(bào)錯(cuò)是:

  1. /bin/目錄下沒(méi)有keystore文件------需要把它復(fù)制到bin下
  2. 找不到各種配置文件----- 我在配置文件中將這些文件配置成絕對(duì)路徑娜膘。
6.2 啟動(dòng)執(zhí)行服務(wù)器

/executor/bin/目錄下執(zhí)行[root@s166 webserver]# bin/azkaban-web-start.sh

6.3 瀏覽器訪問(wèn)https://s166:8443/

如果你看到這樣的畫(huà)面,證明你錯(cuò)了优质,沒(méi)有在根目錄下執(zhí)行竣贪,而是習(xí)慣性的在bin目錄下執(zhí)行啟動(dòng)文件,所以它的很多css都加載不到巩螃。

這才是正確的打開(kāi)方式

用設(shè)置的賬號(hào)密碼登錄演怎。


7. Azkaban實(shí)戰(zhàn)

7.1 單一job示例
  1. 創(chuàng)建job描述文件
vim command.job

#command.job
type=command                                                    
command=echo fantj666
  1. 將job資源文件打包成zip文件
    zip command.job

  2. 通過(guò)azkaban的web管理平臺(tái)創(chuàng)建project并上傳job壓縮包
    首先創(chuàng)建project


    創(chuàng)建工程

    上傳文件

    執(zhí)行日志
7.2 多job工作流flow
  1. 創(chuàng)建有依賴關(guān)系的多個(gè)job描述
    第一個(gè)job:foo.job
# foo.job
type=command
command=echo foo

第二個(gè)job:bar.job依賴foo.job

# bar.job
type=command
dependencies=foo
command=echo bar
  1. 將所有job資源文件打到一個(gè)zip包中
  2. 上傳zip包并啟動(dòng)
  3. 查看job log


    job list

    foo job log

    bar job log
7.3 操作hadoop
  1. vim fs.job
# fs.job
type=command
command=/home/fantj/hadoop/bin/hadoop fs -lsr /
  1. 打包成zip上傳
  2. 啟動(dòng)job并查看lob


7.4 操作hive

hive腳本test.sql

use default;
drop table aztest;
create table aztest(id int,name string,age int) row format delimited fields terminated by ',' ;
load data inpath '/aztest/hiveinput' into table aztest;
create table azres as select * from aztest;
insert overwrite directory '/aztest/hiveoutput' select count(1) from aztest; 

job文件hivef.job

# hivef.job
type=command
command=/home/fantj/hive/bin/hive -f 'test.sql'

打zip包-上傳-執(zhí)行-查log

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市避乏,隨后出現(xiàn)的幾起案子爷耀,更是在濱河造成了極大的恐慌,老刑警劉巖拍皮,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歹叮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡铆帽,警方通過(guò)查閱死者的電腦和手機(jī)咆耿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)爹橱,“玉大人萨螺,你說(shuō)我怎么就攤上這事±⑶” “怎么了屑迂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)冯键。 經(jīng)常有香客問(wèn)我惹盼,道長(zhǎng),這世上最難降的妖魔是什么惫确? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任手报,我火速辦了婚禮,結(jié)果婚禮上改化,老公的妹妹穿的比我還像新娘掩蛤。我一直安慰自己,他們只是感情好陈肛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布揍鸟。 她就那樣靜靜地躺著,像睡著了一般句旱。 火紅的嫁衣襯著肌膚如雪阳藻。 梳的紋絲不亂的頭發(fā)上晰奖,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音腥泥,去河邊找鬼匾南。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蛔外,可吹牛的內(nèi)容都是我干的蛆楞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼夹厌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼豹爹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起矛纹,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤臂聋,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后崖技,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钟哥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年迎献,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腻贰。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吁恍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出播演,到底是詐尸還是另有隱情冀瓦,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布写烤,位于F島的核電站翼闽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏洲炊。R本人自食惡果不足惜感局,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暂衡。 院中可真熱鬧询微,春花似錦、人聲如沸狂巢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)唧领。三九已至藻雌,卻和暖如春雌续,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹦疑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工西雀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歉摧。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓艇肴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親叁温。 傳聞我的和親對(duì)象是個(gè)殘疾皇子再悼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 準(zhǔn)備工作 Azkaban Web服務(wù)器 azkaban-web-server-2.5.0.tar.gz Azkab...
    小馬哥的程序之路閱讀 3,615評(píng)論 0 3
  • 安裝azkaban時(shí)參考了網(wǎng)上的資料,結(jié)果沒(méi)一篇能安裝成功的膝但。調(diào)試半天才成功冲九,大部分的問(wèn)題是資料版本太老,gith...
    天夭夭閱讀 4,359評(píng)論 2 0
  • 一跟束、下載 從github上下載莺奸,azkaban , 需要注意的是冀宴,azkaban官方只是提供了源碼灭贷,需要我們自己編...
    隔壁老王的隔壁啊閱讀 1,753評(píng)論 0 2
  • Azkaban安裝 1 Azkaban介紹 Azkaban是由Linkedin開(kāi)源的一個(gè)批量工作流任務(wù)調(diào)度器。用于...
    yanzhelee閱讀 921評(píng)論 0 0
  • 你給別人的一切略贮,都會(huì)回到你身上甚疟! 不論你傷害誰(shuí),就長(zhǎng)遠(yuǎn)來(lái)看逃延,你都是傷害到你自己览妖,或許你現(xiàn)在并沒(méi)有覺(jué)知,但它一定會(huì)繞...
    毅自由閱讀 489評(píng)論 0 3