一、下载azkaban包
https://github.com/azkaban/azkaban/releases 选择tar.gz下载
二、修改jdk配置
可能会遇上这种问题,需要修改jdk配置
下载
JCE Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8 Download
下载解压后把文件夹UnlimitedJCEPolicyJDK8里的local_policy.jar和US_export_policy.jar放到 你的JAVA_HOME下/jre/lib/security里。(为了安全起见我们可以先把security文件夹里原来的local_policy.jar和US_export_policy.jar先mv成local_policy.jar.old和US_export_policy.jar.old然后上传)
三、编译azkaban
安装git
yum install -y git
解压azkaban压缩包
mkdir /soft/
tar -xzvf azkaban-3.9.tar.gz -C /soft
#运行其自带打包工具但需要先cd到文件夹内
cd /soft/azkaban-3.9/
#运行自带方法 Build Azkaban
./gradlew build
此时我这边报错,跳过测试编译
./gradlew build installDist -x test
此时文件夹内如下
将以上四个文件夹下
/build/distributions里的tar.gz 文件拿出来
拷贝到一个新的目录里
mkdir /opt/azkaban
cd /opt/azkaban
mv /soft/azkaban-3.9/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/
mv /soft/azkaban-3.9/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/
mv /soft/azkaban-3.9/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/
mv /soft/azkaban-3.9/azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/
解压
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
重命名:
mv azkaban-db-0.1.0-SNAPSHOT/ azkaban-db
mv azkaban-exec-server-0.1.0-SNAPSHOT/ azkaban-exec-server
mv azkaban-solo-server-0.1.0-SNAPSHOT/ azkaban-solo-server
mv azkaban-web-server-0.1.0-SNAPSHOT/ azkaban-web-server
四、设置数据库
我这边已经搭好了mysql,直接连接上去
//创建库
CREATE DATABASE IF NOT EXISTS azkaban_test;
//创建用户
create user 'azkaban'@'%' identified by 'azkaban';
//给用户访问库的权限
grant all on azkaban_test.* to 'azkaban'@'%' with grant option;
//修改数据库字符集
alter database azkaban_test character set Latin1;
//初始化数据库
use azkaban_test;
source /soft/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql;
五、配置azkaban
修改azkaban-web-server和azkaban-exec-server目录conf下的azkaban.properties的mysql配置
我这里还配置了邮箱,
mail.sender=xxx
mail.host=smtp.exmail.qq.com
mail.port=587
mail.tls=true
mail.user=user
mail.password=pwd
新建账号:
vim azkaban-web-server/conf/azkaban-users.xml
<azkaban-users>
<user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
<user password="metrics" roles="metrics" username="metrics"/>
<user password="test" roles="metrics" username="test"/>
<role name="admin" permissions="ADMIN"/>
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
手动修改exec-srver状态为激活。
这步很重要,不然后面web端会一直起不来,他会报错说execute没有available的,然后就停了。很蛋疼但是没办法。端口号在executor下的executor.port文件中可查 具体命令为
curl http://${executorHost}:${executorPort}/executor?action=activate
先启动exec-server,再启动web
此时8081顿口就可以访问了
六、配置ssl
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: azkaban
您的组织单位名称是什么?
[Unknown]: azkaban
您的组织名称是什么?
[Unknown]: azkaban
您所在的城市或区域名称是什么?
[Unknown]: beijing
您所在的省/市/自治区名称是什么?
[Unknown]: beijing
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=azkaban, OU=azkaban, O=azkaban, L=beijing, ST=beijing, C=CN是否正确?
[否]: Y
输入 <jetty> 的密钥口令
(如果和密钥库口令相同, 按回车):
输入完信息,执行完以上命令之后,在当前目录下生成一个keystore文件,将此文件复制到azkaban web服务器根目录下。
修改web azkaban.properties配置
jetty.use.ssl=true
jetty.maxThreads=25
jetty.port=8081
jetty.keystore=/opt/azkaban/azkaban-web-server/keystore #SSL 文件名
jetty.password=azkaban #SSL 文件密码
jetty.keypassword=azkaban #Jetty 主密码 与 keystore 文件相同
jetty.truststore=/opt/azkaban/azkaban-web-server/keystore #SSL 文件名
jetty.trustpassword=azkaban # SSL 文件密码
服务重启,此时https:localhost:8443 就可以访问了。
!注意:
azkaban.properties中的时区一定要改为当前时区,否则,设置定时任务后执行的时间不对
参考: