【Azkaban的保姆级安装部署】


前言

本文使用的Azkaban版本是3.84.4源码包
从此处下载源码包https://github.com/azkaban/azkaban
如图所示,选择版本在这里插入图片描述
在这里插入图片描述


一、Azkaban是什么?

Azkaban是一个由LinkedIn创建的批处理工作流作业调度器,用于运行Hadoop作业。Azkaban通过作业依赖关系解决排序问题,并提供一个易于使用的web用户界面来维护和跟踪您的工作流程。

特性

  • Distributed Multiple Executor | 分布式多执行器
  • MySQL Retry | MySQL 重试
  • Friendly UI | 友好的用户界面
  • Conditional Workflow | 条件工作流
  • Data Triggers | 数据触发器
  • High Security | 高安全性
  • Support plug-in extensions, from Web UI to job Execution | 支持插件扩展,从Web UI到作业执行
  • Full Authorship management system | 完整的作者管理系统

二、从源代码构建

1、 Azkaban 构建使用 Gradle(使用 Gradle 包装器 gradlew 运行时自动下载)并且需要 Java 8 或更高版本。

在虚拟机的azkaban根目录中使用gradlew命令构建时出现拒绝连接的错误(解压完,什么配置都没改的情况下)

先跳过此构建步骤,完成以下这几步操作,最后再构建

./gradlew build

在这里插入图片描述
查看Azkaban根目录的这个文件,这个文件用于配置 gradle 的全局属性。(修改一下镜像源,下载jar包的速度会变快很多)
在这里插入图片描述
在这个文件的最底下添加如下代码,将 镜像源 换成阿里云的Maven镜像源

vim gradle.properties
# 阿里云 Maven 镜像源
repositories.grails.default = https://maven.aliyun.com/repository/public
# 可选项,添加清华开源镜像源
repositories.grails.default.1 = https://mirrors.tuna.tsinghua.edu.cn/maven/repos/public
# 可选项,添加 Maven 中央仓库镜像源
repositories.grails.default.2 = https://repo.maven.apache.org/maven2

azkaban-3.84.4/gradle/wrapper的路径下查看gradle-wrapper.properties文件,发现会自动下载gradle-4.6-all.zip这个包,但是速度很慢。(另辟蹊径,直接去官网下了一个对应的包,将这个包放在相同的目录底下,将这个文件的内容修改,指定使用本地文件)修改后的文件如第二张图
在这里插入图片描述
在这里插入图片描述
gradle-4.6-all.zip文件放的位置
在这里插入图片描述
gradle 构建此项目,还需要引入git的上面的一些jar包,需要下载一个git

yum install git

切换到azkaban的azkaban-web-server目录下,修改build.gradle文件的这个内容,将其换源,这里使用的是清华源https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/

在这里插入图片描述

开始编译 ./gradlew build installDist -x test (如果出现编译失败,多执行几次该命令,因为网络等各种问题,出现编译失败属于是正常现象,完全下好大概需要挺久,下载的jar包很多)

出现关于以下错误时,在/etc/profile添加nodejs的环境变量,路径在azkaban的根目录azkaban-web-server/build/nodejs/node-v8.10.0-linux-x64这个路径加入环境变量中

# 注意路径,根据实际情况来写,这个只是一个参考
export NPM_HOME=/opt/module/azkaban-3.84.4/azkaban-web-server/build/nodejs/node-v8.10.0-linux-x64
export PATH=$NPM_HOME/bin:$PATH

在这里插入图片描述

若还出现问题就是网络问题了,多试几次,此贴是实际经历过来的,多构建几次【附上成功截图】
在这里插入图片描述


2、Azkaban部署

2.1、单机单服务模式(solo 服务器模式)

单服务器模式下,数据库是嵌入式 H2,并且 Web 服务器和执行器服务器都在同一进程中运行。

1.克隆仓库

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

-2.启动服务器(上面步骤已经成功的构建好了azkaban)_

# 在 azkaban 的根目录下切换到 azkaban-solo-server/build/distributions 目录底下
cd azkaban-solo-server/build/distributions
# 解压一下 azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz => 解压tar.gz后缀的文件
tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
# 解压好之后,进入这个文件目录,执行这个命令,启动服务器
./bin/start-solo.sh

