1.下载源码
从github上下载azkaban官方源码,目前最新release为3.81.0
git clone https://github.com/azkaban/azkaban.git
2.编译
进入到下载的azkaban目录中进行编译:
Build Azkaban
./gradlew build(这一步需要等待的时间略久,需要提前安装git、gcc等软件,否则会报错)
Clean the build
./gradlew clean
Build and install distributions
./gradlew installDist
Run tests
./gradlew test
Build without running tests
./gradlew build -x test
相关目录介绍如下:
azkaban-common : 常用工具类
azkaban-db : 对应的sql脚本
azkaban-Hadoop-secutity-plugin : hadoop有关kerberos插件
azkaban-solo-server: web和executor运行在同一进程的项目
azkaban-web-server:azkaban的web-server单独模块
azkaban-executor-server: azkaban的executor-server单独模块
azkaban-spi: azkaban存储接口以及exception类
将编译好的文件拷贝出来:
mkdir azkaban
cp /azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz azkaban/
cp /azkaban-web-server-0.1.0-SNAPSHOT.tar.gz azkaban/
cp /azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz azkaban/
cp /azkaban-db-0.1.0-SNAPSHOT.tar.gz azkaban/
解压:
cd azkaban
tar xvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
tar xvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
tar xvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
tar xvf azkaban-db-0.1.0-SNAPSHOT.tar.gz
2.2.3.DB的安装
(如本机已安装则跳过)
第一步:添加 MariaDB yum 仓库
首先在CentOS操作系统中/etc/yum.repos.d/目录下添加 MariaDB 的YUM配置文件MariaDB.repo文件
vi /etc/yum.repos.d/MariaDB.repo
在该文件中添加以下内容保存:
[mariadb]
name = MariaDB
baseurl =http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
第二步:安装 MariaDB
通过yum命令轻松安装 MariaDB。
yum install MariaDB-server MariaDB-client -y
MariaDB 安装完毕后,立即启动数据库服务守护进程
systemctl start mariadb
设置 MariaDB 在操作系统重启后自动启动服务
systemctl enable mariadb
第三步: 创建azkaban库 (很关键)
输入mysql(直接回车)进入mariadb
mysql> CREATE DATABASE azkaban;
创建azkaban用户
给azkaban用户授权
加载azkaban的建表文件
mysql> use azkaban
mysql> /create-all-sql-0.1.0-SNAPSHOT.sql
在azkaban库中添加executors的ip/域名和端口
mysql> insert into executors(host,port)values("ip或者hostname",);
mysql> insert into executors(host,port)values("ip或者hostname",);
设置所有node的状态为1
mysql> update executors set active=1;
2.2.4.安装azkaban
1.拷贝出编译好的安装包
mkdir //azkaban
cd //azkaban
cp //azkaban-web-server-0.1.0-SNAPSHOT.tar.gz //azkaban
cp//azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz //azkaban
cp//azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz //azkaban
2.解压
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
3.创建文件夹
mkdir //azkaban-exec-server-0.1.0-SNAPSHOT/extlib
mkdir //azkaban-web-server-0.1.0-SNAPSHOT/extlib
4.下载mysql-connector 到两个extlib目录下
cd /software
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -zxvf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46
cp mysql-connector-java-5.1.46.jar //azkaban-web-server-0.1.0-SNAPSHOT/extlib/
cp mysql-connector-java-5.1.46.jar //azkaban-exec-server-0.1.0-SNAPSHOT/extlib/
5.配置azkaban-web-server的jetty ssl
cd //azkaban-web-server-0.1.0-SNAPSHOT
[a-配置jetty ssl]
执行完毕后会生成一个keystore文件,要保证该文件在//azkaban-web-server-0.1.0-SNAPSHOT下,和conf等目录同级
[b-修改conf/azkaban.properties配置文件]
cd //azkaban-web-server-0.1.0-SNAPSHOT/conf
mv azkaban.properties azkaban.properties.bak
touch azkaban.properties
复制下面的内容保存
cat azkaban.properties
Azkaban Personalization Settings
azkaban.name=Test #服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI颜色
azkaban.default.servlet.path=//index
web.resource.dir=web/ #默认根web目录
default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海
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 #globa配置文件所在位置
azkaban.project.dir=projects
Velocity dev mode
velocity.dev.mode=false
Azkaban Jetty server properties. #jetty服务器属性
jetty.maxThreads=25 #最大线程数
jetty.ssl.port=8443 #jetty ssl端口号
jetty.port= #jetty端口,默认8081
jetty.keystore=keystore #SSL文件名
jetty.password= #SSL文件密码
jetty.keypassword= #jetty主密码与keystore文件相同
jetty.truststore= #SSL文件名
jetty.trustpassword= #SSL文件密码
Azkaban Executor settings
executor.port= #执行服务器端口
mail settings #邮件配置(暂没有配置)
mail.sender= #发送邮箱
mail.host= #发送邮箱smtp地址
mail.user=mailUsername #邮箱用户名
mail.password=mailPassword #邮箱密码
job.failure.email= #任务失败时发送邮件的地址
job.success.email= #任务成功时发送邮件的地址
lockdown.create.projects=false
cache.directory=cache #缓存目录
JMX stats
jetty.connector.stats=true
executor.connector.stats=true
Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes
database.type=mysql #数据库类型
mysql.port= #数据库端口号,默认3306
mysql.host= #数据库连接地址
mysql.database=azkaban #数据库实例名
mysql.user=azkaban #数据库用户名
mysql.password= #数据库密码
mysql.numconnections=100 #数据库最大连接数
azkaban.use.multiple.executors=true
azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1
6.配置log4j文件
配置azkaban目录conf目录下log4j.properties文件:
log4j.rootLogger=DEBUG,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-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
7.用户配置
配置azkaban目录conf目录下azkaban-users.xml文件,添加管理员用户及密码:
8.启动web-server
进入到web-server的目录,执行如下脚本,需要在bin级目录执行,否则汇报找不到配置文件的错误。
bin/azkaban-web-start.sh
打开浏览器,访问https://:,用刚刚添加的管理员账户密码登录。
9.配置 Azkaban Executor Server
1)修改conf/azkaban.properties
cat azkaban.properties
Azkaban Personalization Settings
default.timezone.id=Asia/Shanghai
Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes
database.type=mysql
mysql.port=
mysql.host=
mysql.database=azkaban
mysql.user=azkaban
mysql.password=
mysql.numconnections=100
Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
2)配置log4j
配置azkaban目录conf目录下log4j.properties文件, 简单示例如下:
log4j.rootLogger=DEBUG,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-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
3)启动exec-server
进入到exec-server的目录,执行如下脚本,需要在bin级目录执行,否则汇报找不到配置文件的错误。