Linux環境Azkaban安裝配置
1. 認識Azkaban
(1) Azkaban介紹
- 任務排程工具
- 官網:https://azkaban.github.io/
- Azkaban是一套簡單的任務排程服務,整體包括三部分webserver、dbserver、executorserver。
- Azkaban是linkin的開源專案,開發語言為Java。
- Azkaban是在LinkedIn上建立的批處理工作流作業排程程式,用於執行Hadoop作業。Azkaban通過作業依賴性解決訂單,並提供易於使用的Web使用者介面來維護和跟蹤工作流程。
- 工作流作業:
- flume -> hdfs -> mr -> hive建表 -> 匯入load data指令碼
2. Azkaban-2.5.0安裝配置流程
(1) Azkaban準備:
- 安裝包:
- 執行器:azkaban-executor-server-2.5.0.tar.gz
- web伺服器:azkaban-web-server-2.5.0.tar.gz
- sql指令碼:azkaban-sql-script-2.5.0.tar.gz
- Hadoop
- Hive
(2) 解壓Azkaban-2.5.0相關安裝包到目標目錄下:
tar -zxvf .tar.gz -C 目標目錄
(3) 為後續方便,重新命名Azkaban相關資料夾:
mv azkaban-web-2.5.0/ server
mv azkaban-executor-2.5.0/ executor
mv azkaban-2.5.0/ azkaban
(4) 匯入解壓的sql指令碼:
- 進入MySQL建立azkaban庫:
create database azkaban;
- 切換資料庫:
use azkaban;
- 匯入指令碼:
source /XX/azkaban-2.5.0/create-all-sql-2.5.0.sql;
(5) 生成證照:
- HTTP協議證照生成:
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
- 根據提示輸入金鑰庫口令(密碼);
- 再次輸入金鑰庫口令(密碼);
- 輸入姓名(可不填);
- 輸入組織單位名稱(可不填);
- 輸入組織名稱(可不填);
- 輸入所在城市或者區域名稱(可不填);
- 輸入所在的省、市、自治區名稱(可不填);
- 輸入單位的雙字母國家、地區程式碼(可不填);
- 確認輸入的資訊(y/n);
- 輸入jetty的金鑰口令(如果和金鑰庫口令相同,按回車);
- 此時, keystore已生成在當前資料夾。
- 將keystore移動到server-2.5.0資料夾下:
mv keystore server-2.5.0/
(5) 時間同步配置:
- Azkaban是任務排程工具,所以要求叢集本地時間保持一致。
- Linux系統時間網路同步:
vi /etc/crontab
-
# 每天0:00自動進行網路校時,並同時更新BIOS的時間 00 0 * * * root /usr/sbin/ntpdate -u 210.72.145.44;hwclock -w # 每隔一個小時同步一下internet時間,並同時更新BIOS的時間 * */1 * * * root ntpdatetime.nuri.net;hwclock -w 複製程式碼
- 修改時區:
vi /etc/profile
export TZ='Asia/Shanghai'
- 檢視系統時間:
date
- 檢視硬體時鐘:
hwclock --show
- 系統時間同步硬體時鐘:
hwclock --systohc
- 硬體時鐘與系統時間:
hwclock --hctosys
(6) 修改配置檔案:
- 修改server端配置檔案:
- 進入server/conf路徑:
vi azkaban.properties
# 伺服器UI名稱(在伺服器上方顯示) azkaban.name=Test # 描述資訊 azkaban.label=My Local Azkaban # UI顏色 azkaban.color=#FF3601 # 首頁路徑 azkaban.default.servlet.path=/index # 網路資源目錄(絕對路徑) web.resource.dir=/opt/module/azkaban-2.5.0/server/web/web/ # 預設時區ID default.timezone.id=Asia/Shanghai # ——修改項 # 使用者許可權配置 #Azkaban UserManager class # 使用者許可權管理預設類 user.manager.class=azkaban.user.XmlUserManager # 使用者配置檔案路徑 # 避免在外部啟動時報錯,修改為絕對路徑 user.manager.xml.file=/XXX/conf/azkaban-users.xml # ——修改項 #Loader for projects # 配置檔案所在位置 executor.global.properties=conf/global.properties azkaban.project.dir=projects #Azkaban資料庫配置 #資料庫型別(目前只支援mysql) database.type=mysql mysql.port=3306 # 填自己的主機名 mysql.host=bigdata01 # ——修改項 # Azkaban資料庫名 mysql.database=azkaban # ——修改項 # mysql使用者名稱 mysql.user=root # ——修改項 # mysql密碼 mysql.password=密碼 # ——修改項 # mysql最大連線數 mysql.numconnections=100 # Velocity dev mode velocity.dev.mode=false # Jetty伺服器屬性 # Azkaban Jetty server properties. # 最大執行緒數 jetty.maxThreads=25 # Jetty SSL埠 jetty.ssl.port=8443 # Jetty埠 jetty.port=8081 # HTTP協議證照檔名(絕對路徑) jetty.keystore=keystore # HTTP協議證照檔案密碼 jetty.password=/XX/server/keystore密碼 # ——修改項 # Jetty主密碼 與 keystore檔案密碼相同 jetty.keypassword=keystore密碼 # ——修改項 # SSL檔名(絕對路徑) jetty.truststore=/XX/server/keystore # SSL檔案密碼 jetty.trustpassword=keystore密碼 # ——修改項 # 執行伺服器屬性 # 執行伺服器埠 executor.port=12321 # 郵件設定 #傳送郵箱 mail.sender=xxxxxxxx@163.com # ——修改項 #傳送郵箱smtp地址 mail.host=smtp.163.com # ——修改項 # 傳送郵件時顯示的名稱 mail.user=xxxxxxxx # ——修改項 # 任務失敗時傳送郵件的地址 job.failure.email=xxxxxxxx@163.com # ——修改項 # 任務成功時傳送郵件的地址 job.success.email=xxxxxxxx@163.com # ——修改項 lockdown.create.projects=false # 快取目錄 cache.directory=cache 複製程式碼
vi azkaban-users.xml
-
# 配置個人管理員登入賬戶 <user username="ybcarry" password="3150997" roles="admin,metrics"/> 複製程式碼
- 進入server/conf路徑:
- 修改executor端配置檔案:
- 進入executor/conf路徑:
vi azkaban.properties
#Azkaban #時區 default.timezone.id=Asia/Shanghai # ——修改項 # Azkaban JobTypes Plugins # jobtype 外掛所在位置 azkaban.jobtype.plugin.dir=plugins/jobtypes #Loader for projects #絕對路徑 executor.global.properties=/XX/executor/conf/global.properties # ——修改項 azkaban.project.dir=projects # 資料庫設定 # 資料庫型別(目前只支援mysql) database.type=mysql # 資料庫埠號 mysql.port=3306 # 資料庫IP地址 mysql.host=192.168.20.200 # Azkaban資料庫名 mysql.database=azkaban # ——修改項 # mysql使用者名稱 mysql.user=root # ——修改項 # mysql密碼 mysql.password=密碼 # ——修改項 # mysql最大連線數 mysql.numconnections=100 # Azkaban Executor settings # Azkaban執行器配置 # 最大執行緒數 executor.maxThreads=50 # 埠號(如修改,請與web服務中一致) executor.port=12321 # 執行緒數 executor.flow.threads=30 複製程式碼
- 進入executor/conf路徑:
(7) 配置環境變數:
- 修改配置檔案:
vi /etc/profile
- 增加以下內容:
export AZKABAN_SERVER_HOME=azkaban server安裝路徑
export PATH=$PATH:$AZKABAN_SERVER_HOME/bin
export AZKABAN_EXECUTOR_HOME=azkaban executor安裝路徑
export PATH=$PATH:$AZKABAN_EXECUTOR_HOME/bin
- 宣告環境變數:
source /etc/profile
(8) 啟動
- 啟動server:
azkaban-web-start.sh
- 啟動executor:
azkaban-executer-start.sh
- 在瀏覽器中輸入網址:
https://主機IP:8443/
- 輸入設定的使用者名稱、密碼
- 啟動成功