Azkaban 调度器
1.安装包:
azkaban-executor-server-2.5.0.tar.gz azkaban 执行服器
azkaban-sql-script-2.5.0.tar.gz azkaban sql脚本
azkaban-web-server-2.5.0.tar.gz azkaban web 服务器
2.解压
mkdir -p /root/azkaban
cd /root/azkaban
tar -zxvf azkaban-executor-server-2.5.0.tar.gz
tar -zxvf azkaban-sql-script-2.5.0.tar.gz
tar -zxvf azkaban-web-server-2.5.0.tar.gz
3.执行 azkaban-2.5.0 目录下的 SQL脚本:(实际为azkaban-sql-script-2.5.0下的SQL脚本)
mysql -uroot -padmin
create database azkaban;
use azkaban;
source /root/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
4.创建 SSL 配置(https)
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
提示设置keystor 的密码,并且输入两次密码:itcast
完成后将在/root/azkaban目录下生成文件:keystore
keystore 证书文件,将 keystore 拷贝到 azkaban-web-2.5.0 (azkaban web 服务器)根目录中: cp keystore /root/azkaban/azkaban-web-2.5.0
5.在 keystore 所在的 /root/azkaban/azkaban-web-2.5.0 目录下 执行 tzselect命令 进入交互式环境
1.cd /root/azkaban/azkaban-web-2.5.0
2.tzselect
6.拷贝该时区文件,覆盖系统本地时区配置:即把 Shanghai文件 覆盖 localtime文件
命令:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
7.修改 azkaban web 服务器 根目录下的conf目录中的 azkaban.properties 文件:
1.cd /root/azkaban/azkaban-web-2.5.0/conf
2.vim azkaban.properties
azkaban.name=Itcast Axkaban # 服务器 UI 名称,用于服务器上方显示的名字
default.timezone.id=Asia/Shanghai # 默认时区,已改为亚洲/上海 默认为美国
mysql.user=root # MySQL 用户
mysql.password=admin # MySQL 密码
jetty.password=itcast
jetty.keypassword=itcast
jetty.trustpassword=itcast
8.修改 azkaban 执行服务器 根目录下的conf目录中的 azkaban.properties 文件:
1.cd /root/azkaban/azkaban-executor-2.5.0/conf
2.vim azkaban.properties
default.timezone.id=Asia/Shanghai
mysql.database=azkaban
mysql.user=root
mysql.password=admin
9.修改 azkaban web 服务器 根目录下的conf目录中的 azkaban-users.xml 文件:
1.cd /root/azkaban/azkaban-web-2.5.0/conf
2.增加 管理员用户 vim azkaban-users.xml:
添加
10.启动 azkaban web 服务器 和 azkaban 执行服务器
1.启动 azkaban web 服务器,在 azkaban web 服务器目录下执行启动命令:
注:在 web 服务器根目录运行
1.cd /root/azkaban/azkaban-web-2.5.0/bin
2.chmod 777 azkaban-web-start.sh
3.cd ..
4.bin/azkaban-web-start.sh
2.启动 azkaban 执行服务器,在 azkaban 执行服务器下 执行启动命令:
注:只能要执行服务器根目录运行
1.cd /root/azkaban/azkaban-executor-2.5.0/bin
2.chmod 777 azkaban-executor-start.sh
3.cd ..
4.bin/azkaban-executor-start.sh ./
3.如果启动 azkaban web 服务器 或 azkaban 执行服务器 时 出现端口已经被占用的话,解决方式如下:
1.yum install lsof
2.此处azkaban web 服务器 的8443端口已经被占用:lsof -i:8443
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 4569 root 56u IPv6 7244465 0t0 TCP *:pcsync-https (LISTEN)
3.kill -9 4569
4.ps aux|grep Azkaban
5.kill -9 关闭Azkaban相关程序的进程号
4.启动完成后,在浏览器(建议使用谷歌浏览器)中输入:https://服务器 IP 地址:8443,即可访问 azkaban 服务了。
例子:https://192.168.25.100:8443/ 提示当前不安全,则无视,继续点击“继续前往”
5.在登录中输入 刚才新的用户名及密码( 中所设置),点击 login。
11.azkaban执行调度的例子:
注意:执行调度之前必须首先启动 azkaban web 服务器 和 azkaban 执行服务器
1.例子1
1.vim command1.job
#command.job
type=command
command=echo hello
2.把 command1.job 打包为 command1.zip(必须为zip格式)
3.进入 https://192.168.25.100:8443/,输入用户名"admin"及密码"admin"
4.点击“Create Project”,输入Name:command1,Description:command1,再点击“Create Project”。
5.点击“Upload”,选中 command1.zip 进行上传,再点击“Upload”。
6.成功创建“Project”后,在“Flow”一栏下点击“Execute”或“run job”即可弹出运行窗口。
7.弹出的运行窗口中,有“Schedule 定时调度”和“Execute 立即执行”两个按钮(执行调度之前必须首先启动 azkaban web 服务器 和 azkaban 执行服务器)
8.比如:“Schedule 定时调度”
9.“Execute 立即执行”:立即执行该“Project”
10.只要“Project”运行完成之后,便可在“History”一栏下 查看到“Project”的运行是否成功信息
11.如点击运行成功的“Project”一行,进入该“Project”查看详细运行信息,点击“Job List”一栏下的“Details”选项,
即可查看到“Project”运行结果信息和运行日志信息。
12.此时当前的“Project”显示的运行结果信息和运行日志信息为:
输入 hello 信息到当前日志信息中,并没有把 hello 信息输出到azkaban 执行服务器下,但azkaban 执行服务器下也有相应的执行信息
2.例子2
1.vim command2.job
#command.job
type=command
command=sh hello.sh
2.vim hello.sh
#!/bin/bash
echo 'hello' > /root/azkabanData/hello.txt
3.把 command2.job 和 hello.sh 一起打包为 command1.zip(必须为zip格式)
4.进入 https://192.168.25.100:8443/,输入用户名"admin"及密码"admin"
5.点击“Create Project”,输入Name:command2,Description:command2,再点击“Create Project”。
6.点击“Upload”,选中 command2.zip 进行上传,再点击“Upload”。
7.成功创建“Project”后,在“Flow”一栏下点击“Execute”或“run job”即可弹出运行窗口。
8.弹出的运行窗口中,有“Schedule 定时调度”和“Execute 立即执行”两个按钮(执行调度之前必须首先启动 azkaban web 服务器 和 azkaban 执行服务器)
9.比如:“Schedule 定时调度”
10.“Execute 立即执行”:立即执行该“Project”
11.只要“Project”运行完成之后,便可在“History”一栏下 查看到“Project”的运行是否成功信息
12.如点击运行成功的“Project”一行,进入该“Project”查看详细运行信息,点击“Job List”一栏下的“Details”选项,
即可查看到“Project”运行结果信息和运行日志信息。
13.把 'hello' 写入到 /root/azkabanData/hello.txt 文件中
3.例子3
1.vim fs.job
# fs.job
type=command
command=/root/hadoop/bin/hadoop fs -mkdir /azakabanData # hadoop根目录下的 /bin/hadoop目录路径
注意:此处还需要 启动Hadoop 集群(脚本一键启动),并且还需要同步每台机器的时间(ntpdate ntp6.aliyun.com)
1.启动 hdfs 集群:
cd /root/hadoop/sbin
./start-dfs.sh
2.启动yarn集群:
cd /root/hadoop/sbin
./start-yarn.sh
2.把 fs.job 打包为 fs.zip(必须为zip格式)
3.进入 https://192.168.25.100:8443/,输入用户名"admin"及密码"admin"
4.点击“Create Project”,输入Name:fs,Description:fs,再点击“Create Project”。
5.点击“Upload”,选中 fs.job 进行上传,再点击“Upload”。
6.成功创建“Project”后,在“Flow”一栏下点击“Execute”或“run job”即可弹出运行窗口。
7.弹出的运行窗口中,有“Schedule 定时调度”和“Execute 立即执行”两个按钮 (执行调度之前必须首先启动 azkaban web 服务器 和 azkaban 执行服务器)
8.比如:“Schedule 定时调度”
9.“Execute 立即执行”:立即执行该“Project”
10.只要“Project”运行完成之后,便可在“History”一栏下 查看到“Project”的运行是否成功信息
11.如点击运行成功的“Project”一行,进入该“Project”查看详细运行信息,点击“Job List”一栏下的“Details”选项,
即可查看到“Project”运行结果信息和运行日志信息。
12.进入 192.168.25.100:50070 即能看到 所创建的“/azakabanData”文件夹
4.例子4
itcast.job 依赖于 bar.job,bar.job 依赖于 foo.job。所以会先执行 foo.job,再执行 bar.job ,最后执行 itcast.job。
1.vim itcast.job
# itcast.job
type=command
dependencies=bar # itcast.job 依赖于 bar.job
command=echo itcast
2.vim bar.job
# bar.job
type=command
dependencies=foo # bar.job 依赖于 foo.job
command=echo bar
3.vim foo.job
# foo.job
type=command
command=echo foo
4.把 itcast.job、bar.job、foo.job 三者一起打包为 foo.zip(必须为zip格式)
5.进入 https://192.168.25.100:8443/,输入用户名"admin"及密码"admin"
6.点击“Create Project”,输入Name:foo,Description:foo,再点击“Create Project”。
7.点击“Upload”,选中 foo.zip 进行上传,再点击“Upload”。
8.成功创建“Project”后,在“Flow”一栏下点击“Execute”或“run job”即可弹出运行窗口。
9.弹出的运行窗口中,有“Schedule 定时调度”和“Execute 立即执行”两个按钮(执行调度之前必须首先启动 azkaban web 服务器 和 azkaban 执行服务器)
10.比如:“Schedule 定时调度”
11.“Execute 立即执行”:立即执行该“Project”
12.只要“Project”运行完成之后,便可在“History”一栏下 查看到“Project”的运行是否成功信息
13.如点击运行成功的“Project”一行,进入该“Project”查看详细运行信息,点击“Job List”一栏下的“Details”选项,
即可查看到“Project”运行结果信息和运行日志信息。
5.例子5
1.vim mrpi.job
# mrpi.job
type=command
command=/root/hadoop/bin/hadoop jar hadoop-mapreduce-examples-2.6.1.jar pi 5 5
# hadoop根目录下的 /bin/hadoop目录路径。pi 5 5 表示计算计算π值
# 计算圆周率:cd /root/hadoop/share/hadoop/mapreduce
# hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 4 4
注意:此处还需要 启动Hadoop 集群(脚本一键启动),并且还需要同步每台机器的时间(ntpdate ntp6.aliyun.com)
1.启动 hdfs 集群:
cd /root/hadoop/sbin
./start-dfs.sh
2.启动yarn集群:
cd /root/hadoop/sbin
./start-yarn.sh
2.把 mrpi.job 和 hadoop-mapreduce-examples-2.6.1.jar 一起打包为 mrpi.zip(必须为zip格式)
3.进入 https://192.168.25.100:8443/,输入用户名"admin"及密码"admin"
4.点击“Create Project”,输入Name:mrpi,Description:mrpi,再点击“Create Project”。
5.点击“Upload”,选中 mrpi.zip 进行上传,再点击“Upload”。
6.成功创建“Project”后,在“Flow”一栏下点击“Execute”或“run job”即可弹出运行窗口。
7.弹出的运行窗口中,有“Schedule 定时调度”和“Execute 立即执行”两个按钮 (执行调度之前必须首先启动 azkaban web 服务器 和 azkaban 执行服务器)
8.比如:“Schedule 定时调度”
9.“Execute 立即执行”:立即执行该“Project”
10.只要“Project”运行完成之后,便可在“History”一栏下 查看到“Project”的运行是否成功信息
11.如点击运行成功的“Project”一行,进入该“Project”查看详细运行信息,点击“Job List”一栏下的“Details”选项,
即可查看到“Project”运行结果信息和运行日志信息。
12.可进入 192.168.25.100:8088/cluster 查看到执行的 mapreduce任务
5.例子6
1.vim hivef.job
# hivef.job
type=command
command=/root/hive/bin/hive -f 'test.sql'
2.test.sql
use default;
drop table aztest;
create table aztest(id int,name string) row format delimited fields terminated by ',';
load data inpath '/azakabanData/hiveinput' into table aztest;
create table azres as select id from aztest; # 此SQL会交由mapreduce程序执行,并且在yarn集群集群中执行,可在 192.168.25.100:8088中查看任务
insert overwrite directory '/azakabanData/hiveoutput' select count(1) from aztest;
# 此SQL会交由mapreduce程序执行,并且在yarn集群集群中执行,可在 192.168.25.100:8088中查看任务
注意:此处还需要 启动Hadoop 集群(脚本一键启动),并且还需要同步每台机器的时间(ntpdate ntp6.aliyun.com)
1.启动 hdfs 集群:
cd /root/hadoop/sbin
./start-dfs.sh
2.启动yarn集群:
cd /root/hadoop/sbin
./start-yarn.sh
3./root/azkabanData/test.txt 结构化数据的文件:
1,asd
2,zxc
3,qwe
4.把 结构化数据的文件test.txt 放到 /azakabanData/hiveinput 目录下
hadoop fs -mkdir /azakabanData/hiveinput
hadoop fs -put /root/azkabanData/test.txt /azakabanData/hiveinput
5.把 hivef.job 和 test.sql 一起打包为 hivef.zip(必须为zip格式)
6.进入 https://192.168.25.100:8443/,输入用户名"admin"及密码"admin"
7.点击“Create Project”,输入Name:hivef,Description:hivef,再点击“Create Project”。
8.点击“Upload”,选中 hivef.zip 进行上传,再点击“Upload”。
9.成功创建“Project”后,在“Flow”一栏下点击“Execute”或“run job”即可弹出运行窗口。
10.弹出的运行窗口中,有“Schedule 定时调度”和“Execute 立即执行”两个按钮 (执行调度之前必须首先启动 azkaban web 服务器 和 azkaban 执行服务器)
11.比如:“Schedule 定时调度”
12.“Execute 立即执行”:立即执行该“Project”
13.只要“Project”运行完成之后,便可在“History”一栏下 查看到“Project”的运行是否成功信息
14.如点击运行成功的“Project”一行,进入该“Project”查看详细运行信息,点击“Job List”一栏下的“Details”选项,
即可查看到“Project”运行结果信息和运行日志信息。
15.可进入 192.168.25.100:8088/cluster 查看到执行的 mapreduce任务。
下面两条SQL会交由mapreduce程序执行,并且在yarn集群集群中执行,可在 192.168.25.100:8088中查看任务
create table azres as select id from aztest;
insert overwrite directory '/azakabanData/hiveoutput' select count(1) from aztest;
16.启动 mysql 版的 Hive,本地路径下启动hive
本地连接方式:
cd /root/hive/bin
./hive
17.查看hive数据仓库中的aztest、azres表
use default;
show tables;
select * from aztest;
select * from azres;
18.进入 192.168.25.100:50070 查看:
创建有 /azakabanData/hiveoutput 目录,该目录下还存在记录有“执行select count(1) from aztest; 结果数据”的文件
8.工作流调度器
1.工作流调度系统产生背景
一个完整的数据分析系统通常都是由大量任务单元组成:shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等。
各个任务单元之间存在时间先后依赖关系。
为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。
2.工作流调度实现方式
简单的任务调度:直接使用 linux 的 crontab 来定义,但是缺点也是比较明显,无法设置依赖。
复杂的任务调度:自主开发调度平台、使用开源调度系统,比如 azkaban、ooize、Zeus 等。
其中知名度比较高的是 Apache Oozie, 但是其配置工作流的过程是编写大量的 XML配置,而且代码复杂度比较高,不易于二次开发。
3.Azkaban 调度器
1.Azkaban 介绍
Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。
Azkaban 使用 job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。
2.Azkaban 功能特点:
提供功能清晰,简单易用的 Web UI 界面
提供 job 配置文件快速建立任务和任务之间的依赖关系
提供模块化和可插拔的插件机制,原生支持 command、Java、Hive、Pig、Hadoop
基于 Java 开发,代码结构清晰,易于二次开发
3.Azkaban 安装部署
1.Azkaban 的组成如下:
mysql 服务器:用于存储项目、日志或者执行计划之类的信息
web 服务器:使用 Jetty 对外提供 web 服务,使用户可以通过 web 页面方便管理
executor 服务器:负责具体的工作流的提交、执行。
2.Azkaban 有两种部署方式:solo server mode 和 cluster server mode。
1.solo server mode(单机模式):
该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是 AzkabanSingleServer。
可以使用自带的 H2 数据库或者配置 mysql 数据。该模式适用于小规模的使用。
其实在单机模式中,AzkabanSingleServer 进程只是把 AzkabanWebServer 和 AzkabanExecutorServer 合到一起启动而已。
2.cluster server mode(集群模式):
该模式使用 MySQL 数据库,webServer 和 executorServer 运行在不同进程中,该模式适用于大规模应用。
3.安装部署之前的 准备工作
1.Azkaban Web 服务器:azkaban-web-server-2.5.0.tar.gz
2.Azkaban 执行服务器:azkaban-executor-server-2.5.0.tar.gz
3.MySQL:本文档中默认已安装好 mysql 服务器。
下载地址:http://azkaban.github.io/downloads.html
4.上传安装包
将安装包上传到集群,最好上传到安装 hive、sqoop 的机器上,方便命令的执行。
新建 azkaban 目录,用于存放 azkaban 运行程序。
4.azkaban web 服务器安装
1.解压 azkaban-web-server-2.5.0.tar.gz
命令 tar –zxvf azkaban-web-server-2.5.0.tar.gz
2.将解压后的 azkaban-web-server-2.5.0 移动到 azkaban 目录中,并重新命名 webserver
命令 mv azkaban-web-server-2.5.0 ../azkaban
cd ../azkaban
mv azkaban-web-server-2.5.0 server
5.azkaban 执行服器安装
1.解压 azkaban-executor-server-2.5.0.tar.gz
命令 tar –zxvf azkaban-executor-server-2.5.0.tar.gz
2.将解压后的 azkaban-executor-server-2.5.0 移动到 azkaban 目录中,并重新命名 executor
命令 mv azkaban-executor-server-2.5.0 ../azkaban
cd ../azkaban
mv azkaban-executor-server-2.5.0 executor
6.azkaban 脚本导入
1.解压 azkaban-sql-script-2.5.0.tar.gz
命令 tar –zxvf azkaban-sql-script-2.5.0.tar.gz
2.将解压后的 mysql 脚本,导入到 mysql 中
进入 mysql
create database azkaban;
use azkaban;
source /home/hadoop/azkaban-2.5.0/create-all-sql-2.5.0.sql;
7.创建 SSL 配置(https)
1.命令 keytool -keystore keystore -alias jetty -genkey -keyalg RSA
运行此命令后,会提示输入当前生成 keystor 的密码及相应信息,输入的密码请劳记,
2.信息如下
输入 keystore 密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]: CN
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?
[否]: y
输入的主密码
(如果和 keystore 密码相同,按回车)
再次输入新密码
3.完成上述工作后,将在当前目录生成 keystore 证书文件,将 keystore 拷贝到 azkaban web 服务器根目录中。
如 cp keystore azkaban/webserver
8.配置文件
1.先配置好服务器节点上的时区
先生成时区配置文件 Asia/Shanghai,用交互式命令 tzselect 即可
拷贝该时区文件,覆盖系统本地时区配置
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.azkaban web 服务器配置
进入 azkaban web 服务器安装目录 conf 目录,修改 azkaban.properties 文件
#Azkaban Personalization Settings
azkaban.name=Test #服务器 UI 名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI 颜色
azkaban.default.servlet.path=/index
web.resource.dir=web/ #默认根 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 # global 配置文件所在位置
azkaban.project.dir=projects
database.type=mysql #数据库类型
mysql.port=3306 #端口号
mysql.host=hadoop03 #数据库连接 IP
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=root #数据库密码
mysql.numconnections=100 #最大连接数
# Velocity dev mode
velocity.dev.mode=false
# Jetty 服务器属性.
jetty.maxThreads=25 #最大线程数
jetty.ssl.port=8443 #Jetty SSL 端口
jetty.port=8081 #Jetty 端口
jetty.keystore=keystore #SSL 文件名
jetty.password=123456 #SSL 文件密码
jetty.keypassword=123456 #Jetty 主密码 与 keystore 文件相同
jetty.truststore=keystore #SSL 文件名
jetty.trustpassword=123456 # SSL 文件密码
# 执行服务器属性
executor.port=12321 #执行服务器端口
# 邮件设置
[email protected] #发送邮箱
mail.host=smtp.163.com #发送邮箱 smtp 地址
mail.user=xxxxxxxx #发送邮件时显示的名称
mail.password=********** #邮箱密码
[email protected] #任务失败时发送邮件的地址
[email protected] #任务成功时发送邮件的地址
lockdown.create.projects=false
cache.directory=cache #缓存目录
3.azkaban 执行服务器配置
进入执行服务器安装目录 conf,修改 azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai #时区
# Azkaban JobTypes 插件配置
azkaban.jobtype.plugin.dir=plugins/jobtypes #jobtype 插件所在位置
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
#数据库设置
database.type=mysql #数据库类型(目前只支持 mysql)
mysql.port=3306 #数据库端口号
mysql.host=192.168.20.200 #数据库 IP 地址
mysql.database=azkaban #数据库实例名
mysql.user=azkaban #数据库用户名
mysql.password=oracle #数据库密码
mysql.numconnections=100 #最大连接数
# 执行服务器配置
executor.maxThreads=50 #最大线程数
executor.port=12321 #端口号(如修改,请与 web 服务中一致)
executor.flow.threads=30 #线程数
4.用户配置
进入 azkaban web 服务器 conf 目录,修改 azkaban-users.xml
vi azkaban-users.xml 增加 管理员用户
9.启动 web 服务器
1.在 azkaban web 服务器目录下执行启动命令:bin/azkaban-web-start.sh
注:在 web 服务器根目录运行
2.执行服务器
在执行服务器目录下执行启动命令:bin/azkaban-executor-start.sh ./
注:只能要执行服务器根目录运行
3.启动完成后,在浏览器(建议使用谷歌浏览器)中输入 https://服务器 IP 地址:8443,即可访问 azkaban 服务了。
在登录中输入刚才新的户用名及密码,点击 login。
4.Azkaban 实战
1.Command 类型单一 job 示例
1.创建 job 描述文件 :vi command.job
#command.job
type=command
command=echo 'hello'
2.将 job 资源文件打包成 zip 文件
zip command.job
3.通过 azkaban 的 web 管理平台创建 project 并上传 job 压缩包
1.首先创建 Project
2.上传 zip 包
3.启动执行该 job
2.Command 类型多 job 工作流 flow
1.创建有依赖关系的多个 job 描述
1.第一个 job:foo.job
# foo.job
type=command
command=echo foo
2.第二个 job:bar.job 依赖 foo.job
# bar.job
type=command
dependencies=foo
command=echo bar
3.将所有 job 资源文件打到一个 zip 包中
4.在 azkaban 的 web 管理界面创建工程并上传 zip 包
5.启动工作流 flow
3.HDFS 操作任务
1.创建 job 描述文件
# fs.job
type=command
command=/home/hadoop/apps/hadoop-2.6.1/bin/hadoop fs -mkdir /azaz
2.将 job 资源文件打包成 zip 文件
3.通过 azkaban 的 web 管理平台创建 project 并上传 job 压缩包
4.启动执行该 job
4.MAPREDUCE 任务
1.mr 任务依然可以使用 command 的 job 类型来执行
创建 job 描述文件,及 mr 程序 jar 包(示例中直接使用 hadoop 自带的 example jar)
# mrwc.job
type=command
command=/home/hadoop/apps/hadoop-2.6.1/bin/hadoop
jar hadoop-mapreduce-examples-2.6.1.jar wordcount /wordcount/input /wordcount/azout
2.将所有 job 资源文件打到一个 zip 包中
3.在 azkaban 的 web 管理界面创建工程并上传 zip 包
4.启动 job
5.HIVE 脚本任务
1.创建 job 描述文件和 hive 脚本
Hive 脚本: test.sql
use default;
drop table aztest;
create table aztest(id int,name string) row format delimited fields terminated by ',';
load data inpath '/aztest/hiveinput' into table aztest;
create table azres as select * from aztest;
insert overwrite directory '/aztest/hiveoutput' select count(1) from aztest;
2.Job 描述文件:hivef.job
# hivef.job
type=command
command=/home/hadoop/apps/hive/bin/hive -f 'test.sql'
3.将所有 job 资源文件打到一个 zip 包中创建工程并上传 zip 包,启动 job