天天看點

CentOS 7.5安裝Azkaban詳解

1、軟體介紹

Azkaban Web 伺服器:azkaban-web-server-2.5.0.tar.gz

Azkaban Excutor 執行伺服器: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 的機器上,友善指令的執行。并最好同 一存放在 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 ~]$ tar -zxvf azkaban-sql-script-2.5.0.tar.gz

[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中執行腳本create-all-sql-2.5.0.sql(在MySQL所在的伺服器上執行)

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           

複制

CentOS 7.5安裝Azkaban詳解
CentOS 7.5安裝Azkaban詳解

(4)建立SSL配置

參考位址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL

最好是在 /home/hadoop/apps/azkaban-2.5.0 目錄下: 執行指令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA

[hadoop@hadoop3 azkaban-2.5.0]$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA

輸入密鑰庫密碼: 

再次輸入新密碼:

您的名字與姓氏是什麼?

  [Unknown]: 

您的組織機關名稱是什麼?

  [Unknown]: 

您的組織名稱是什麼?

  [Unknown]: 

您所在的城市或區域名稱是什麼?

  [Unknown]: 

您所在的省/市/自治區名稱是什麼?

  [Unknown]: 

該機關的雙字母國家/地區代碼是什麼?

  [Unknown]:  CN

CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN是否正确?

  [否]:  是

輸入 <jetty> 的密鑰密碼

    (如果和密鑰庫密碼相同, 按回車): 

[hadoop@hadoop3 azkaban-2.5.0]$

CentOS 7.5安裝Azkaban詳解

完成上述工作後,将在目前目錄生成 keystore 證書檔案,将 keystore 拷貝到 azkaban web 服務 器根目錄中.如:

hadoop@hadoop3 azkaban-2.5.0]$ mv keystore azkaban-web-2.5.0/           

複制

(5)修改時區

注:先配置好伺服器節點上的時區

1、先生成時區配置檔案 Asia/Shanghai,用互動式指令 tzselect 即可

2、拷貝該時區檔案,覆寫系統本地時區配置

[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           

複制

内容說明如下:

#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 #預設時區,已改為亞洲/上海 預設為美國

#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 #資料庫類型

mysql.port=3306 #端口号

mysql.host=hadoop03 #資料庫連接配接 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=/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 檔案密碼

# 執行伺服器屬性

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-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 #時區

# 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

#資料庫設定

database.type=mysql #資料庫類型(目前隻支援 mysql)

mysql.port=3306 #資料庫端口号

mysql.host=hadoop03 #資料庫 IP 位址

mysql.database=azkaban #資料庫執行個體名

mysql.user=root #資料庫使用者名

mysql.password=root #資料庫密碼

mysql.numconnections=100 #最大連接配接數

# 執行伺服器配置

executor.maxThreads=50 #最大線程數

executor.port=12321 #端口号(如修改,請與 web 服務中一緻)

executor.flow.threads=30 #線程數

(7)配置環境變量

[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)           

複制

CentOS 7.5安裝Azkaban詳解

需要将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)           

複制

CentOS 7.5安裝Azkaban詳解

排查發現是Azkaban的配置檔案azkaban-web-2.5.0/conf/azkaban.properties中的時區配置後面多了一個空格導緻

注意:Azkaban的配置檔案中不能有空格

CentOS 7.5安裝Azkaban詳解

去掉空格之後再次啟動azkaban,啟動成功

CentOS 7.5安裝Azkaban詳解

(2)啟動executor伺服器

[hadoop@hadoop3 ~]$ azkaban-executor-start.sh           

複制

背景啟動方式

nohup azkaban-executor-start.sh 1>/home/hadoop/azexstd.out 2>/home/hadoop/azexerr.out &           

複制

CentOS 7.5安裝Azkaban詳解

6、驗證

打開谷歌或是火狐浏覽器輸入https://IP:8443,此處測試的位址是https://hadoop3:8443,此時可能會出現以下界面,點選進階

CentOS 7.5安裝Azkaban詳解

點選繼續前往hadoop3(不安全)

CentOS 7.5安裝Azkaban詳解

此時會跳到登入界面,輸入在配置檔案azkaban-users.xml,中配置的使用者名密碼admin/admin,點選登入

CentOS 7.5安裝Azkaban詳解

登入成功

CentOS 7.5安裝Azkaban詳解