Azkaban3X的編譯安裝與使用(確定可用)--提供已經編譯好的工具供大家使用
一、Azkaban3X的編譯及安裝使用(我這裡配置的是two servermode模式,exec-server與web-server在不同程序中,在同一臺server中)
1.先檢查下網路是否暢通:pingwww.baidu.com測試一下,mysql是否已經安裝好並啟動了,並在mysql中為
azkaban建立一個數據庫,就叫azkaban好了。
2.安裝git工具: yum install git (一般系統中都有內建的git)
4.下載完成後,當前目錄下可以看到azkaban:cd azkaban
5.檢查下版本號: git checkout 版本號
6.補充說明:在進行下一步之前請注意你的
,並且還需要配置jre,分別輸入命令java -version,和命令javac 產看java和jre是否符合要求。
7.build:可以選擇壓縮為tar包:./gradlew distTar
也可以壓縮為zip包: ./gradlew distZip
如果以前building過,最好先清理一下: ./gradlew clean,如果一次不成功,可以根據錯誤提示多試幾次。
在編譯過程中可能會碰到警告:有些API已過時,不用管它,只要最後顯示build success即可。
8.build成功後,分別進入如下三個個目錄:
cd /home/hadoop/apps/azkaban/azkaban-exec-server/build/distributions
cd /home/hadoop/apps/azkaban/azkaban-web-server/build/distributions
/home/hadoop/apps/azkaban/azkaban-db/build/distributions
將distributions下的azkaban-exec-server-3.41.0-9-geae1f9d.tar.gz 和,azkaban-web-server-3.41.0-9-geae1f9d.tar.gz,
azkaban-db-3.41.0-9-geae1f9d.tar.gz
分別解壓並拷貝到一個單獨的資料夾azkabantool下:
mkdir /home/hadoop/apps/azkabantool/
tar -zxvf azkaban-exec-server-3.41.0-9-geae1f9d.tar.gz -C /home/hadoop/apps/azkabantool/
tar
-zxvf azkaban-web-server-3.41.0-9-geae1f9d.tar.gz -C /home/hadoop/apps/azkabantool/
tar -zxvf azkaban-db-3.41.0-9-geae1f9d.tar.gz -C /home/hadoop/apps/azkabantool/
9將azkaban sql表結構匯入mysql
mysql> use azkaban;
mysql> source /opt/azkaban-sql-3.1.0/create-all-sql-3.1.0.sql
10 配置keystore
azkaban-web-server-3.1.0$ keytool -keystore keystore-alias jetty -genkey -keyalg RSA
輸入金鑰庫口令:
金鑰庫口令太短 - 至少必須為 6 個字元
輸入金鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什麼?
[Unknown]:
您的組織單位名稱是什麼?
[Unknown]:
您的組織名稱是什麼?
[Unknown]:
您所在的城市或區域名稱是什麼?
[Unknown]:
您所在的省/市/自治區名稱是什麼?
[Unknown]:
該單位的雙字母國家/地區程式碼是什麼?
[Unknown]:
CN= firstName, OU= companyName, O= groupName,L=beijing, ST=beijing, C=CN是否正確?[否]: Y
以上配置完成之後會在當前目錄生成一個keystore檔案。以下配置會用到。
11 配置conf/azkaban.properties:
如果Azkaban WebServer下面沒有conf目錄,將azkaban-solo-web 下的conf目錄拷貝過來,並作以下配置:
cat conf/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=America/Los_Angeles
# 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=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
# jetty.use.ssl=false
jetty.port=8081
jetty.keystore=keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=keystore
jetty.trustpassword=azkaban
jetty.excludeCipherSuites=SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA
# Azkaban Executor settings
executor.port=12321
# mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
注意:
配置的預設時區是:default.timezone.id=America/Los_Angeles 修改為:default.timezone.id=Asia/Shanghai
12 使用者設定
進入 azkaban web 伺服器 conf 目錄,修改 azkaban-users.xml,增加管理員使用者:
<azkaban-users><userusername="azkaban"password="azkaban"roles="admin"groups="azkaban" /><userusername="metrics"password="metrics"roles="metrics"/><userusername="admin"password="admin"roles="admin,metrics" /><rolename="admin"permissions="ADMIN" /><rolename="metrics"permissions="METRICS"/></azkaban-users>
13 啟動azkabanweb伺服器
cd /opt/azkaban-web-server-3.1.0/
bin/azkaban-web-start.sh
報錯:Exception:java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread"main"
解決方式:在Azkaban-web-server 的conf目錄下建立資料夾conf/log4j.properties:
log4j.rootLogger=INFO,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-ddHH:mm:ss} %-5p %c{1}:%L - %m%n
15Azkaban Executor Server 安裝和配置
進入azkaban-executor-server目錄,將azkaban-web-server下的conf目錄拷貝到
該目錄下
1) 配置executor端的azkaban.properties
# Azkaban
default.timezone.id=America/Los_Angeles
# 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=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# uncomment to enable inmemory stats for azkaban
#executor.metric.reports=true
#executor.metric.milisecinterval.default=60000
16 啟動執行伺服器:
bin/azkaban-executor-start.sh
17兩個問題:
1. Failed to build job executorfor job commandnull Failed to build job type
錯誤原因:是executor配置的外掛目錄(azkaban.jobtype.plugin.dir=plugins/jobtypes)不存在,建立這個目錄就好了
錯誤:
2. Cannot request memory (Xms 0kb, Xmx 0 kb) from system for job hello
錯誤原因:azkaban預設執行的系統記憶體是3G,如果你的系統記憶體沒有達到就會寶這個錯誤,並且job提交後一直無法執行,阻塞在那裡。
解決辦法:在executor的plugins/jobtypes目錄下建立檔案commonprivate.properties,檔案的內容為memCheck.enabled=false,最後重新啟動就好了
再補充一句,在執行命令之前,要確定hdfs和yarn是否已經啟動。