Azkaban的简介和安装(3.47.0版本,两个服务模式安装)

  1. Azkaban简介
    官网: https://azkaban.github.io/
    Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。
    Azkaban定义了一种KV文件(properties)格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
    它有如下功能特点:
    Web用户界面
    方便上传工作流
    方便设置任务之间的关系
    调度工作流
    认证/授权(权限的工作)
    能够杀死并重新启动工作流
    模块化和可插拔的插件机制
    项目工作区
    工作流和任务的日志记录和审计
  2. Azkaban安装模式
    Azkaban 有三种部署方式:单服务模式、2个服务模式、分布式多服务模式
  • solo server model(单服务模式):该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是AzkabanSingleServer。可以使用自带的H2数据库或者配置mysql数据。该模式适用于小规模的使用。此模式合适个人试用使用。它也可以用在小规模的使用案例中。
  • two server model(2个服务模式):数据库为mysql,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行,这种模式下,管理服务器和执行服务器互不影响。适用在较重的生成环境中。
  • multiple-executor(分布式多服务模式):存放元数据的数据库为mysql,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行。多个Executor 模式为最重的生产环境。
  1. Azkaban安装(两个服务模式安装)
  • 安装前准备

    安装MySQL
    安装jdk1.8

  • 下载,编译

软件下载目录 /export/softwares/, 软件安装目录 /export/servers/

cd /export/softwares/
wget https://github.com/azkaban/azkaban/archive/3.47.0.tar.gz
tar -zxvf 3.47.0.tar.gz -C ../servers/
cd /export/servers/azkaban-3.47.0/
yum -y install git
yum -y install gcc-c++
./gradlew distTar
# 编译完成之后得到我们需要的安装包在以下目录下即可获取得到
# azkaban-exec-server存放目录
/export/servers/azkaban-3.47.0/azkaban-exec-server/build/distributions
# azkaban-web-server存放目录
/export/servers/azkaban-3.47.0/azkaban-web-server/build/distributions
# azkaban-solo-server存放目录
/export/servers/azkaban-3.47.0/azkaban-solo-server/build/distributions
# 数据库文件
/export/servers/azkaban-3.47.0/azkaban-db/build/distributions
  • 复制, 解压相关软件包
# 复制
cp /export/servers/azkaban-3.47.0/azkaban-exec-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz  /export/softwares/
cp /export/servers/azkaban-3.47.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /export/softwares/
cp /export/servers/azkaban-3.47.0/azkaban-solo-server/build/distributions/azkaban-exec-solo-0.1.0-SNAPSHOT.tar.gz /export/softwares/
cp /export/servers/azkaban-3.47.0/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz  /export/softwares/
# 解压
cd /export/softwares/
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
#重命名
cd /export/servers/
mv azkaban-web-server-0.1.0-SNAPSHOT/ azkaban-web-server-3.47.0
mv azkaban-exec-server-0.1.0-SNAPSHOT/ azkaban-exec-server-3.47.0
mv azkaban-solo-server-0.1.0-SNAPSHOT/ azkaban-solo-server-3.47.0
mv azkaban-db-0.1.0-SNAPSHOT/ azkaban-db-3.47.0
  • 创建Azkaban元数据库
mysql  -uroot -p
CREATE DATABASE azkaban;
use azkaban; 
source /export/servers/azkaban-db-3.47.0/create-all-sql-0.1.0-SNAPSHOT.sql;
  • 安装SSL配置
cd  /export/servers/azkaban-web-server-3.47.0
keytool -keystore keystore -alias jetty -genkey -keyalg RSA

ssl配置

  • azkaban web server安装
    配置azkaban-web-server
    首先将azkaban-solo-server安装目录下的conf文件夹拷贝到azkaban-web-server的安装目录下cp -r /export/servers/azkaban-solo-server-0.1.0-SNAPSHOT/conf/ /export/servers/azkaban-web-server-3.47.0/

    修改azkaban-web-server的配置文件

cd /export/servers/azkaban-web-server-3.47.0/conf
vim azkaban.properties

#具体的配置 
azkaban.name=MyAzkaban
azkaban.label=My Azkaban
default.timezone.id=Asia/Shanghai
#database.type=h2
#h2.path=./h2
#h2.create.tables=true
database.type=mysql
mysql.port=3306
mysql.host=node03
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
jetty.use.ssl=true
jetty.keystore=/export/servers/azkaban-web-server-3.47.0/keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=/export/servers/azkaban-web-server-3.47.0/keystore
jetty.trustpassword=azkaban

在conf目录下添加log4j.properties的配置文件

vim  log4j.properties
#添加log4j代码
log4j.rootLogger=INFO, Console
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}] %m%n
log4j.category.velocity=INFO
  • azkaban executor server 安装
    配置azkaban-exec-server
    将azkaban-web-server的conf目录拷贝到azkaban-executor-server的安装路径下
cd /export/servers
cp -r /export/servers/azkaban-web-server-3.47.0/conf/ /export/servers/azkaban-exec-server-3.47.0/

添加插件 mkdir -p /export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
将我们编译后的C文件execute-as-user.c
复制到这个目录来/export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
然后执行以下命令生成execute-as-user

yum -y install gcc-c++
cd /export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
gcc execute-as-user.c -o execute-as-user
chown root execute-as-user
chmod 6050 execute-as-user

添加配置文件

cd  /export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
vim commonprivate.properties
# 代码
execute.as.user=false
azkaban.native.lib=/export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes

最终生成如图
exec生成

  • 启动服务
    启动azkaban-web-server
cd /export/servers/azkaban-web-server-3.47.0
bin/start-web.sh

启动azkaban exec server

cd /export/servers/azkaban-exec-server-3.47.0
bin/start-exec.sh

访问地址: https://ip:8443

如果出现访问报错, javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
原因:浏览器安全证书限制。添加信任即可。

解决办法:使用https://ip:8443访问

即不要使用http访问,使用https。。。

参考: Azkaban 简介及安装(3.x)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章