Oozie协作框架
一:概述
1.大数据协作框架
2.Hadoop的任务调度
3.Oozie的三大功能
Oozie Workflow jobs
Oozie Coordinator jobs
Oozie Bundle
4.Oozie的架构
控制流节点
起始,分支,并发,汇合,结束
动作节点action
5.Oozie的实现
二:安装部署
1.上传
2.解压
3.配置Hadoop代理core-site.xml
4.启动Hadoop集群
5.解压hadooplib
将会生成:oozie-4.0.0-cdh5.3.6
6.生成
7.创建libext文件
8.拷贝hadooplib的jar包到libext中
9.拷贝js包到libext中
10.创建sharelib库:HDFS,用于运行所有job的依赖
bin/oozie-setup.sh sharelib create -fs hdfs://hadoop-senior02.ibeifeng.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
HDFS::
11.打包
bin/oozie-setup.sh prepare-war
12.初始化数据库
13.启动
14.web端窗口
三:运行官网的任务流
1.解压家目录下的oozie-examples.tar.gz
将会生成examples
2.进入examples,找到将要运行的mapreduce项目
job.properties:mapreduce运行需要的配置项,指定workflow的地址,申明相关变量
workflow.xml:实际运行的workflow
3.修改job.properties配置项
4.修改oozie.site文件
5.启动hadoop,并上传在家目录下examples项目
bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/examples examples
6.启动
bin/oozie job -oozie http://linux-hadoop3.ibeifeng.com:11000/oozie -config examples/apps/map-reduce/job.properties -run
7.总结
-》bin/oozie job -oozie http://hadoop-senior02.ibeifeng.com:11000/oozie -config examples/apps/map-reduce/job.properties -run
提交任务
-》oozie读取job.properties
-》查找需要运行的wf的地址,将相应变量传递给wf
-》读取wf的文件
-》start节点
-》action节点
-》OK-》end
-》error-》kill
-》读取依赖的jar包
lib目录
-》sharelib的jar包支持
四:自定义wordcount任务流
1.新建目录
新建application,在下面建项目wc-wf
2.检测wordcount的jar包是否可以使用
3.HDFS上新建input目录,上传wc.inpu
4.上传wc2.jar
目录/etc/opt/datas
5.在yarn上运行
6.证明jar包没有问题
7.修改job.properties
8.修改workflow.xml
9.上传wc2.jar到wc-wf中的lib中
10.上传到HDFS上运行
bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/wc-wf/ /
11.运行
export OOZIE_URL="http://linux-hadoop3.ibeifeng.com:11000/oozie"
bin/oozie job -config applications/wc-wf/job.properties -run
12.结果
五:自定义shell action的workflow
1.拷贝官方的shell,并命名为shell-wf
2.修改job.properties
3.在shell-wf中新建oozie.sh
4.修改workflow.xml
5.完成oozie.sh
6.上传到HDFS
bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/shell-wf/ /applications
7.运行
bin/oozie job -config applications/shell-wf/job.properties -run
8.结果
六:DAG图的设计
1.拷贝wc-wf,并该名为dag-wf
2.将shell-wf中 的.sh拷贝到dag-wf中
3.修改job.properties
4.修改oozie.sh
5.修改workflow.xml
6.上传
bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/dag-wf/ /applications
7.运行
bin/oozie job -config applications/dag-wf/job.properties -run
8.结果
9.HDFS上
七:修改linux时区
1.查看
2.如果不是+0800,则需要重新生成
在linux中删除:
rm -rf /etc/localtime
重新生成:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.修改时间
4.在oozie.site中修改时区
5.在js中修改时区
6.重新启动oozie
八:编写coordinate
1.复制
2.修改job.properties
3.修改coordinator.xml
4.修改oozie.xml
5.重启oozie
6.上传到HDFS
bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/cron-wf/ /applications
7.运行
bin/oozie job -config applications/cron-wf/job.properties -run
8.结果
九:支持crontab的任务调度
1.拷贝
2.修改job.properties
3.修改coordinate
4.上传
bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/crontab/ /applications
5.运行
bin/oozie job -config applications/crontab/job.properties -run
6.运行结果