Azkaban 简介及安装(3.x)

1.Azkaban 简介

官网:https://azkaban.github.io/

Azkaban 一个批量工作流任务调度器,使用Java语言开发。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

Azkaban 的优点

  • 提供功能清晰,简单易用的Web UI界面
  • 提供job配置文件快速建立任务和任务之间的依赖关系
  • 提供模块化和可插拔的插件机制,原生支持command、Java、Hive、Pig、Hadoop
  • 基于Java开发,代码结构清晰,易于二次开发

Azkaban 安装模式

Azkaban 有三种部署方式:单服务模式、2个服务模式、分布式多服务模式

  • solo server model(单服务模式):该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是AzkabanSingleServer。可以使用自带的H2数据库或者配置mysql数据。该模式适用于小规模的使用。此模式合适个人试用使用。它也可以用在小规模的使用案例中。
  • two server model(2个服务模式):数据库为mysql,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行,这种模式下,管理服务器和执行服务器互不影响。适用在较重的生成环境中。
  • multiple-executor(分布式多服务模式):存放元数据的数据库为mysql,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行。多个 Executor 模式为最重的生产环境。

2.Azkaban 3.x 安装(two-server 模式)

安装前准备

  • 安装JDK1.8
  • 安装MySQL
1.下载

执行命令

git clone https://github.com/azkaban/azkaban.git

下载完成后可以看到有一个名为 azkaban 的文件夹,当前最新版本为3.48.0
这里写图片描述

2.编译

cd 到 azkaban 目录下,执行如下命令生成一系列文件

./gradlew distTar

这里写图片描述

3.拷贝

新建文件夹:mkdir azkaban-3.48.0
执行命令如下命令拷贝到 azkaban-3.48.0 目录下

$ cp azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ cp azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ cp azkaban/azkaban-db/build/distributions/azkaban-db-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
4.解压 重命名
$ tar -zxvf azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz
$ tar -zxvf azkaban-web-server-3.48.0-8-gdc851ec.tar.gz
$ tar -zxvf azkaban-db-3.48.0-8-gdc851ec.tar.gz
$ mv azkaban-exec-server-3.48.0-4-g9a42cb2 azkaban-exec-server
$ mv azkaban-web-server-3.48.0-4-g9a42cb2 azkaban-web-server
$ mv azkaban-db-3.48.0-4-g9a42cb2 azkaban-db
5.创建Azkaban元数据库

登录mysql,执行如下语句

mysql> create database azkaban;
Query OK, 1 row affected (0.00 sec)

mysql> use azkaban;
Database changed
mysql> source /home/hadoop/software/azkaban-3.48/azkaban-db/create-all-sql-3.48.0-8-gdc851ec.sql

这里写图片描述
创建的表:
这里写图片描述

6.创建SSL配置

使用keytool创建SSL配置,keytool是JDK提供的一个工具,输入如下命令,可以查看

[root@harvey azkaban-3.47.0]# find / -name keytool 
/home/hadoop/software/jdk/bin/keytool
/home/hadoop/software/jdk/jre/bin/keytool

执行命令创建SSL配置

$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA

这里写图片描述

7.azkaban-exec-server中配置azkaban.properties 添加log4j.properties 添加mysql驱动

拷贝 azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz 到 azkaban-3.48.0 目录下,解压并重命名

$ cp azkaban/azkaban-solo-server/build/distributions/azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ tar -zxvf azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz
$ mv azkaban-solo-server-3.48.0-8-gdc851ec azkaban-solo-server

将azkaban-solo-server下的conf plugins 和sql文件夹拷贝到azkaban-exec-server

$ cd azkaban-solo-server
$ cp -a conf/ plugins/ sql/ ~/software/azkaban-3.48/azkaban-exec-server
  • 配置conf/azkaban.properties
azkaban.name=Harvey             # 服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban      # 描述信息
default.timezone.id=Asia/Shanghai       # 时区,默认为美国America/Los_Angeles
database.type=mysql             # 数据库类型
mysql.port=3306                 # 端口
mysql.host=192.168.191.65           # 数据库连接IP
mysql.database=azkaban          # 数据库实例名
mysql.user=root                 # 数据库用户名
mysql.password=P@ssw0rd         # 数据库密码
mysql.numconnections=100            # 最大连接数
  • 在conf目录下添加log4j.properties
$ touch 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
  • 添加MySQL驱动
    在azkaban-exec-server目录下创建文件夹:mkdir extlib
    将lib目录下的mysql驱动复制到extlib目录下
$ mkdir extlib
$ cp lib/mysql-connector-java-5.1.28.jar extlib/

拷贝azkaban-exec-server目录下的conf和extlib到azkaban-web-server目录下

$ cp -a conf/ extlib/ ../azkaban-web-server
8.启动,先启动exec-server(执行器),然后启动web-server(web服务)
cd azkaban-exec-server/bin
./start-exec.sh

cd azkaban-web-server/bin
./start-web.sh

启动完成后,jps查看进程

[hadoop@harvey bin]$ jps
2096 AzkabanExecutorServer
2135 AzkabanWebServer
2154 Jps

启动azkaban遇到问题解决

  • 启动exec-server异常
    异常:java.io.FileNotFoundException: conf/global.properties (没有那个文件或目录)
    这里写图片描述
    解决方法:vim azkaban.properties 修改 executor.global.properties 为绝对路径
    这里写图片描述
  • 启动exec-web异常
    异常:java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    这里写图片描述
    解决方法:vim azkaban.properties 修改 user.manager.xml.file 为绝对路径
    这里写图片描述
9.访问Azkaban UI界面

访问:http://IP:8081
这里写图片描述

看到的页面奇丑无比,哈哈,解决方法如下
修改azkaban.properties文件中的web.resource.dir
这里写图片描述
这里写图片描述

然后重启web-server,再次访问,可以看到UI界面就正常了
这里写图片描述

输入用户名密码azkaban/azkaban登录
这里写图片描述

猜你喜欢

转载自blog.csdn.net/HG_Harvey/article/details/80342396