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. 前置环境
- Java环境
- mysql数据库
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安装部署及基础使用的主要内容,如果未能解决你的问题,请参考以下文章