1. 程式人生 > >CentOS中安裝Azkaban 2.5

CentOS中安裝Azkaban 2.5

密鑰 安裝目錄 網絡環境 ima .cn clas cut sqoop 好的

必備軟件
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代碼,編譯。

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:直接下載別人編譯好的版本進行安裝

https://pan.baidu.com/s/1tq8FLME2zHR539sTAZUw2A | zkl9

這個共享包裏是基於2.5.0的版本,下載下來三個文件:

azkaban-executor-2.5.0.zip azkaban-web-2.5.0.zip azkaban-sql-script-2.5.0.tar.gz

登陸mysql, 設置編碼為utf8, 為Azkaban創建數據庫, 並授權, 導入腳本

azkaban官方建議使用mysql作為後端的數據存儲db,使用如下命令創建azkaban的數據庫:

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;
創建SSL配置
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 #拷貝該時區文件,覆蓋系統本地時區配置
zkaban web服務器配置及用戶配置, 進入web服務器安裝目錄conf

web服務器配置如下:

vim azkaban.properties

#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

<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>
azkaban executor服務器配置, 進入執行服務器安裝目錄conf

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的方式手動啟動
登錄Web用戶界面, 進行操作

網址示例: https://192.168.56.3:8443
技術分享圖片

Azkaban實戰

Azkaba內置的任務類型支持 command、java, 我們可以安裝python、datax、sqoop等工具,進行擴展。

簡單示例, 操作步驟:

創建 job描述文件
command類型單一job示例

vim command.job

# command.job
type=command
command=echo 'hello'
command類型多job工作流flow示例

vim foo.job

# foo.job
type=command
command=echo foo
# bar.job
type=command
dependencies=foo
command=echo bar
HDFS操作任務示例

vim fs.job

# fs.job
type=command
command=hadoop fs -mkdir /azkaban
MapReduce任務示例

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
HIVE腳本任務示例

vim hivef.job vim test.sql

# hivef.job
type=command
command=hive -f 'test.sql'
create database test_db;
將所有 job資源文件打包壓縮成 zip文件, 登錄 azkaban的 web管理平臺, 上傳, 執行

啟動azkaban遇到問題解決

啟動exec-server異常

異常:java.io.FileNotFoundException: conf/global.properties (沒有那個文件或目錄)
解決方法:vim azkaban.properties 修改 executor.global.properties 為絕對路徑

啟動exec-web異常

異常:
java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

解決方法:vim azkaban.properties 修改 user.manager.xml.file 為絕對路徑

參考資料

  • https://blog.csdn.net/qq_38474729/article/details/82655641

CentOS中安裝Azkaban 2.5