azkaban资源下载及简单使用

azkaban工作流调度器

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

azkaban 的资源下载链接:https://pan.baidu.com/s/1XGSg2rBU3jJruOnGm7x1VQ 密码:thd3

各种调度工具特性对比:

特性HamakeOozieAzkabanCascading
工作流描述语言XMLXML (xPDL based)text file with key/value pairsJava API
依赖机制data-drivenexplicitexplicitexplicit
是否要web容器NoYesYesNo
进度跟踪console/log messagesweb pageweb pageJava API
Hadoop job调度支持noyesyesyes
运行模式command line utilitydaemondaemonAPI
Pig支持yesyesyesyes
事件通知nononoyes
需要安装noyesyesno
支持的hadoop版本0.18+0.20+currently unknown0.18+
重试支持noworkflownode evelyesyes
运行任意命令yesyesyesyes
Amazon EMR支持yesnocurrently unknownyes

Azkaban 安装部署
1. 下载 azkaban web服务器和执行服务器, sql脚本, 解压在/usr/local/azkaban/下并重命名

azkaban-executor-2.5.0.zip azkaban-web-2.5.0.zip azkaban-sql-script-2.5.0.tar.gz

2. 登陆mysql, 设置编码为utf8, 为Azkaban创建数据库, 并授权, 导入脚本
  • create database azkaban;
  • grant all on azkaban.* to 'root'@'%' identified by 'root';
  • flush privileges;
  • use azkaban;
  • source /usr/local/azkaban/azkaban-sql/create-all-sql-2.5.0.sql;
3. 创建SSL配置

keytool -keystore keystore -alias jetty -genkey -keyalg RSA (记住密码)

tzselect 使用交互式命令设置时区(Asia/Shanghai, 选北京就是上海)

cp keystore /usr/local/azkaban/azkaban-web 将当前目录生成 keystore证书文件拷贝到web服务器根目录中

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 拷贝该时区文件,覆盖系统本地时区配置

3. azkaban web服务器配置及用户配置, 进入web服务器安装目录conf
web服务器配置如下:

vim azkaban.properties

#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=192.168.33.205
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=111111
jetty.keypassword=111111
jetty.truststore=keystore
jetty.trustpassword=111111

# Azkaban Executor settings
executor.port=12321

# mail settings
# 发送邮箱
mail.sender=
#发送邮箱smtp地址
mail.host=
# 任务失败时发送邮件的地址
job.failure.email=
# 任务成功时发送邮件的地址
job.success.email=

lockdown.create.projects=false
cache.directory=cache
用户配置如下:

vim azkaban-users.xml

<azkaban-users>
        <user username="azkaban" password="azkaban" roles="admin" groups="azkaban"/>
        <user username="metrics" password="metrics" roles="metrics"/>
        <!-- 设置登录 https://192.168.33.205:8443的账号和密码 -->
        <user username="admin" password="admin" roles="admin,metrics"/>
        <role name="admin" permissions="ADMIN" />
        <role name="metrics" permissions="METRICS"/>
</azkaban-users>
4. azkaban executor服务器配置, 进入执行服务器安装目录conf

vim azkaban.properties

#Azkaban
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=192.168.33.205
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
5. 启动各个服务器
azkaban web服务器的启动与关闭, 注意: 只能在web服务器根目录运行

bin/azkaban-web-start.sh

bin/azkaban-web-shutdown.sh

azkaban executor服务器的启动与关闭, 注意: 只能在执行服务器根目录运行

bin/azkaban-executor-start.sh

bin/azkaban-executor-shutdown.sh

6. 登录Web用户界面, 进行操作

网址示例: https://192.168.33.205:8443


Azkaban实战

Azkaba内置的任务类型支持 command、java

操作步骤:

第一步. 创建 job描述文件

command类型单一job示例

vim command.job

# command.job
type=command
command=echo 'hello'
command类型多job工作流flow示例

vim foo.job

# foo.job
type=command
command=echo foo
# bar.job
type=command
dependencies=foo
command=echo bar
HDFS操作任务示例

vim fs.job

# fs.job
type=command
command=hadoop fs -mkdir /azkaban
MapReduce任务示例

vim mrwc.job

# mrwc.job
type=command
# 也可以将jar包放在mrwc.job的同级目录下, 与其一起压缩为zip文件
command=hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input/a.txt /input/output
HIVE脚本任务示例

vim hivef.job vim test.sql

# hivef.job
type=command
command=hive -f 'test.sql'
create database test_db;

第二步. 将所有 job资源文件打包压缩成 zip文件, 登录 azkaban的 web管理平台, 上传, 执行

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值