Azkaban安装部署及基础使用

Posted 脚丫先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azkaban安装部署及基础使用相关的知识,希望对你有一定的参考价值。

一、Azkaban安装部署

  • Azkaban官网: https://azkaban.github.io
  • 软件下载地址: https://github.com/azkaban/azkaban
  • 官方插件地址: https://github.com/azkaban/azkaban-plugins
  • 官方文档地址: http://azkaban.github.io/azkaban/docs/latest

1. 前置环境

2. Azkaban编译

获取Azkaban源码进行编译
可以访问Azkaban Github下载对应版本的源码包,我们课程中使用的是3.81.0版本,获取完成之后进行编译:

./gradlew installDist

编译完成之后我们在各个模块下的target下可以得到一系列的安装包,包括azkaban-db-0.1.0-SNAPSHOT.tar.gz、azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz和azkaban-web-server-0.1.0-SNAPSHOT.tar.gz等等,这三个是后面需要的。

3. 配置azkaban数据库

tar zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz
mv azkaban-db-0.1.0-SNAPSHOT /soft

#进入mysql交互模式,运行mysql的命令
mysql -uroot -p123456
#创建azkaban数据库
create database azkaban;
#创建相关表
use azkaban;
source /soft/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql;

#执行show table命令查看相关表
show tables;

4. 部署Azkaban-Web-Server

(1) 部署azkaban web server

tar zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
mv azkaban-web-server-0.1.0-SNAPSHOT /soft/home/azkaban-web-server

(2) 配置Azkaban-Web-Server

需要对conf目录下的azkaban.properties文件进行配置
azkaban.properties

# azkaban集群名称
azkaban.name=Test
azkaban.label=My Local Azkaban
# azkaban用户管理
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
# 端口信息,默认8081
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081
# 数据库链接配置
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=123456
mysql.numconnections=100
# 多executor模式
azkaban.use.multiple.executors=true
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1

azkaban-users.xml

<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>

  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>

azkaban 默认配置中有两个用户分别为azkaban和metrics,可以根据需要自行添加相关用户。

(3) 启动服务

注意:azkaban的启动必须要在azkaban的home目录下,执行bin/xxxx

bin/start-web.sh
# 查看相关进程
jps -m

5 部署Azkaban Exec Server

(1) 部署azkaban exec server

tar zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
mv azkaban-exec-server-0.1.0-SNAPSHOT /soft/home/azkaban-exec-server

(2) 配置Azkaban-Exec-Server
需要对conf目录下的azkaban.properties文件进行配置

azkaban.properties

# azkaban集群名称
azkaban.name=Test
azkaban.label=My Local Azkaban
# azkaban web server地址
azkaban.webserver.url=http://localhost:8081
# 数据库链接配置
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=123456
mysql.numconnections=100
# Executor配置
executor.maxThreads=50
executor.flow.threads=30

(3) 启动服务
注意:azkaban的启动必须要在azkaban的home目录下,执行bin/xxxx

bin/start-exec.sh
# 查看相关进程
jps -m

注意:azkaban exec server启动之后,还需要一步操作,需要我们激活当前的exec server,我们需要查看exec server日志,获取当前execserver的端口,然后通过访问url进行激活:

# 查看exec server启动日志,获取当前监听端口
tail -f logs/azkaban-execserver.log
# 通过访问url对当前execserver进行激活,将端口替换为你的端口即可
curl http://localhost:33750/executor?action=activate

端口可以在数据库里的:executors表

二、Azkaban示例

创建一个简单的command类型的任务。

mkdir cmd_test

vi cmd_test.job
# 新建x.job文件,并输入以下内容
#command
type=command
command=sh test.sh

vi test.sh
# 新建命令中需要的脚本文件
#!/bin/sh
echo "hello azkaban"

创建完成之后,对我们的cmd_test目录进行压缩,压缩成zip格式。

zip -r cmd_test.zip cmd_test

登录azkaban web界面http://xxxxxxx:8081。新建project,上传zip包,并执行任务。

新建project
在这里插入图片描述
上传任务包
在这里插入图片描述
执行任务
在这里插入图片描述
查看日志:
在这里插入图片描述

对于azkaban的基本使用就进行到这里。

以上是关于Azkaban安装部署及基础使用的主要内容,如果未能解决你的问题,请参考以下文章

03-azkaban安装部署

azkaban的部署以及简单使用

Azkaban安装

Azkaban

Azkaban

Azkaban2.5.0安装