jps服务里面出现这个说明启动成功了,再进入http://localhost:8081/地址查看,账号密码查看这个文件conf/azkaban-users.xm,要修改账号和密码,也是修改这个文件的内容
在这里插入图片描述
/user在这里插入图片描述
如果要添加账号的话 => username和password属性是必填的,其他的选填,要使用<user />标签//其他关于group和roles的内容自查

<azkaban-users>
   <user username="myusername" password="mypassword" roles="a" groups="mygroup" / >
   <user username="myusername2" password="mypassword2" roles="a, b" groups="ga, gb" / >
   ...
 </azkaban-users>
# 切换到 azkaban-solo-server-0.1.0-SNAPSHOT 这个文件的根目录,执行此命令关掉 solo 服务
./bin/shutdown-solo.sh

3.在此单机服务的azkaban solo服务器就已完全配好,默认情况下,solo服务器会监听8081端口,打开浏览器查看 http://localhost:8081/ 这个地址

2.2、分布式多执行器模式

多执行器模式适用于最严重的生产环境。其数据库应由具有主从设置的 MySQL 实例支持。Web 服务器和执行器服务器最好在不同的主机上运行,​​以便升级和维护不会影响用户。这种多主机设置给 Azkaban 带来了强大且可扩展的方面。

配置数据库【mysql-5.7】

# 需要在 MySQL数据库中为azkban创建一个数据库
create database azkaban;
# 给azkaban设置一个用户用于管理azkaban数据库,username不要使用 azkaban 命名,密码不要设置的太简单,mysql数据库对用户的密码有严格策略要求,要包含大小写字母、数字和符号,要修改密码强度的可以去看我装mysql的文章,有介绍
create user 'userazk'@'%' identified by 'Abc123...';
# 给这个用户设置 增删查改 权限
grant select,insert,update,delete on azkaban.* to 'userazk'@'%' with grant option;

更改mysql数据库对于数据包大小的要求,vim /etc/my.cnf 在【mysqld】底下任意位置写进去,默认情况下,MySQL 的允许数据包大小可能非常低,修改完用这个命令重新启动一下MySQL /sbin/service mysqld restart

max_allowed_packet=1024M

创建 azkaban 表,执行构建过程中生成的sql,在azkaban-3.84.4/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT路径底下执行以下命令

# 直接在外部终端执行sql语句
mysql -uroot -p azkaban < create-all-sql-0.1.0-SNAPSHOT.sql
# 在mysql命令行终端执行外部sql代码,要先切换到azkaban数据库
use azkaban;
source 【这里填sql的完整路径】
  • 配置 执行器服务器(这里只使用了一个执行器,可以通过分发部署多个执行器安装分发包来设置多个执行器。)

切换到azkaban-exec-server/build/distributions 这个目录下,解压tar文件,解压完进入该文件夹,修改conf/azkaban.properties这个文件关于mysql的相关设置,与上面的设置相对应,修改user=userazkpassword=Abc123...
在这里插入图片描述
启动执行器服务器,在azkaban-exec-server-0.1.0-SNAPSHOT目录下执行以下启动命令,启动成功后,jps会显示如下进程,此时,执行器就可以用了

./bin/start-exec.sh
# 启动执行器完成之后使用以下命令激活执行器,在azkaban-exec-server-0.1.0-SNAPSHOT根目录下执行,36305是博主执行器给出的端口,具体的在`azkaban-exec-server-0.1.0-SNAPSHOT`根目录文件底下有,启动完执行器之后会出现该文件,查看该文件,然后把端口替换掉博主写的端口
curl -G "localhost:【填自己的端口号】/executor?action=activate" && echo

在这里插入图片描述
执行器激活成功的反馈
在这里插入图片描述

配置web服务器

在azkaban根目录底下切换到azkaban-web-server/build/distributions此目录下,解压tar文件,进入解压后的文件夹目录

修改conf/azkaban.properties文件的mysql 用户名和密码 如图:
在这里插入图片描述
要自定义azkban的用户和密码,修改azkaban-users.xml文件的内容,怎么添加,上面单机模式中有介绍【此处web服务器的配置没有修改,使用的默认的用户和密码均为azkban
在这里插入图片描述

启动 web 服务器,在azkaban-web-server-0.1.0-SNAPSHOT根目录底下使用此命令,启动成功会有如图的jps进程

./bin/start-web.sh

在这里插入图片描述

打开网页进入http://localhost:8081/网页,如图成功进入在这里插入图片描述


总结

安装azkaban还是有点繁琐的,多多跟博主沟通交流,给博主一点更文的动力→→→→→→→

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

操练小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值