部署Azkaban多节点分布式模式

简单介绍:

Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。 它有三个重要组件:

  • 关系数据库(目前仅支持mysql)
  • web管理服务器-AzkabanWebServer
  • 执行服务器-AzkabanExecutorServer

Azkaban使用MySQL来存储它的状态信息,Azkaban Executor Server和Azkaban Web Server均使用到了MySQL数据库。

AzkabanExecutorServer在如下几个方面使用到了数据库:

  • 获取project的信息
  • 执行工作流
  • 存储工作流运行日志
  • 如果一个工作流在不同的执行器上运行,它将从DB中获取状态。

AzkabanWebServer在如下几个方面使用到了数据库:

  • Project管理
  • 跟踪工作流执行进度
  • 访问历史工作流的运行信息
  • 定时执行工作流任务
  • 记录所有sla规则

 

AzkabanWebServer

AzkabanWebserver是整个Azkaban工作流系统的主要管理者,它负责project管理、用户登录认证、定时执行工作流、跟踪工作流执 行进度等一系列任务。同时,它还提供Web服务操作的接口,利用该接口,用户可以使用curl或其他ajax的方式,来执行azkaban的相关操作。操作包括:用户登录、创建project、上传workflow、执行workflow、查询workflow的执行进度、杀掉workflow等一系列操作,且这些操作的返回结果均是json的格式。

AzkabanExecutorServer

之所以将AzkabanWebServer和AzkabanExecutorServer分开,主要是因为在某个任务流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级。

 

注意:安装sqoop的节点都要安装azkaban

环境配置:由于azkaban3.0以上没有相应的安装包,需要从源码进行编译。编译的环境需要安装jdk8。

分布式模式:集群内应当安装三个exec-server和一个web-server,相关组件分配如下:

bigdata243      azkaban-exec

bigdata244      azkaban-exec

bigdata245      azkaban-web-server azkaban-exec-server mysql

 

azkaban-web目录

bin 启动脚本存放目录

conf 配置文件存放目录(没有的话从solo-server的目录中拷贝过来)

lib 依赖jar包存放目录

extlib 附加jar包存放目录(没有的话手动创建)

plugins 插件安装目录

web web资源文件

logs 日志存储目录

sql sql资源

 

azkaban-exec目录

bin 启动脚本存放目录

conf 配置文件存放目录(没有的话从solo-server的目录中拷贝过来)

lib 依赖jar包存放目录

extlib 附加jar包存放目录(没有的话手动创建)

plugins 插件安装目录

 

编译,安装过程

官网下载:3.47版本

进入到azkaban下面编译:[hadoop@bigdata245 azkaban-3.47.0]$ ./gradlew distTar

编译结果为:

azkaban-common : 常用工具类。

azkaban-db : 对应的sql脚本

azkaban-hadoop-secutity-plugin : hadoop 有关kerberos插件

azkaban-solo-server: web和executor 一起的项目。

azkaban-web/executor-server:azkaban的 web和executor的server信息

azkaban-spi: azkaban存储接口以及exception类

编译完成后:db、web、exec、solo四个目录的build/distributions/下生成其压缩包

将压缩包拷贝到:新建文件夹:mkdir azkaban

cp azkaban-db-0.1.0-SNAPSHOT.tar.gz /home/hadoop/app/azkaban/

cp azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /home/hadoop/app/azkaban/

cp azkaban-web-server-0.1.0-SNAPSHOT.tar.gz /home/hadoop/app/azkaban/

cp azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz /home/hadoop/app/azkaban/

 

解压重命名

tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz

tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz

tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz

tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz

mv azkaban-db-0.1.0-SNAPSHOT azkaban-db

mv azkaban-web-server-0.1.0-SNAPSHOT azkaban-web

mv azkaban-solo-server-0.1.0-SNAPSHOT azkaban-solo

mv azkaban-exec-server-0.1.0-SNAPSHOT azkaban-exec

创建Azkaban元数据库:登录mysql,执行如下语句

mysql> create database azkaban_matadata;

Query OK, 1 row affected (0.00 sec)

mysql> use azkaban_matadata;

Database changed

mysql> source /home/hadoop/app/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql (会创建所有表)

配置keystore

在azkaban-web/bin目录下执行这条命令,在执行完这条命令之后,会生成一个文件:keystore.使用keytool创建SSL配置,keytool是JDK提供的一个工具,输入如下命令,可以查看

[root@bigdata245 ~]# find / -name keytool

/home/hadoop/app/jdk1.8/bin/keytool

/home/hadoop/app/jdk1.8/jre/bin/keytool

 

执行命令创建SSL配置

[hadoop@bigdata245 bin]$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA

输入密钥库口令: azkaban

再次输入新口令: azkaban

您的名字与姓氏是什么? [Unknown]: 略过

您的组织单位名称是什么? [Unknown]: 略过

您的组织名称是什么? [Unknown]: 略过

您所在的城市或区域名称是什么? [Unknown]: 略过

您所在的省/市/自治区名称是什么? [Unknown]: 略过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值