功课OOZIE01:Oozie 工作流练习
作业OOZIE01:Oozie 工作流练习
常用的大数据调度框架
目前常用的大数据调度框架:Oozie,Azkaban
- MapReduce Java、Streaming、HQL、Pig等
如何对这些框架和作业进行统一管理和调度:
- 不同作业之间存在依赖关系(DAG);
- 周期性作业
- 定时执行的作业
- 作业执行状态监控与报警
多种解决方案:
- Crontab
- 自己设计调度系统
- 直接使用开源系统
对常见作业类型进行调度
- MapReduce(Java、Streaming等)作业
- Hive作业
- Shell ….
根据需要对作业进行调度
- 按周期调度
- 定时调度……
支持容错与报警
可视化作业流运行过程
作业调度系统的比较
Oozie在Hadoop生态系统中的位置
Oozie基本概念
作业流由一组行为节点(Hadoop MR作业、Hive作业等)构成,且这些节点通过控制流节点相连 ;
- 控制流节点定义了工作流的起始与结束,并控制着工作流的执行 路径;
- 行为节点包含一个计算/处理任务,包括:Hadoop map-reduce, HDFS, Pig, SSH, HTTP, eMail等
Oozie工作流是通过hPDL语言(一种XML过程定 义语言)编写的
Oozie 层次结构
Oozie服务器端组件
Oozie 功能
Oozie Action
- 支持Hadoop map-reduce, HDFS, Pig, SSH, HTTP, eMail等;
- 可设置重试次数。
Oozie 控制流
Coordinator
- 定期执行一个工作流;
- 数据准备完毕后执行一个工作流
Oozie 部署测试
1、推荐创建新用户
2、上传安装包oozie-4.0.0-cdh5.3.6.tar.gz,并解压
3、 hadoop中配置core-site.xml
<property>
<name>hadoop.proxyuser.jit.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.jit.groups</name>
<value>*</value>
</property>
4、解压
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ tar -zxf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../
5、 在oozie解压的目录创建libext
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ mkdirlibext
6、 复制对应的hadooplibs中的对应hadoop版本的jar包到libext中
[jit@hadoop0 hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6]$ cp -r ./* /opt/cdh/oozie-4.0.0-cdh5.3.6/libext
7、 拷贝ext-2.2.zip到libext中
8、打oozie的war包
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ bin/oozie-setup.sh prepare-war
总是报错ext-2.2.zip解压 bad file的错误,后来没办法了解压后上传,再在linux下压缩zip。
New Oozie WAR file with added ‘ExtJS library, JARs’ at /opt/cdh/oozie-4.0.0-cdh5.3.6/oozie-server/webapps/oozie.war
9、运行bin/ooziedb.sh create –sqlfileoozie.sql –run
10、运行,上传相关lib
bin/oozie-setup.shsharelib create \
-fs hdfs://hadoop0:9000 \
-locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
11、运行oozie,bin/oozied.sh start
12、运行案例
解压
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ tar -zxf oozie-examples.tar.gz
上传examples至hdfs中
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ hadoop fs -put examples/ examples
进入examples
修改job.properties文件
nameNode=hdfs://hadoop0:9000
jobTracker=hadoop0:8032
queueName=default
examplesRoot=examples
oozie.wf.application.path=${nameNode}/user/jit/${examplesRoot}/apps/map-reduce/workflow.xml
outputDir=map-reduce
删除hdfs上的examples文件夹中的map-reduce
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ hdfsdfs -rm -R /user/jit/examples/apps/map-reduce
16/03/20 13:48:57 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /user/jit/examples/apps/map-reduce
修改后的进行上传
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ hdfsdfs -put /opt/cdh/oozie-4.0.0-cdh5.3.6/examples/apps/map-reduce examples/apps/map-reduce
jps查看是否都启动
设置:
[jit@hadoop0 oozie-4.0.0-cdh5.3.6]$ export OOZIE_URL=http://hadoop0:11000/oozie/
修改配置文件oozie-site.xml
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=hadoop-conf</value>
</property>
为
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/home/jit/cdh356/hadoop-2.5.0-cdh5.3.6/etc/hadoop</value>
</property>
重启oozie服务
bin/oozied.sh start
export OOZIE_URL=http://hadoop0:11000/oozie/
bin/oozie job -config examples/apps/map-reduce/job.properties -run