目录
编辑 vim conf/azkaban.properties
Conf/azkaban.properties 修改jetty
Azkaban三种部署模式:
1. solo server mode
在独立服务器模式下,使用的数据库是内嵌的H2,并且webserver(Web服务器)和executor server (执行服务器)都在同一进程中运行。 如果只想尝试一下Azkaban的使用,或者是很小规模的测试使用,这种部署模式还是可行的。
2. two server mode
双服务器模式适用于比较复杂的生产环境,它的数据库会由具有主从设置的MySQL实例提供支持。其中,Web服务器和执行服务器应在不同的进程中运行,以便升级和维护过程中不影响用户。
3. distributed multiple -exe cutor mode
分布式多执行器模式适用于特别复杂的生产环境,它的数据库同样应该由具有主从设置的MySQL实例支持。理想情况下,Web服务器和执行服务器应在不同的主机中运行,以便升级和维护不影响用户。这种分布式多主机设置的模式为Azkaban带来了强大且可扩展的性能。
本文主要对第二种部署方式进行讲解
资源准备
系统环境:
- Linux CentOS 8
- Mysql mysql8.0.17
- JDK 1.8
azkanban3.50.0源码包下载:
https://codeload.github.com/azkaban/azkaban/tar.gz/3.50.0
上传到linux系统并解压:
- rz 上传
- tar -zxvf azkaban-3.50.0.tar.gz 解压
编译:
需要先安装 git :
- yum -y install git
进入到azkaban目录,执行:
- . /gradlew build -x test
- 上述指令会跳过Azkaban源文件的测试类部分进行自动编译构建(使用./gradlew build指令会对整个源文件全部进行编译),整个过程需要联网,如果网络不好的情况下会非常耗时,连接中断的话需要多次重试。
当看到下面标志表示编译成功:
Azkaban源文件编译成功后,会在解压目录下各自azkaban-*/build/distributions目录下生成基于Windows和Linux的安装包文件。这里以azkaban-exec-server执行器项目为例进行演示查看,在Azkaban 解压目录下,进入azkaban-exec-server/build /distributions目录查看
安装配置
首先需要已经完成了mysql的安装配置(这里不再说明,如果没有mysql,可以参照其他博客进行安装配置,这里提供两个链接)
完成mysql之后,建立一个名为azkaban的数据库:
# 1、进入mysql
mysql -u root -p
# 2、创建数据库
create database azkaban;
设置数据包最大接受数:
# 1、编辑文件
vim /etc/my.cnf.d/mysql-server.d
或者 vim /etc/my.cnf
# 2、修改文件之后要重新启动mysql
systemctl restart mysqld
Azkaban数据库初始化:
# 1、使用azkaban数据库
use azkaban;
# 2、执行sql脚本
source /export/servers/azkaban-3.50.0/azkaban.db/build/distributions/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql;
如下图所示:(需要先对azkaban-db-0.1.0-SNAPSHOT.tar.gz 解压)
Azkaban Web 服务配置
-
SSL套接字连接器
先在hadoop01机器上的某个目录下(如/export/sofware目录下)执行如下指令,生成SSL秘钥库。
# 1、生成密钥
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
执行上述指令后,会要求输入“keystore password (秘钥口令)",这里输入“123456",确认密码‘’123456”
接下来,继续回车,还会要求输入姓名、组织、国家等,用户可自定义填写或不填写内容;然后在“is correct? (是否正确)” 的地方输入“Y"。
-
准备 Azkaban-web 的6个文件
将前面编译好的web服务安装包进行解压到/export/servers/azkaban目录下(如果不存在,需要提前创建)
在安装包的目录执行 如下命令
# 1、解压web服务安装包
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban
执行上述指令,解压web-server后,只会在/export/servers/azkaban/azkaban-*目录下产生bin、lib 和web三个文件,而实际情况下,Azkaban 服务需要多个文件.
需要在其他文件下拷贝出来: (先解压azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz)
进入到 azkaban目录下的azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT/
复制 conf 和 plugins 到 /export/servers/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/
# 1、复制conf
cp -r conf/ /export/servers/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/
# 2、复制plugins
cp -r plugins/ /export/servers/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/
还需要一个extlib目录:手动创建
之从,web-server 中的六个文件齐全
-
配置conf/azkaban.properties
编辑 vim conf/azkaban.properties
-
移动密钥文件keystore
需要注意的是,为了保证Azkaban Web服务器配置文件azkaban.properties能够找到前面生成的keystore,还需要将生成的keystore秘钥文件移动到当前解压后的Azkaban Web服务根目录下(即/export servers/ azkaban azkaban-web.server-0.1.0-SNAPSHOT目录下)
-
azkaban-users.xml 添加用户
设置: username:admin password:admin
-
Conf/Log4j.properties 编写
# log4j.properties
log4j.rootLogger=INFO,Console
log4j.logger.azkaban=INFO,server
log4j.appender.server=org.apache.log4j.RollingFileAppender
log4j.appender.server.layout=org.apache.log4j.PatternLayout
log4j.appender.server.File=logs/azkaban-server.log
log4j.appender.server.layout.ConversionPattern= \
%d{yyyy/MM/dd HH:mm:ss.SSS Z} %p [%c{1}] [Azkaban] %m%n
log4j.appender.server.MaxFileSize=102400MB
log4j.appender.server.MaxBackupIndex=2
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern= \
%d{yyyy/MM/dd HH:mm:ss.SSS Z} %p [%c{1}] [Azkaban] %m%n
Azkaban Exec 服务配置
-
准备azkaban-exec 下的5个文件
Azkaban Web服务器的安装配置后,还需要对AzkabanExecutor服务器进行安装配置,其整个安装配置过程与Azkaban Web服务器的安装配置类似,具体步骤如下。
先将前面小节编译好的Executor服务安装包进行解压到/export servers/azkaban目录
下(如果不存在,需要提前创建),具体指令如下(在安装包所在目录执行)。
#解压
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban
执行命令后,会在解压目录下看到bin 和 lib 两个文件,同Web服务安装包一样,还缺失conf、extlib、plugins三个文件,(exec执行器服务不需要web文件夹),,这里只需要从前面已配置好的Azkaban Web 服务器的安装文件下进行拷贝即可。如下图
-
Conf/azkaban.properties 修改jetty
-
Conf/azkaban.properties 新增其他
注意:任何一个参数都不可以重复!!! 请细致检查一遍 ~-~
测试启动
-
Azkaban-exec 启动
到 /export/servers/azkaban/azkaban-exec-server-* 目录下 ,执行
# 执行器启动
bin/start-exec.sh
# 执行器关闭
bin/shutdown-exec.sh
-
Azkaban-web 启动
到 /export/servers/azkaban/azkaban-web-server-* 目录下 ,执行
# web启动
bin/start-web.sh
# web关闭
bin/shutdown-web.sh
-
UI界面访问
https://hadoop01:8443 hadoop01 就是主机的ip地址。