1、Azkaban
官网:https://azkaban.github.io/
Azkaban是一款开源工作流管理器
Azkaban是在LinkedIn上创建的批处理工作流作业调度程序,用于运行Hadoop作业
Azkaban通过作业依赖性解决订单,并提供易于使用的Web用户界面来维护和跟踪您的工作流程
工作流作业:
flume->hdfs->mr->hive建表->导入load data脚本
自动化调度
2、Azkaban安装部署
1)解压
首先将压缩包放进/root/hd/azkaban里面
azkaban-executor-server-2.5.0.tar.gz –>executor
azkaban-sql-script-2.5.0.tar.gz –>azkaban-2.5.0
azkaban-web-server-2.5.0.tar.gz –>server
tar -zxvf *.tar.gz
2)进入mysql创建azkaban库,然后将解压好的脚本导入
create database azkaban;
use azkaban;
source /root/hd/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
3)生成证书(https生成器)
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
(回车,不用填,到那个CN=Unknown那行下面有个判断,输入y,后面一行继续回车)
将keystore移动到server文件夹下
4)时间同步配置
任务调度,所以和本地时间保持一致
开启交互窗口:
sudo date -s ”
hwclock -w
5)修改server端配置文件
cd /root/hd/azkaban/server/conf
vi 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
# azkaban目前只支持mysql
database.
type=mysql
mysql.
port=3306
# 当前主机名
mysql.
host=hsiehchou121
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=123456
jetty.
keypassword=123456
jetty.
truststore=keystore
jetty.
trustpassword=123456
# Azkaban Executor settings
executor.
port=12321
# mail settings
mail.
sender=@qq.com
mail.
host=smtp.qq.com
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"/>
<!--增加这一行 role管理员权限:admin-->
<user username="admin" password="admin" roles="admin,metrics"/>
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
6)修改excutor端配置文件
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=hsiehchou121
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
3、azkaban实战
hdfs->hive建表->导入
1)job1.job
type=
command
command=
echo
'Hello World!'
打包成zip包上传到azkaban,执行
2)job2(a.job和b.job)
a.job
type=
command
command=
echo
'li'
b.job
type=command
dependencies=a
command=echo
'666'
打包成zip包上传到azkaban,执行
3)startyarn.job
type=command
command=/root/hd/hadoop-
2.8.
4/sbin/start-yarn.sh
打包成zip包上传到azkaban,执行
4)mapreduce.job
type=command
command=
/root/hd
/hadoop-2.8.4/bin
/hadoop jar hadoop-mapreduce-examples-2.8.4.jar wordcount /wc /wc/
out
打包成zip包上传到azkaban,执行
5)hive操作
hive.sql
use
default;
create
table azhive(
id
int,
name
string)
row
format
delimited
fields
terminated
by
'\t';
load
data inpath
'/hsiehchou.txt'
into
table azhive;
hivef.job
type=
command
command=/root/hd/hive/bin/hive
-f
'hive.sql'
打包成zip包上传到azkaban,执行