yum install git -y
git clone https://github.com/azkaban/azkaban.git cd azkaban; ./gradlew build installDist cd azkaban-solo-server/build/install/azkaban-solo-server; bin/start-solo.sh # open http://localhost:8081/ bin/shutdown-solo.sh # 固然,這個也須要你的網絡環境比較好,若是是公司網絡限制比較多的話,可能出現沒法編譯的狀況,好比沒法訪問gradle的plugin站點等。
方法1:下載azkaban代碼,編譯。java
git clone https://github.com/azkaban/azkaban.git or git clone https://gitee.com/mirrors/azkaban.git cd azkaban; ./gradlew build installDist cd azkaban-db; ../gradlew build installDist # 固然,這個也須要你的網絡環境比較好,若是是公司網絡限制比較多的話,可能出現沒法編譯的狀況,好比沒法訪問gradle的plugin站點等。
方法2:直接下載別人編譯好的版本進行安裝python
https://pan.baidu.com/s/1tq8FLME2zHR539sTAZUw2A | zkl9mysql
這個共享包裏是基於2.5.0的版本,下載下來三個文件:git
azkaban-executor-2.5.0.zip
azkaban-web-2.5.0.zip
azkaban-sql-script-2.5.0.tar.gz
github
azkaban官方建議使用mysql做爲後端的數據存儲db,使用以下命令建立azkaban的數據庫:web
mysql -uroot -p123456; mysql> CREATE DATABASE azkaban; CREATE USER 'azkaban'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'azkaban'@'192.168.56.3' IDENTIFIED BY '123456'; flush privileges; source /usr/local/azkaban/azkaban-sql/create-all-sql-2.5.0.sql;
keytool -keystore keystore -alias jetty -genkey -keyalg RSA # (記住密碼) cp keystore /usr/local/azkaban/azkaban-web #將當前目錄生成 keystore證書文件拷貝到web服務器根目錄中
tzselect #使用交互式命令設置時區(Asia/Shanghai, 選北京就是上海) 輸入密鑰庫口令: 密鑰庫口令過短 - 至少必須爲 6 個字符 輸入密鑰庫口令: 再次輸入新口令: 您的名字與姓氏是什麼? [Unknown]: cao 您的組織單位名稱是什麼? [Unknown]: parllay 您的組織名稱是什麼? [Unknown]: fenghuotai 您所在的城市或區域名稱是什麼? [Unknown]: beijing 您所在的省/市/自治區名稱是什麼? [Unknown]: beijing 該單位的雙字母國家/地區代碼是什麼? [Unknown]: CN CN=cao, OU=parllay, O=fenghuotai, L=beijing, ST=beijing, C=CN是否正確?[否]: Y
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #拷貝該時區文件,覆蓋系統本地時區配置
web服務器配置以下:sql
vim azkaban.properties
shell
#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=192.168.33.205 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=111111 jetty.keypassword=111111 jetty.truststore=keystore jetty.trustpassword=111111 # Azkaban Executor settings executor.port=12321 # mail settings # 發送郵箱 mail.sender= #發送郵箱smtp地址 mail.host= # 任務失敗時發送郵件的地址 job.failure.email= # 任務成功時發送郵件的地址 job.success.email= lockdown.create.projects=false cache.directory=cache
用戶配置以下:數據庫
vim azkaban-users.xml
vim
<azkaban-users> <user username="azkaban" password="azkaban" roles="admin" groups="azkaban"/> <user username="metrics" password="metrics" roles="metrics"/> <!-- 設置登陸 https://192.168.56.3:8443的帳號和密碼 --> <user username="admin" password="admin" roles="admin,metrics"/> <role name="admin" permissions="ADMIN" /> <role name="metrics" permissions="METRICS"/> </azkaban-users>
vim 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=192.168.33.205 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
azkaban web服務器的啓動與關閉, 注意: 只能在web服務器根目錄運行
bin/azkaban-web-start.sh bin/azkaban-web-shutdown.sh # 若是是正式環境能夠採用nohup的方式手動啓動
azkaban executor服務器的啓動與關閉, 注意: 只能在執行服務器根目錄運行
bin/azkaban-executor-start.sh bin/azkaban-executor-shutdown.sh # 若是是正式環境能夠採用nohup的方式手動啓動
網址示例: https://192.168.56.3:8443
Azkaba內置的任務類型支持 command、java, 咱們能夠安裝python、datax、sqoop等工具,進行擴展。
簡單示例, 操做步驟:
vim command.job
# command.job type=command command=echo 'hello'
vim foo.job
# foo.job type=command command=echo foo
# bar.job type=command dependencies=foo command=echo bar
vim fs.job
# fs.job type=command command=hadoop fs -mkdir /azkaban
vim mrwc.job
# mrwc.job type=command # 也能夠將jar包放在mrwc.job的同級目錄下, 與其一塊兒壓縮爲zip文件 command=hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input/a.txt /input/output
vim hivef.job
vim test.sql
# hivef.job type=command command=hive -f 'test.sql'
create database test_db;
異常:java.io.FileNotFoundException:
conf/global.properties
(沒有那個文件或目錄)
解決方法:vim azkaban.properties
修改 executor.global.properties
爲絕對路徑
異常:
java.lang.RuntimeException:java.lang.reflect.InvocationTargetException
解決方法:vim azkaban.properties
修改 user.manager.xml.file
爲絕對路徑