1. 程式人生 > >Azkaban-3.43.0 安裝部署

Azkaban-3.43.0 安裝部署

1.遇到的問題

在資料分析系統,有大量的shell,hive,sqoop指令碼。之間存在一定的依賴。 比如A指令碼,將日誌資料匯入到hdfs中。B指令碼對日誌資料進行分析。A執行完成以後,B才開始執行。 如果需要A還未執行完,B就開會執行,分析結果必然不對。所以需要一個任務排程系統。
2.Azkaban和oozie
Azkaban,配置,使用簡單,名字也好聽啊,當然用這個。百度都是資料,可以自查。
3.下載Azkaban
git clone https://github.com/azkaban/azkaban.git 也可以直接去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.啟動完成以後,訪問
http://ip:8443 記得防火牆開放埠號
10.job任務建立上傳,請百度或檢視官方文件
    http://azkaban.github.io/azkaban/docs/latest/