azkaban的使用
0.1 webserver的conf中配置
azkaban.properties
# azkaban的个性化设置
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/opt/module/azkaban/server/web/
default.timezone.id=Asia/Shanghai
# Azkaban 用户管理器类
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/opt/module/azkaban/server/conf/azkaban-users.xml
#Loader for projects
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=bigdata113
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# 速度开发模式
velocity.dev.mode=false
# Azkaban Jetty服务器属性
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=/opt/module/azkaban/server/keystore
jetty.password=6194clllr
jetty.keypassword=6194clllr
jetty.truststore=/opt/module/azkaban/server/keystore
jetty.trustpassword=6194clllr
# Azkaban Executor 设置
executor.port=12321
# mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
azkaban-users.xml
<!--用户名设置-->
<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
<user username="metrics" password="metrics" roles="metrics"/>
<user username="admin" password="admin" roles="admin,metrics" />
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
0.2 executor的conf中配置
azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai
# Azkaban JobTypes 插件
azkaban.jobtype.plugin.dir=plugins/jobtypes
#Loader for projects
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=bigdata113
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Azkaban Executor 设置
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
1 azkaban使用
1.1 azkaban的运行指令
azkaban的运行需要将指令编写出**.job**格式的文件,在打包成zip文件,提交到web页面后才可以运行指令
1.1.1 运行shell脚本
# 指定运行方式
type=command
# shell命令,注意使用绝对路径
command=echo 'this is first job'
1.1.2 运行jar文件
# 指定运行方式
type=javaprocess
# jar包全类名
java.class=CreateTestData.CreateTestData
# 指定jar包名字,注意使用绝对路径
classpath=/opt/module/azkaban/lib/*
1.1.3 job之间的并联
注意: 打包到一个zip上传
job1.job
# 指定运行方式
type=command
# shell命令,注意使用绝对路径
command=/opt/module/hadoop-3.1.2/bin/hadoop fs -put /opt/test/word.txt /
job2.job
# 指定运行方式
type=command
# shell命令,注意使用绝对路径
command=/opt/module/hadoop-3.1.2/bin/hadoop jar /opt/module/hadoop-
3.1.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount /word.txt /out
# 指定先运行的文件,注意没有job后缀,需要多个依赖时,使用 ,(英文逗号)对依赖名相隔开
dependencies=job1
1.1.4 子流程
总共需要6个文件
# 文件名:start (独立)
type=command
command=echo "this is start"
# 文件名:1 (独立)
type=command
command=echo "this is 1"
# 文件名:2 (独立)
type=command
command=echo "this is 2"
# 文件名:3 (3子流程中依赖1,2,外依赖Start)
type=command
command=echo "this is 3"
dependencies=1,2
# 文件名:subflow (3的子流程)
type=flow
# 这里注意是 3 的子流程
flow.name=3
# 依赖于start
dependencies=start
# 文件名:4 (依赖3的子流程)
type=command
command=echo "this is 4"
dependencies=subflow
1.2 azkaban的启动
1.2.1 注意先启动executor服务器
在executor服务器目录下执行启动命令
[itstar@bigdata111 executor]$ pwd
/opt/module/azkaban/executor
[itstar@bigdata111 executor]$ bin/azkaban-executor-start.sh
注意:
先执行executor,再执行web,避免Web Server会因为找不到执行器启动失败。
1.2.2 注意后启动web服务器
在azkaban web服务器目录下执行启动命令
[itstar@bigdata111 server]$ pwd
/opt/module/azkaban/server
[itstar@bigdata111 server]$ bin/azkaban-web-start.sh
jps查看进程
[itstar@bigdata111 server]$ jps
3601 AzkabanExecutorServer
5880 Jps
3661 AzkabanWebServer
plus 集群时间同步为网络时间
yum -y install ntp ntpdate
ntpdate ntp1.aliyun.com
hwclock --systohc
date