1、Azkaban下载
官方下载地址,gradle项目需要自己编译打包。下载以下三个:
(1)Azkaban-web-server:azkaban-web-server-3.10.0.tar.gz
(2)Azkaban-executor-server:azkaban-exec-server-3.10.0.tar.gz
(3)Azkaban-solo-server: azkaban-solo-server-3.10.0.tar.gz
2、MySQL安装
Linux下安装MySQL5.7,参见文章https://www.cnblogs.com/daemon-/p/9009360.html#commentform
3、Azkaban配置
Azkaban的配置都是root账户来操作!!
(1)切换到root账户,将三个包上传到opt/azkaban目录下,并解压并依次重命名为azkaban-web-server,azkaban-executor-server;
(2)azkaban-web-server下新建extlib、key、logs、plugings、conf五个文件夹;
extlib:额外依赖包目录。导入了slf4j-nop-1.6.1.jar包。
logs:azkaban运行日志目录,没有会报错。
plugings:扩展插件目录。azkaban有很多插件,hdfs、hive、pig等,如有兴趣自行安装。
conf: 配置文件目录。
(3)配置azkaban-web-server
进入conf目录,这里面应该放四个配置文件 azkaban.properties、global.properties和azkaban-users.xml、log4j.properties,编译好的azkaban-solo-server里有这些配置文件,可以copy过来。另外plungs目录下的文件也copy到azkaban-web-server的plugins目录下。我们主要修改的就是azkaban.properties。
-rw-r----- 1 root root 1726 Jan 7 18:18 azkaban.properties
-rw-r----- 1 root root 272 Jan 7 16:15 azkaban-users.xml
-rw-r----- 1 root root 0 Jan 7 16:15 global.properties
-rw-r--r-- 1 root root 254 Jan 7 17:25 log4j.properties
log4j.properties是额外添加的,配置如下:
log4j.rootLogger=INFO,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
(4)编辑azkaban.properties
# Azkaban Personalization Settings
azkaban.name=Azkaban //随便取名
azkaban.label=Azkaban //副标题,随便取名
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai //时区改为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
azkaban.project.dir=projects
# 数据库配置,改为自己的Mysql配置
database.type=mysql
mysql.port=3306
mysql.host=x.x.x.x
mysql.database=azkaban
mysql.user=mysql账户
mysql.password=mysql密码
mysql.numconnections=100
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=true
jetty.maxThreads=25
jetty.port=8081
jetty.ssl.port=8443
jetty.keystore=/opt/azkaban/azkaban-web-server/keystore
jetty.password=dmbigdata
jetty.keypassword=dmbigdata
jetty.truststore=/opt/azkaban/azkaban-web-server/truststore
jetty.trustpassword=dmbigdata
# 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
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes
#集群多Executor时的配置,从官网copy的
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
(5)zkaban Jetty server设置
keytool -genkey -keystore keystore -alias jetty-azkaban -keyalg RSA -validity 3560
根据提示信息输入相关问题信息,密码统一设置为dmbigdata。
keytool -export -alias jetty-azkaban -keystore keystore -rfc -file selfsignedcert.cer
根据提示信息输入相关问题信息,密码统一设置为dmbigdata。
keytool -import -alias certificatekey -file selfsignedcert.cer -keystore
命令执行后会生成三个文件:keystore、truestore和selfsignedcert.cer,复制到azkaban-web-server/目录下。
(6)azkaban的mysql配置
解压azkaban-sql-script-3.6.0.tar.gz(mysql脚本),将该脚本导入到azkaban数据库中,表如下:
| Tables_in_azkaban |
+------------------------+
| active_executing_flows |
| active_sla |
| execution_flows |
| execution_jobs |
| execution_logs |
| executor_events |
| executors |
| project_events |
| project_files |
| project_flows |
| project_permissions |
| project_properties |
| project_versions |
| projects |
| properties |
| triggers |
在executors中插入三个执行节点(改为自己ip)。
insert into executors (host,port,active) values('x.x.x.4',22,1);
insert into executors (host,port,active) values('x.x.x.5',22,1);
insert into executors (host,port,active) values('x.x.x.6',22,1);
(7)azkaban启动命令
方式1:./bin/azkaban-executor-start.sh
方式2:nohup ./bin/azkaban-executor-start.sh &
如成功信息如下:
2018-01-07 18:18:39 INFO JdbcTriggerLoader:113 - Loading all triggers from db.
2018-01-07 18:18:39 INFO JdbcTriggerLoader:131 - Loaded 0 triggers.
2018-01-07 18:18:39 INFO ProjectManagerServlet:138 - downloadBufferSize: 8192
2018-01-07 18:18:39 INFO AzkabanWebServer:880 - Server running on ssl port 8443.
登陆链接:https://localhost:8089,端口改为自己的实际端口。
账号密码在azkaban-user.xml中,如下:azkaban/azkaban
[root@xxxxx conf]# more azkaban-users.xml
(8)azkaban停止命令
./bin/azkaban-executor-shutdown.sh
参考帖:
https://www.cnblogs.com/honeybee/p/7592774.html
https://www.jianshu.com/p/bff11c87565b