CentOS7部署Azkaban單機模式


azkaban工作流调度器前言

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

Azkaban3.0+版本提供了三种安装模式:
1.solo-server mode:单机模式,适合开发使用。使用内置的h2数据库,web server和executor server在同一个进程里。
2.two server mode:双机模式,适合生产环境。使用主从的MySQL做元数存储,web server和executor server在不同的进程中,更新和升级对用户的影响较小;
3.multiple-executor mode:多executor模式,最严格的生产环境。使用主从的MySQL做元数据存储。理想情况下,web server和executor server在不同的主机上运行,以便升级维护不影响用户。这种模式为azkaban提供了高可用可扩展的功能。

提示:因为需求量使用效能不多,但linux crontab又不能满足web操作,所以目前只提供单机模式教学,下面案例可供参考,日后有时间再补充。

一、Azkanban下载?

下载源码

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

或是到这边下载 https://github.com/azkaban/azkaban/releases
如果以上比较慢,还可以使用下面所述去下载,但要指定版本:

wget https://github.com/azkaban/azkaban/archive/3.90.0.tar.gz

我们这里选用azkaban3.90.0这个版本自己进行重新编译,编译完成之后得到我们需要的 安装包进行安装,编译需要使用jdk1.8的版本来进行编译,如果编译服务器使用的jdk版本 是1.7的,记得切换成jdk1.8。

#解压缩目录位置/opt/servers,目前所在层级/opt
tar -zxvf 3.90.0.tar.gz -C ./servers/
cd /opt/servers/azkaban-3.90.0

#Azkaban 的编译过程需要用 Git 下载部分 JAR 包,所以需要预先安装 Git:
 yum -y install git

#把gcc当成c语言编译器, g++当成c++语言编译器
yum ‐y install gcc‐c++

优化编译速度,查看azkaban-3.90.0/gradle/wrapper/gradle-wrapper.properties文件,

vim azkaban-3.90.0/gradle/wrapper/gradle-wrapper.properties

可以看到以下这一行,可以看到依赖的gradle为4.6版本

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

从https://gradle.org/releases/下载对应版本的gradle的zip包,我们这次安装gradle-4.6-all.zip如下图选择complete,放到/data/azkaban-3.90.0/gradle/wrapper目录下。
在这里插入图片描述
然后修改gradle-wrapper.properties文件的最后一行,改为:

# distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
distributionUrl=gradle-4.6-all.zip
# 将gradlew 进行编译 第一次运行时,此过程时间会比较长
# -x test 表示跳过测试
./gradlew build installDist ‐x test

如果出现下图就是失败
在这里插入图片描述
这次编译就使用下面这句语句,但切记编译失败,需要清理后,再次编译

#先清理
./gradlew clean

#在编译选择其中一个命令
./gradlew build
./gradlew build installDist
./gradlew build installDist -x test
./gradlew distTar

914JJ 最终是用是./gradlew build installDist -x test 编译成功的。成功会出现下面图形:
在这里插入图片描述
因为要下载大量的 Jar 包,下载速度根据网络情况而定,我是挺快,但传闻下载不会很快,看其他博主说「编译可能会被强行终止,这时候重复执行编译命令即可,gradle 会把已经下载的 JAR 缓存到本地,所以不用担心会重复下载 JAR 包。」

二、安装配置

编译完成,我们得到如下文件
azkaban-exec-server存放目录

/opt/servers/azkaban-3.90.0/azkaban‐exec‐server/build/distributions

azkaban-web-server存放目录

/opt/servers/azkaban-3.90.0/azkaban‐web‐server/build/distributions

azkaban-solo-server存放目录

/opt/servers/azkaban-3.90.0/azkaban‐solo‐server/build/distributions

azkaban two server模式下需要的C程序在这个路径下面

/opt/servers/azkaban-3.90.0/azkaban‐solo‐server/build/distributions

数据库脚本文件在这个路径下面

/opt/servers/azkaban-3.90.0/azkaban‐db/build/install/azkaban‐db

1.Azkaban 单服务模式安装与使用

1.拷贝我们所需的文件并解压

代码如下(示例):分别复制下面方框内4个文件夹里编译后的.tar.gz文件到 /data/azkaban,并解压

mkdir -p /data/azkaban
cd  /data/azkaban-3.90.0

cp azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz /data/azkaban
cp azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /data/azkaban
cp azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz /data/azkaban
cp azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz /data/azkaban
cd /data/azkaban
tar -zxvf  azkaban-db-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/
tar -zxvf  azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/
tar -zxvf  azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/
tar -zxvf  azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/

我们可以在/data/azkaban/看到解压后所需要的数据信息。
在这里插入图片描述

2.Azkaban 单机服务模式安装与使用

所需软件 : azkaban-solo-server,azkaban 的solo server使用的是一个单节点的模式来进行启动服务的,只需要一个 azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz的安装包即可启动,所有的数据信息都是 保存在H2这个azkaban默认的数据当中,

2.1 修改时区配置文件

cd /data/azkaban/azkaban-solo-server-0.1.0-SNAPSHOT/conf/
vim azkaban.properties

修改时区。因为我们的linux 时区设定为上海,所以最好要保持时区上的一致性。

#default.timezone.id=America/Los_Angeles
default.timezone.id=Asia/Shanghai

有些关键特别提出来说明

#页面访问的端口号 
jetty.port=8081
#单机版所保持的数据信息类型,位置
database.type=h2
h2.path=./h2

2.2修改commonprivate.properties配置文件

cd /data/azkaban/azkaban-solo-server-0.1.0-SNAPSHOT/plugins/jobtypes
vim commonprivate.properties

打开文件添加下面讯息:

execute.as.user=false 
#添加这一行是避免内存检查
memCheck.enabled=false

2.3 启动solo-server

cd /data/azkaban/azkaban‐solo‐server‐0.1.0‐SNAPSHOT 
#啟動
bin/start‐solo.sh
#斷掉
bin/shutdown-solo.sh

如果不回到solo目录会出现Cannot find ‘database.properties’
可以参考链接去修正bug: link.

如果出现 Error: HADOOP_HOME is not set. Hadoop job types will not run properly. 就在/etc/profile设定HADOOP_HOME
在这里插入图片描述
如果出现plugin path plugins/triggers doesn’t exist!就出现对应的目录
在这里插入图片描述

如果出现 SocketConnector@0.0.0.0:8888: java.net.BindException: Address already in use,就是发现port 冲突,改azkaban.properties文件中的port
在这里插入图片描述
如果成功就可以输入jps 看到AzkabanSingleServer 的job
在这里插入图片描述

2.3 浏览器页面访问

浏览器页面访问
http://node03:8081/
在这里插入图片描述

如果出现 需要在 ./plugins 的文件夹下手动生成一个 triggers 的目录,否则启动日志会报错。但如果添加 triggers 文件夹后,登录页面时 500 并提示 Velocity could not be initialized! 那就删除 ./plugins/tirggers 文件夹。><"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值