1. 程式人生 > >Azkaban3X的編譯安裝與使用(確定可用)--提供已經編譯好的工具供大家使用

Azkaban3X的編譯安裝與使用(確定可用)--提供已經編譯好的工具供大家使用

一、Azkaban3X的編譯及安裝使用(我這裡配置的是two servermode模式,exec-server與web-server在不同程序中,在同一臺server中)

1.先檢查下網路是否暢通:pingwww.baidu.com測試一下,mysql是否已經安裝好並啟動了,並在mysql中為

azkaban建立一個數據庫,就叫azkaban好了。

2.安裝git工具 yum install git  (一般系統中都有內建的git

4.下載完成後,當前目錄下可以看到azkabancd azkaban

5.檢查下版本號 git checkout 版本號

6.補充說明:在進行下一步之前請注意你的

jdk是否是1.8及以上的版本,如果不是請更新,3X要求jdk的版本為1.8及以上。

,並且還需要配置jre,分別輸入命令java -version,和命令javac 產看javajre是否符合要求。

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是否已經啟動。