輔助系統-azkaban
azkaban(工作流排程器)
安裝部署
準備工作
Azkaban Web伺服器
azkaban-web-server-2.5.0.tar.gz
Azkaban執行伺服器
azkaban-executor-server-2.5.0.tar.gz
MySQL
目前azkaban只支援 mysql,需安裝mysql伺服器,本文件中預設已安裝好mysql伺服器,並建立了 root使用者,密碼 root.
下載地址:http://azkaban.github.io/downloads.html
安裝
將安裝檔案上傳到叢集,最好上傳到安裝 hive、sqoop的機器上,方便命令的執行
在當前使用者目錄下新建 azkabantools目錄,用於存放源安裝檔案.新建azkaban目錄,用於存放azkaban執行程式
azkaban web伺服器安裝
[[email protected] ~]$ tar -zxvf azkaban-web-server-2.5.0.tar.gz -C azkaban
將解壓後的azkaban-web-server-2.5.0重新命名 server
azkaban 執行服器安裝
[[email protected] ~]$ tar –zxvf azkaban-executor-server-2.5.0.tar.gz -C azkaban
將解壓後的azkaban-executor-server-2.5.0 重新命名 executor
azkaban指令碼匯入
[[email protected] ~]$ tar –zxvf azkaban-sql-script-2.5.0.tar.gz -C azkaban
將解壓後的mysql 指令碼,匯入到mysql中:
進入mysql
[[email protected] azkaban]$ mysql -uroot -proot;
mysql> create database azkaban;
mysql> use azkaban;
Database changed
mysql> source /home/hadoop/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
建立SSL配置
azkaban的web頁面用加密的https訪問,所以需要生成證書。
參考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
證書生成命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA
[[email protected] ~]$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA
執行此命令後,會提示輸入當前生成 keystor的密碼及相應資訊,輸入的密碼請勞記,資訊如下:
輸入keystore密碼: 六位密碼
再次輸入新密碼:六位密碼
您的名字與姓氏是什麼?
[Unknown]: 可空
您的組織單位名稱是什麼?
[Unknown]: 可空
您的組織名稱是什麼?
[Unknown]: 可空
您所在的城市或區域名稱是什麼?
[Unknown]: 可空
您所在的州或省份名稱是什麼?
[Unknown]: 可空
該單位的兩字母國家程式碼是什麼
[Unknown]: 可空
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正確嗎?
[否]: y
輸入<jetty>的主密碼
(如果和 keystore 密碼相同,按回車):
再次輸入新密碼:
完成上述工作後,將在當前目錄生成 keystore 證書檔案,將keystore 考貝到 azkaban web伺服器根目錄中.如:cp keystore azkaban/server
配置檔案
注:先配置好伺服器節點上的時區
- 先生成時區配置檔案Asia/Shanghai,用互動式命令 tzselect 即可
- 拷貝該時區檔案,覆蓋系統本地時區配置
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改web伺服器中azkaban.properties檔案
[[email protected] ~]$ cd apps/azkaban/server/conf/
[[email protected] ~]$ vi azkaban.properties
內容說明如下:
#Azkaban Personalization Settings
azkaban.name=Test #伺服器UI名稱,用於伺服器上方顯示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI顏色
azkaban.default.servlet.path=/index #
web.resource.dir=web/ #預設根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 #global配置檔案所在位置
azkaban.project.dir=projects #
database.type=mysql #資料庫型別
mysql.port=3306 #埠號
mysql.host=localhost #資料庫連線IP
mysql.database=azkaban #資料庫例項名
mysql.user=root #資料庫使用者名稱
mysql.password=root #資料庫密碼
mysql.numconnections=100 #最大連線數
# Velocity dev mode
velocity.dev.mode=false #Jetty伺服器屬性
jetty.maxThreads=25 #最大執行緒數
jetty.ssl.port=8443 #Jetty SSL埠
jetty.port=8081 #Jetty埠
jetty.keystore=keystore #SSL檔名
jetty.password=123456 #SSL檔案密碼
jetty.keypassword=123456 #Jetty主密碼 與 keystore檔案相同
jetty.truststore=keystore #SSL檔名
jetty.trustpassword=123456 #SSL檔案密碼
# 執行伺服器屬性
executor.port=12321 #執行伺服器埠
# 郵件設定
[email protected] #傳送郵箱
mail.host=smtp.163.com #傳送郵箱smtp地址
mail.user=xxxxxxxx #傳送郵件時顯示的名稱
mail.password=********** #郵箱密碼
[email protected] #任務失敗時傳送郵件的地址
[email protected] #任務成功時傳送郵件的地址
lockdown.create.projects=false #
cache.directory=cache #快取目錄
azkaban 執行伺服器executor配置
進入執行伺服器安裝目錄conf,修改azkaban.properties
[[email protected] ~]$ cd apps/azkaban/executor/conf/
vi azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai #時區
#Azkaban JobTypes 外掛配置
azkaban.jobtype.plugin.dir=plugins/jobtypes #jobtype 外掛所在位置
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
#資料庫設定
database.type=mysql #資料庫型別(目前只支援mysql)
mysql.port=3306 #資料庫埠號
mysql.host=192.168.20.200 #資料庫IP地址
mysql.database=azkaban #資料庫例項名
mysql.user=root #資料庫使用者名稱
mysql.password=root #資料庫密碼
mysql.numconnections=100 #最大連線數
#執行伺服器配置
executor.maxThreads=50 #最大執行緒數
executor.port=12321 #埠號(如修改,請與web服務中一致)
executor.flow.threads=30 #執行緒數
進入azkaban web伺服器conf目錄,修改azkaban-users.xml使用者配置
vi 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,metrics" />---待新增
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
啟動
web伺服器
在azkaban web伺服器目錄下執行啟動命令
bin/azkaban-web-start.sh
注:在web伺服器根目錄執行
或者啟動到後臺
nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &
啟動azkaban後報錯資訊為:
Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.
解決方法:
請修改檔案azkaban\azkaban-web-2.5.0\bin\azkaban-web-start.sh
將檔案中的 AZKABAN_OPTS="-Xmx4G" 修改為 AZKABAN_OPTS="-Xmx2G"
設定的大小按照機器的儲存而定,如果設定太大可能無法啟動,設定太小會記憶體溢位
否則啟動報錯
執行伺服器
在執行伺服器目錄下執行啟動命令
bin/azkaban-executor-start.sh
注:只能要執行伺服器根目錄執行
啟動完成後,在瀏覽器(建議使用谷歌瀏覽器)中輸入https://伺服器IP地址:8443 ,即可訪問azkaban服務了.在登入中輸入剛才新的戶用名及密碼,點選 login.