Azkaban 安装(3.x)

原文:https://blog.csdn.net/hg_harvey/article/details/80342396 

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
1
下载完成后可以看到有一个名为 azkaban 的文件夹,当前最新版本为3.48.0 


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

./gradlew distTar
1


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/
1
2
3
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
1
2
3
4
5
6
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
1
2
3
4
5
6
 
创建的表: 


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
1
2
3
执行命令创建SSL配置

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


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
1
2
3
将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
1
2
配置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            # 最大连接数
1
2
3
4
5
6
7
8
9
10
在conf目录下添加log4j.properties
$ touch log4j.properties
1
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
1
2
3
4
5
添加MySQL驱动 
在azkaban-exec-server目录下创建文件夹:mkdir extlib 
将lib目录下的mysql驱动复制到extlib目录下
$ mkdir extlib
$ cp lib/mysql-connector-java-5.1.28.jar extlib/
1
2
拷贝azkaban-exec-server目录下的conf和extlib到azkaban-web-server目录下

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

cd azkaban-web-server/bin
./start-web.sh
1
2
3
4
5
启动完成后,jps查看进程

[hadoop@harvey bin]$ jps
2096 AzkabanExecutorServer
2135 AzkabanWebServer
2154 Jps
1
2
3
4
启动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/u011500419/article/details/89515047
今日推荐