azkaban安裝使用


本文記錄azkaban的安裝和 一些報錯處理(文章末尾)。

AzKaban組成

MySQL數據庫,azkaban-server (web端),azkaban-executor (執行job)

1.下載(這里的下載並必行編譯,由於下載的時候會下載到其他的庫包,幾kb/s龜速太慢,所以,建議直接從windows上傳已編譯好的azkaban3.x包

執行命令

git clone https://github.com/azkaban/azkaban.git

下載完成后可以看到生成了一個名為 azkaban 的文件夾

2.編譯(若是上傳的編譯好的,就不用此步驟了)

cd 到 azkaban 目錄下,執行如下命令生成一系列文件,xxx.tar.gz

./gradlew distTar

此時,編譯完成,里面就有需要用到的Azkaban安裝部署的executor和web-server

3.拷貝

開始安裝部署,在azkaban同級目錄,新建一個目錄 azkaban3 用於安裝,並拷貝相關文件進去

mkdir azkaban3
cp azkaban/azkaban-db/build/distributions/azkaban-db-3.53.0.tar.gz azkaban3
cp azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.53.0.tar.gz azkaban3
cp azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.53.0.tar.gz azkaban3

 4.解壓和重命名

tar -zxvf azkaban-db-3.53.0.tar.gz
tar -zxvf azkaban-web-server-3.53.0.tar.gz
tar -zxvf azkaban-exec-server-3.53.0.tar.gz

mv azkaban-db-3.53.0 azkaban-db
mv azkaban-web-server-3.53.0 server
mv azkaban-exec-server-3.53.0 executor

azkaban腳本導入,azkaban-db里的sql腳本,導入到mysql中:(或者配置外網mysql連接)

進入mysql

  mysql> create database azkaban;

  mysql> use azkaban;

    Database changed

  mysql> source /home/hadoop/azkaban3/create-all-sql-3.53.0.sql;

5.創建SSL配置(123456) 

$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA
運行此命令后,會提示輸入當前生成 keystor的密碼及相應信息,輸入的密碼請勞記,信息如下(默認enter不輸入,國家必填)
輸入keystore密碼:(123456)
再次輸入新密碼:(123456)
您的名字與姓氏是什么?
  [Unknown]:
您的組織單位名稱是什么?
  [Unknown]:
您的組織名稱是什么?
  [Unknown]:
您所在的城市或區域名稱是什么?
  [Unknown]:
您所在的州或省份名稱是什么?
  [Unknown]:
該單位的兩字母國家代碼是什么
  [Unknown]:  CN
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正確嗎?
  [否]:  y 
輸入<jetty>的主密碼
(如果和 keystore 密碼相同,按回車):
再次輸入新密碼:

然后

完成上述工作后,將在當前目錄生成 keystore 證書文件,將keystore 考貝到 azkaban web服務器根目錄中.

$ cp keystore azkaban3/server 

配置文件

注:先配置好服務器節點上的時區

1、先生成時區配置文件Asia/Shanghai,用交互式命令 tzselect 即可

2、拷貝該時區文件,覆蓋系統本地時區配置

  cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

6.azkaban web服務器配置

進入azkaban web服務器安裝目錄 conf目錄,修改azkaban.properties文件,可用下面內容完全覆蓋properties內容,頂多屏蔽個郵箱

  vi azkaban.properties

azkaban.name=Test
azkaban.label=My Local Azkaban
#azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/usr/software/azkaban3/server/web/
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/usr/software/azkaban3/server/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=root
mysql.password=admin
mysql.numconnections=300

velocity.dev.mode=false
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=/usr/software/azkaban3/server/keystore
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=/usr/software/azkaban3/server/keystore
jetty.trustpassword=123456
executor.port=12321

# 郵件設置,郵件還是要的
mail.sender=xxxxxxxx@163.com
mail.host=smtp.163.com
mail.user=xxxxxxxx
mail.password=**********
job.failure.email=xxxxxxxx@163.com
job.success.email=xxxxxxxx@163.com
lockdown.create.projects=false
cache.directory=cache

 

7.azkaban 執行服務器配置

default.timezone.id=Asia/Shanghai
azkaban.jobtype.plugin.dir=plugins/jobtypes
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=admin
mysql.numconnections=300

# 執行服務器配置
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

8.用戶配置

進入azkaban web服務器conf目錄,修改azkaban-users.xml 

<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>
  <!--下面這行是配置一個管理員賬號-->
  <user username="admin" password="admin" roles="admin,metrics" />
  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>

 

azkaban默認需要3G的內存,剩余內存不足則會報異常。 

配置文件,設置

vi 【executor】/plugins/jobtypes/commonprivate.properties

memCheck.enabled=false
 
        

啟動 web服務器

在azkaban web服務器目錄下執行啟動命令

./bin/start-web.sh

啟動 執行服務器

如果沒啟動起來,可以加一條數據,再啟動

insert into executors(id,host,port,active) values('1','localhost','12321','1')

 

在執行服務器目錄下執行啟動命令

./bin/start-exec.sh

啟動完成后,在瀏覽器(建議使用谷歌瀏覽器)中輸入https://服務器IP地址:8443 ,即可訪問azkaban服務了.在登錄中輸入剛才新的戶用名及密碼,點擊 login

訪問azkaban,使用https協議

https://localhost:8443
登錄密碼:azkaban/azkaban ,或者admin/admin

 

 

 可能遇到的坑和處理:

1. azkaban.properties相關的一些屬性,盡量用絕對路徑,免得找不到,如下:

 user.manager.xml.file=azkaban-users.xml(錯誤)
 user.manager.xml.file=/usr/software/azkaban3/server/conf/azkaban-users.xml(正確)

2.azkaban.propertise文件中,如果配置遠程數據庫連接,密碼不要包含感嘆號
mysql.password=abcd!@123(錯誤)
這樣,感嘆號會被當成關鍵字,影響數據庫的連接,mysql -hxxx.xxx.xxx.xxx -uroot -p'abcd!@123'這樣雖然能連接,但是
配置文件里,即使加上引號還是連不上的 mysql.password='abcd!@123'(無效),所以密碼不要包含!,可以包含一些%v@之類的。

3.小概率情況可能遇到,就是properties的key對應value不要有附加空格,不然會算到值里
如(本處分號只是表示字符串結束位置)

    default.timezone.id=Asia/Shanghai              ; //錯誤
    default.timezone.id=Asia/Shanghai; //正確

4.端口占用
有些環境下8443默認已占用,說
"Address already in use",就需要換個端口,如: 8444,而且網頁端口協議是https不是http.

一些配置的注釋,可以參照如下:
https://blog.csdn.net/weixin_35852328/article/details/79327996



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM