1、軟件介紹
Azkaban Web 服務器:azkaban-web-server-2.5.0.tar.gz
Azkaban Excutor 執(zhí)行服務器:azkaban-executor-server-2.5.0.tar.gz
Azkaban 初始化腳本文件:azkaban-sql-script-2.5.0.tar.gz
2、軟件下載
下載地址:http://azkaban.github.io/downloads.html
3、安裝說明
將安裝文件上傳到集群,最好上傳到安裝 hive、sqoop 的機器上,方便命令的執(zhí)行。并最好同 一存放在 apps 目錄下,用于存放源安裝文件.新建 azkaban-2.5.0 目錄,用于存放 azkaban 運行程序
[Hadoop@hadoop3 ~]$ cd apps/ [hadoop@hadoop3 apps]$ mkdir azkaban-2.5.0
4、安裝步驟
(1)上傳安裝包并解壓縮到指定目錄
[hadoop@hadoop3 ~]$ tar -zxvf azkaban-web-server-2.5.0.tar.gz -C apps/azkaban-2.5.0/ [hadoop@hadoop3 ~]$ tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C apps/azkaban-2.5.0/
(2)解壓初始化腳本
[hadoop@hadoop3 ~]$ cd azkaban-2.5.0/
[hadoop@hadoop3 azkaban-2.5.0]$ ll
總用量 88
-rwxr-xr-x 1 hadoop hadoop 129 4月 22 2014 create.active_executing_flows.sql
-rwxr-xr-x 1 hadoop hadoop 216 4月 22 2014 create.active_sla.sql
-rwxr-xr-x 1 hadoop hadoop 4694 4月 22 2014 create-all-sql-2.5.0.sql
-rwxr-xr-x 1 hadoop hadoop 610 4月 22 2014 create.execution_flows.sql
-rwxr-xr-x 1 hadoop hadoop 519 4月 22 2014 create.execution_jobs.sql
-rwxr-xr-x 1 hadoop hadoop 358 4月 22 2014 create.execution_logs.sql
-rwxr-xr-x 1 hadoop hadoop 224 4月 22 2014 create.project_events.sql
-rwxr-xr-x 1 hadoop hadoop 227 4月 22 2014 create.project_files.sql
-rwxr-xr-x 1 hadoop hadoop 280 4月 22 2014 create.project_flows.sql
-rwxr-xr-x 1 hadoop hadoop 285 4月 22 2014 create.project_permissions.sql
-rwxr-xr-x 1 hadoop hadoop 294 4月 22 2014 create.project_properties.sql
-rwxr-xr-x 1 hadoop hadoop 380 4月 22 2014 create.projects.sql
-rwxr-xr-x 1 hadoop hadoop 325 4月 22 2014 create.project_versions.sql
-rwxr-xr-x 1 hadoop hadoop 155 4月 22 2014 create.properties.sql
-rwxr-xr-x 1 hadoop hadoop 498 4月 22 2014 create.schedules.sql
-rwxr-xr-x 1 hadoop hadoop 189 4月 22 2014 create.triggers.sql
-rwxr-xr-x 1 hadoop hadoop 22 4月 22 2014 database.properties
-rwxr-xr-x 1 hadoop hadoop 671 4月 22 2014 update-all-sql-2.1.sql
-rwxr-xr-x 1 hadoop hadoop 156 4月 22 2014 update-all-sql-2.2.sql
-rwxr-xr-x 1 hadoop hadoop 395 4月 22 2014 update.execution_logs.2.1.sql
-rwxr-xr-x 1 hadoop hadoop 59 4月 22 2014 update.project_properties.2.1.sql
[hadoop@hadoop3 azkaban-2.5.0]$
(3)在MySQL中執(zhí)行腳本create-all-sql-2.5.0.sql(在MySQL所在的服務器上執(zhí)行)
mysql> create database azkaban; Query OK, 1 row affected (0.01 sec) mysql> use azkaban; Database changed mysql> source /home/hadoop/azkaban-2.5.0/create-all-sql-2.5.0.sql
(4)創(chuàng)建SSL配置
參考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
最好是在 /home/hadoop/apps/azkaban-2.5.0 目錄下: 執(zhí)行命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA
輸入密鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什么?
[Unknown]:
您的組織單位名稱是什么?
[Unknown]:
您的組織名稱是什么?
[Unknown]:
您所在的城市或區(qū)域名稱是什么?
[Unknown]:
您所在的省/市/自治區(qū)名稱是什么?
[Unknown]:
該單位的雙字母國家/地區(qū)代碼是什么?
[Unknown]: CN
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN是否正確?
[否]: 是
輸入 <jetty> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):
[hadoop@hadoop3 azkaban-2.5.0]$
完成上述工作后,將在當前目錄生成 keystore 證書文件,將 keystore 拷貝到 azkaban web 服務 器根目錄中.如:
hadoop@hadoop3 azkaban-2.5.0]$ mv keystore azkaban-web-2.5.0/
(5)修改時區(qū)
注:先配置好服務器節(jié)點上的時區(qū)
1、先生成時區(qū)配置文件 Asia/Shanghai,用交互式命令 tzselect 即可
2、拷貝該時區(qū)文件,覆蓋系統(tǒng)本地時區(qū)配置
[hadoop@hadoop3 azkaban-2.5.0]$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
(6)修改azkaban web 服務器配置
進入 azkaban web 服務器安裝目錄 conf 目錄
[hadoop@hadoop3 ~]$ cd apps/azkaban-2.5.0/azkaban-web-2.5.0/conf/
修改 azkaban.properties 文件
[hadoop@hadoop3 conf]$ vi azkaban.properties
內(nèi)容說明如下:
#Azkaban Personalization Settings
azkaban.name=MyTestAzkaban #服務器 UI 名稱,用于服務器上方顯示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI 顏色
azkaban.default.servlet.path=/index
web.resource.dir=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/web/ #默認根 web 目錄
default.timezone.id=Asia/Shanghai #默認時區(qū),已改為亞洲/上海 默認為美國
#Azkaban UserManager class
user.manager.>
user.manager.xml.file=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/conf/azkaban-users.xml #用戶配置,具體配置參加下文
#Loader for projects # global 配置文件所在位置
executor.global.properties=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=projects
database.type=mysql #數(shù)據(jù)庫類型
mysql.port=3306 #端口號
mysql.host=hadoop03 #數(shù)據(jù)庫連接 IP
mysql.database=azkaban #數(shù)據(jù)庫實例名
mysql.user=root #數(shù)據(jù)庫用戶名
mysql.password=root #數(shù)據(jù)庫密碼
mysql.numconnections=100 #最大連接數(shù)
# Velocity dev mode
velocity.dev.mode=false # Jetty 服務器屬性.
jetty.maxThreads=25 #最大線程數(shù)
jetty.ssl.port=8443 #Jetty SSL 端口
jetty.port=8081 #Jetty 端口
jetty.keystore=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/keystore #SSL 文件名
jetty.password=hadoop #SSL 文件密碼
jetty.keypassword=hadoop #Jetty 主密碼 與 keystore 文件相同
jetty.truststore=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/keystore #SSL 文件名
jetty.trustpassword=hadoop # SSL 文件密碼
# 執(zhí)行服務器屬性
executor.port=12321 #執(zhí)行服務器端口
# 郵件設置(可選項)
mail.sender=xxxxxxxx@163.com #發(fā)送郵箱
mail.host=smtp.163.com #發(fā)送郵箱 smtp 地址
mail.user=xxxxxxxx #發(fā)送郵件時顯示的名稱
mail.password=********** #郵箱密碼
job.failure.email=xxxxxxxx@163.com #任務失敗時發(fā)送郵件的地址
job.success.email=xxxxxxxx@163.com #任務成功時發(fā)送郵件的地址
lockdown.create.projects=false # cache.directory=cache #緩存目錄
修改 azkaban-users.xml配置文件
用戶配置 進入 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>
(6)修改azkaban executor服務器配置
進入 azkaban executor 服務器安裝目錄 conf 目錄
[hadoop@hadoop3 ~]$ cd apps/azkaban-2.5.0/azkaban-executor-2.5.0/conf/
修改azkaban.properties文件
[hadoop@hadoop3 conf]$ vi azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai #時區(qū)
# Azkaban JobTypes 插件配置,插件所在位置
azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/plugins/jobtypes
#Loader for projects
executor.global.properties=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=projects
#數(shù)據(jù)庫設置
database.type=mysql #數(shù)據(jù)庫類型(目前只支持 mysql)
mysql.port=3306 #數(shù)據(jù)庫端口號
mysql.host=hadoop03 #數(shù)據(jù)庫 IP 地址
mysql.database=azkaban #數(shù)據(jù)庫實例名
mysql.user=root #數(shù)據(jù)庫用戶名
mysql.password=root #數(shù)據(jù)庫密碼
mysql.numconnections=100 #最大連接數(shù)
# 執(zhí)行服務器配置
executor.maxThreads=50 #最大線程數(shù)
executor.port=12321 #端口號(如修改,請與 web 服務中一致)
executor.flow.threads=30 #線程數(shù)
(7)配置環(huán)境變量
[hadoop@hadoop3 ~]$ vi .bashrc
#Azkban export AZKABAN_WEB_HOME=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0 export AZKABAN_EXE_HOME=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0 export PATH=$PATH:$AZKABAN_WEB_HOME/bin:$AZKABAN_EXE_HOME/bin
保存之后使其立即生效
[hadoop@hadoop3 ~]$ source .bashrc
5、啟動
(1)啟動 web 服務器
[hadoop@hadoop3 ~]$ azkaban-web-start.sh
后臺啟動方式
nohup azkaban-web-start.sh 1>/home/hadoop/azwebstd.out 2>/home/hadoop/azweberr.out &
報錯信息:
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.apache.derby.jdbc.AutoloadedDriver40 at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at java.sql.DriverManager.isDriverAllowed(DriverManager.java:556) at java.sql.DriverManager.isDriverAllowed(DriverManager.java:548) at java.sql.DriverManager.getDrivers(DriverManager.java:446) at org.apache.commons.dbcp.BasicDataSource.<clinit>(BasicDataSource.java:57) at azkaban.database.DataSourceUtils.getMySQLDataSource(DataSourceUtils.java:98) at azkaban.database.DataSourceUtils.getDataSource(DataSourceUtils.java:76) at azkaban.database.AbstractJdbcLoader.<init>(AbstractJdbcLoader.java:63) at azkaban.executor.JdbcExecutorLoader.<init>(JdbcExecutorLoader.java:59) at azkaban.webapp.AzkabanWebServer.loadExecutorManager(AzkabanWebServer.java:247) at azkaban.webapp.AzkabanWebServer.<init>(AzkabanWebServer.java:185) at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:726)
需要將derby-10.11.1.1.jar放到/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/lib和/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/lib目錄中
[hadoop@hadoop3 ~]$ cp derby-10.11.1.1.jar apps/azkaban-2.5.0/azkaban-web-2.5.0/lib/ [hadoop@hadoop3 ~]$ cp derby-10.11.1.1.jar apps/azkaban-2.5.0/azkaban-executor-2.5.0/lib/
此時在重新啟動azkaban仍舊報錯
Exception in thread "main" java.lang.IllegalArgumentException: The datetime zone id 'Asia/Shanghai ' is not recognised at org.joda.time.DateTimeZone.forID(DateTimeZone.java:223) at azkaban.webapp.AzkabanWebServer.<init>(AzkabanWebServer.java:208) at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:726)
排查發(fā)現(xiàn)是Azkaban的配置文件azkaban-web-2.5.0/conf/azkaban.properties中的時區(qū)配置后面多了一個空格導致
注意:Azkaban的配置文件中不能有空格
去掉空格之后再次啟動azkaban,啟動成功
(2)啟動executor服務器
[hadoop@hadoop3 ~]$ azkaban-executor-start.sh
后臺啟動方式
nohup azkaban-executor-start.sh 1>/home/hadoop/azexstd.out 2>/home/hadoop/azexerr.out &
6、驗證
打開谷歌或是火狐瀏覽器輸入https://IP:8443,此處測試的地址是https://hadoop3:8443,此時可能會出現(xiàn)以下界面,點擊高級
點擊繼續(xù)前往hadoop3(不安全)
此時會跳到登錄界面,輸入在配置文件azkaban-users.xml,中配置的用戶名密碼admin/admin,點擊登錄
登錄成功