Azkaban集群配置

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设置

  • jetty ssl keystore生成
keytool -genkey -keystore keystore -alias jetty-azkaban -keyalg RSA -validity 3560

 根据提示信息输入相关问题信息,密码统一设置为dmbigdata。

  • selfsignedcert.cer
keytool -export -alias jetty-azkaban -keystore keystore -rfc -file selfsignedcert.cer

根据提示信息输入相关问题信息,密码统一设置为dmbigdata。

  • jetty ssl truststore生成
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

你可能感兴趣的:(Azkaban集群配置)