Azkaban-3.43.0 安裝部署

1.遇到的問題

在數據分析系統,有大量的shell,hive,sqoop腳本。之間存在一定的依賴。
比如A腳本,將日誌數據導入到hdfs中。B腳本對日誌數據進行分析。A執行完成以後,B纔開始執行。
如果需要A還未執行完,B就開會執行,分析結果必然不對。所以需要一個任務調度系統。
2.Azkaban和oozie
Azkaban,配置,使用簡單,名字也好聽啊,當然用這個。百度都是資料,可以自查。
3.下載Azkaban
也可以直接去git上下載所需版本的tar包
4.Azkaban的部署模式
1.solo server mode,依賴自帶的H2數據庫,web server和executor server在同一個線程。測試或者小規模的案例可以用。
2.two sercer mode,需要mysql作爲元數據庫,web server和executor server在不同一個線程
3.multiple executor mode,2模式的擴展,可以有多個executor server
教程使用第2種模式
5.build
編譯,時間會比較慢
./gradlew installDist
如果不是第一次編譯,最好先clean一下
./gradlew clean
編譯完以後,我們需要四個目錄,
azkaban-db,存放建表的語句
azkaban-exec-server,執行服務,需要 build/distributions/ 裏面的tar包
azkaban-solo-server,solo模式使用
azkaban-web-server,web服務,需要 build/distributions/ 裏面的tar包
6.創建Azkaban元數據庫
sql腳本在azkaban-db文件中
mysql> use azkaban;
mysql> source [sql腳本目錄]。有一個全的,名字裏帶all
7.配置 keystore
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
Enter keystore password: 123456
what is your first and last name: fibonacci
what is the name of your organizational unit: xxx
what is the name of your organization: xxx
what is the name of your City or Locality: beijing
what is the name of your State or Province: beijing
what is the two_letter country code for this unit: CN
將生成的keystone文件拷貝到web-server的安裝目錄下,和conf等目錄同級
8.創建必要目錄
解壓azkaban-exec-server,azkaban-web-server的tar包
1.Azkaban-web-server
bin 啓動腳本存放目錄
conf 配置文件存放目錄(沒有的話從solo-server的目錄中拷貝過來)
lib 依賴jar包存放目錄extlib 附加jar包存放目錄(沒有的話手動創建)
plugins 插件安裝目錄web
web 資源文件
logs 日誌文件(手動創建)
2.Azkaban-exec-server
bin 啓動腳本存放目錄conf 配置文件存放目錄(沒有的話從solo-server的目錄中拷貝過來)lib 依賴jar包存放目錄extlib 附加jar包存放目錄(沒有的話手動創建)plugins 插件安裝目錄
以上的目錄,沒有的話從azkaban-solo-server裏面拷貝
9.配置文件
1.azkaban-web-server azkaban.properties
# Azkaban Personalization Settings
azkaban.name=Allin  # 服務器UI名稱,界面顯示
azkaban.label=My Local Azkaban  # 描述
azkaban.color=#FF3601  # 界面顏色
azkaban.default.servlet.path=/index
web.resource.dir=/azkaban-web-server/web/  # 最好用絕對路徑,不然界面可能會詭異的醜
default.timezone.id=Asia/Shanghai

# 權限
# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/azkaban-web-server/conf/azkaban-users.xml  # 絕對路徑,不然可能報錯

# Loader for projects
executor.global.properties=/azkaban-web-server/conf/global.properties  # 絕對路徑,不然可能報錯
azkaban.project.dir=/azkaban-web-server/projects  # 絕對路徑,不然可能報錯

# Velocity dev mode
velocity.dev.mode=false

# jerry服務器的配置
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8443
jetty.keystore=//azkaban-web-server/conf/keystore  # 用的是步驟5生成的文件
jetty.password=123456  # 密碼都設一樣的,也好記
jetty.keypassword=123456
jetty.truststore=//azkaban-web-server/conf/keystore
jetty.trustpassword=123456

# Azkaban Executor settings
executor.port=12321  # 執行服務器端口

# 郵件配置,job失敗的話,會發郵件提醒,我沒配置
# mail settings
mail.sender=
mail.host=
# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
# enduser -> myazkabanhost:443 -> proxy -> localhost:8081
# when this parameters set then these parameters are used to generate email links.
# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
# azkaban.webserver.external_hostname=myazkabanhost.com
# azkaban.webserver.external_ssl_port=443
# azkaban.webserver.external_port=8081
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache

# JMX stats
jetty.connector.stats=true
executor.connector.stats=true

# Azkaban plugin settings
azkaban.jobtype.plugin.dir=/azkaban-web-server/plugins/jobtypes

# mysql配置
database.type=mysql
mysql.port=3306
mysql.host=hadoop02
mysql.database=azkaban
mysql.user=root
mysql.password=123456
mysql.numconnections=100
2.azkaban-web-server azkaban-users.xml
一看就知道怎麼配置了
3.azkaban-exec-server azkaban.properties
# Azkaban Personalization Settings
default.timezone.id=Asia/Shanghai

# Loader for projects
executor.global.properties=/azkaban-exec-server/conf/global.properties
azkaban.project.dir=/azkaban-exec-server/projects
azkaban.jobtype.plugin.dir=/azkaban-exec-server/plugins/jobtypes

database.type=mysql
mysql.port=3306
mysql.host=hadoop02
mysql.database=azkaban
mysql.user=root
mysql.password=123456
mysql.numconnections=100

# Azkaban Executor settings
executor.maxThreads=50  # 最大線程數
executor.port=12321  # 端口號
executor.flow.threads=30  # 流式執行的線程數
4.log4j的配置
log4j.rootLogger=DEBUG,C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.err
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
8.啓動
web-server
bin目錄下,azkaban-web-start.sh
exec-server
bin目錄下,azkaban-executor-start.sh
9.啓動完成以後,訪問
記得防火牆開放端口號
10.job任務創建上傳,請百度或查看官方文檔
    http://azkaban.github.io/azkaban/docs/latest/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章