1.下載
git clone https://github.com/azkaban/azkaban.git
2.build
To build Azkaban packages from source, run:
./gradlew distTar
The above command builds all Azkaban packages and packages them into GZipped Tar archives. To build Zip archives, run:
./gradlew distZip
If not building for the first time, it's good to clean first:
./gradlew clean
3.復(fù)制build 后的tar包
cp /opt/azkaban/build/distributions/*.tar.gz /opt
4.解壓縮
cd /opt
tar zxvf azkaban-exec-server-3.1.0.tar.gz
tar zxvf azkaban-web-server-3.1.0.tar.gz
tar zxvf azkaban-sql-3.1.0.tar.gz
5.安裝mysql
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server
systemctl status mysqld.service
6.設(shè)置mysql賬號(hào)
mysql -uroot
mysql> set password for 'root'@'localhost' = password('mysql');
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE azkaban;
Query OK, 1 row affected (0.01 sec)
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL ON azkaban.* to 'azkaban'@'localhost' IDENTIFIED BY 'azkaban';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
7.導(dǎo)入azkaban sql
mysql> use azkaban;
mysql> source /opt/azkaban-sql-3.1.0/create-all-sql-3.1.0.sql
mysql> source /opt/azkaban-sql-3.1.0/update.active_executing_flows.3.1.sql
mysql> source /opt/azkaban-sql-3.1.0/update.execution_flows.3.1.sql
8.配置keystore
richard@parllay:/opt/azkaban-web-server-3.1.0$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA
輸入密鑰庫(kù)口令:
密鑰庫(kù)口令太短 - 至少必須為 6 個(gè)字符
輸入密鑰庫(kù)口令:
再次輸入新口令:
您的名字與姓氏是什么?
[Unknown]: cao
您的組織單位名稱是什么?
[Unknown]: parllay
您的組織名稱是什么?
[Unknown]: fenghuotai
您所在的城市或區(qū)域名稱是什么?
[Unknown]: beijing
您所在的省/市/自治區(qū)名稱是什么?
[Unknown]: beijing
該單位的雙字母國(guó)家/地區(qū)代碼是什么?
[Unknown]: CN
CN=cao, OU=parllay, O=fenghuotai, L=beijing, ST=beijing, C=CN是否正確?[否]: Y
9.配置 conf/azkaban.properties
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=password
jetty.keypassword=keypassword
jetty.truststore=keystore
jetty.trustpassword=password
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
10.用戶設(shè)置
進(jìn)入 azkaban web 服務(wù)器 conf 目錄,修改 azkaban-users.xml 串塑,增加管理員用戶:
<azkaban-users> <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" /> <user username="metrics" password="metrics" roles="metrics"/> <user username="admin" password="admin" roles="admin,metrics" /> <role name="admin" permissions="ADMIN" /> <role name="metrics" permissions="METRICS"/></azkaban-users>
11.然后啟動(dòng)azkaban web服務(wù)器
cd /opt/azkaban-web-server-3.1.0/
bin/azkaban-web-start.sh
12.訪問驗(yàn)證https://localhost:8081
13.接下來(lái)配置執(zhí)行端
# 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
14.啟動(dòng)執(zhí)行服務(wù)器
bin/azkaban-executor-start.sh
15.Demo
cat > /opt/azkaban-exec-server-3.1.0/projects/foo.job
type=command
command=echo "Hello World"
cat > /opt/azkaban-exec-server-3.1.0/projects/bar.job
type=command
dependencies=foo
command=echo bar
7z a foobar.zip *.job
foobar zip在azkaban的前端上傳執(zhí)行結(jié)果如下:
Azkaban Web Client.gif
Azkaban Web Client (1).gif