Azkaban安装部署
在2.5版本之后,Azkaban提供了两种模式来安装:
一种是standalone的“solo-server”模式;另一种是两个server的模式,分别为AzkabanWebServer和AzkabanExecutorServer
两个server的模式:
安装准备
- Azkaban官网: https://azkaban.github.io
- 软件下载地址: https://github.com/azkaban/azkaban
- 官方插件地址: https://github.com/azkaban/azkaban-plugins
- 官方文档地址: http://azkaban.github.io/azkaban/docs/latest
安装过程
1 下载。
git clone https://github.com/azkaban/azkaban.git
得到文件夹
azkaban/
2 编译。执行命令
cd azkaban
,在该目录下执行
按照以下步骤编译:
# Build Azkaban ./gradlew build # Clean the build ./gradlew clean # Build and install distributions ./gradlew installDist # Run tests ./gradlew test # Build without running tests ./gradlew build -x test
取
./azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz(要其配置文件,其他两个里面没有)
azkaban/azkaban-web-server/build/distributions/azkaban-web-server-.tar.gz
azkaban/azkaban-sql/build/distributions/azkaban-sql-.tar.gz
azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-.tar.gz
其中主要使用web-server\exec-server两个项目
将以上四个文件拷贝到需要安装的服务器上,解压,将web-server\exec-server分别配成以下目录结构:
文件夹
|
解释
|
文件夹
|
解释
|
bin
|
用来存放启动和停止脚本
|
conf
|
配置文件,最重要的配置azkaban.properties
|
lib
|
jar文件,查看是否存在mysql驱动
|
extlib
|
扩展lib
|
plugins
|
扩展插件,有hdfs、hive、pig等
|
web
|
web目录
|
3. 安装MYSQL
MySQL
目前azkaban只支持 mysql,需安装mysql服务器,本文档中默认已安装好mysql服务器,并建立了 root用户,密码 root.
注:账号和里面可以直接设定,比如azkaban/azkaban
1) 以 root 用户登录mysql 2)
CREATE
DATABASE
azkaban;
3
CREATE
USER
'azkaban'
@
'%'
IDENTIFIED
BY
'azkaban'
;
4)
GRANT
SELECT
,
INSERT
,
UPDATE
,
DELETE
ON
azkaban.*
to
'azkaban'
@
'%'
WITH
GRANT
OPTION
;
5) flush privileges; 6) use azkaban; 7) source /home/hadoop/azkaban/azkaban-sql-3.20.0-5-g28fc94e7/
create
-
all
-
sql
-
3.0.0
.
sql
5 配置
azkaban-web-server
。
执行
mv azkaban-exec-server-3.20.0-5-g28fc94e7 azkaban-exec-server-3.20.0-5
,且在该目录下执行
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
生成
keystore
文件,配置SSL。
cd azkaban-exec-server-3.20.0-5
, 此目录如下
bin
conf
extlib
lib
plugins
projects
temp
目录(如该目录下没有相应的文件夹,则直接在
azkaban-solo-server
目录下拷贝就行)。
conf
目录下存放
azkaban.properties
global.properties
log4j.properties
三个文件
extlib
目录下存放
mysql-connector-java-5.1.41-bin.jar
连接mysql的Java驱动包
plugins
目录下存放
jobtypes/commonprivate.properties
文件
azkaban.properties
(1)azkaban.properties
operties
# 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
# Azkaban元数据库信息
database
.type
=mysql
mysql
.port
=
3306
mysql
.host
=localhost
mysql
.database
=azkaban
mysql
.user
=azkaban
mysql
.password
=azkaban
m
ysql
.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
log4j.properties
log4j
.rootLogger
=INFO,C
log4j
.appender.C
=org
.apache.log
4j
.ConsoleAppender
log4j
.appender.C.Target
=System
.err
log4j
.appender.C.layout
=org
.apache.log
4j
.PatternLayout
log4j
.appender.C.layout.ConversionPattern
=%d{yyyy-MM-dd HH:mm:ss} %-
5
p %c{
1
}:%L - %m%n
6 配置
azkaban-exec-server
.配置对应
conf/azkaban.properties
conf/global.properties
conf/log4j.properties
azkaban.properties
operties
# 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
=projectsdatabase
.type
=mysql
mysql
.port
=
3306
mysql
.host
=localhost
mysql
.database
=azkaban
mysql
.user
=azkabanmysql
.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
log4j.properties
log4j
.rootLogger
=INFO,C
log4j
.appender.C
=org
.apache.log
4j
.ConsoleAppender
log4j
.appender.C.Target
=System
.err
log4j
.appender.C.layout
=org
.apache.log
4j
.PatternLayout
log4j
.appender.C.layout.ConversionPattern
=%d{yyyy-MM-dd HH:mm:ss} %-
5
p %c{
1
}:%L - %m%n
7 启动。启动
web-server
和
exec-server
,执行
bin/azkaban-executor-start.sh
和
bin/azkaban-web-start.sh
命令。创建Project,两种方式:web界面创建和通过API创建(
方法
)。
7 插件安装
- git clone https://github.com/azkaban/azkaban-plugins.git
- cd 到对应目录下
- 执行 ant