oozie的特点
工作流管理工具
可以轻量级,
再提交端要求轻量级
提交job会返回jobid
做一个例子
Step 1: Download the Oozie tarball Wget http://archive.apache.org/dist/oozie/4.2.0/oozie-4.2.0.tar.gz
Step 2: Unpack the tarball tar –xzvf <PATH_TO_OOZIE_TAR>
Step 3: Run the setup script bin/oozie-setup.sh -hadoop 0.20.200 ${HADOOP_HOME} –extjs /tmp/ext-2.2.zip
Step 4: Start oozie bin/oozie-start.sh
Step 5: Check status of oozie bin/oozie admin -oozie http://localhost:11000/oozie -status
oozie是有自己的web ui的
我们可以通过四种方式来提交job
CML
JAVA API
REST API
WEB UI
其中rest api和CML的提交方式比较多
oozie的组成
Workflow definition 管理工作流
Property file 传递参数 要定义具体路径 通过指定来提交
Libraries 在lib folder下
Coordinaor 执行计划 什么时候 满足什么条件去运行job
Bundle :打包启动多个workflow 是一个集合
注:一个bundle有多个job也可以有多个 coordinator
Oozie优势
一个开源很久的软件,免费
和 hue,cloudera manager apache ambari等等常用管理工具很紧密
和现有生态系统有集成
Oozie4 支持了sla报警 sla是SLA= Service Layer Agreement 重复一项服务保证服务标准,监控job,很多时候对job有要求,描述这个时间段来衡量oozie运行时间,对运行比较慢进行警报
文档很全
Oozie缺点
启动慢
Ui难看
很多分别定义,比较复杂
安装复杂,安装特别参数启动
Xml 对用户不友好,写时候很复杂
Workflow actions
https://github.com/sj666/datafibers-big_data_training-oozie.git
这是我的GitHub链接,根据提示操作
http://localhost:11000/oozie/
修复ui
我把插件发到GitHub了
提交job提交不了
create database oozie;
1. Copy it to the path cp ext-2.2.zip /usr/hdp/current/oozie-client/libext/
2. Regenerate the war file by executing /usr/hdp/current/oozie-server/bin/oozie-setup.sh prepare-war
3. Restart Oozie from Ambari
查看一下状态
Ozk 杀死运行的job
Oza 执行‘’里面命令 显示当前运行的名字
Ozi +job id 显示详细信息
Watch (意义不是很大)
wwf.sh 实时刷新的oozie代码 显示行
进入目录
Oozie在运行的时候 都在hdfs上
除了job.properties
源码也放在GitHub上
有了id可以查询状态
查看log
杀死
运行
Shell action核心写法
Cd shell
Vi
不确定shell可以使用可以优先使用hive ation
Discp action
相当于分布式拷贝的命令
把数据从一个集群转移到另一个集群
Sub-workflow action
定时器
另外一个功能除了定时还可以按照条件判断文件是否存在
Bundle 可以打包