oozie-introduction

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Oozie本ppt是非常简单的入门介绍King2014.3.24什么是OozieJavaWeb应用运行在Tomcat等容器内前台:配置页面?后台:用数据库保存工作流定义工作流运行实例什么是“工作流”Oozie工作流控制依赖DAG(DirectAcyclicGraph)中的一组动作动作,例如:Map/Reduce作业、Pig作业等由hPDL来描述工作流不是存储在数据库的么?怎么会由hPDL这种XML语言来描述?难道把XML描述文档存放在数据库中?Oozie工作流节点hPDL在描述流的时候使用:控制节点controlflownode动作节点actionnode控制节点起点,终点,失败节点等执行流程decision(条件选择?),fork(并行?),join(合并?)等执行路径Oozie工作流节点动作节点,实际计算任务map/reduce,hdfs,pig,java,Oozie子流etc.从Oozieschema0.2之后不再支持SSH动作Oozie触发的所有动作节点:由HadoopMap/Reduce框架实际执行Oozie工作流节点检测动作节点完成的方式回调Oozie启动任务后,提供唯一的回调URL任务完成的时候,发送通知给特定的URL轮询无法触发回调URL的时候Oozie工作流参数化定义工作流使用${inputDir}之类变量提交工作流操作时,提供参数的值提供不同的参数值,可以并发执行相同的工作流(e.g.提供不同的输出目录)Oozie协调系统OozieCoordinatorSystem谓词方式对工作流执行触发器建模可以指向数据、时间、外部事件等谓词满足,即启动这样可以基于时间段、数据可用性、外部事件等定义工作流执行计划Oozie协调系统OozieCoordinatorSystem创建数据应用管道多个工作流连接在一起多个工作流的输出可以作为下一个工作流的输入OozievsJobTrackerOozie负责任务的调度分发,将资源发送到Job运行环境Jobtracker发生在hadoop集群内将hadoop作业拆分成若干mapred子job,分派给tasktracker执行可以选择job执行顺序,可以停止一个job为另一个job让出资源等,更为精细的控制OozieOozie的作业日志会包含工作流执行的细节,想要查看动作执行的细节,我们需要切换到Hadoop的Map/Reduce管理页面。Oozie运行后台日志oozie.log:webserviceslogstreamingworksfromthislogoozie-ops.log:messagesforAdmin/Operationstomonitoroozie-instrumentation.log:instrumentationdata,every60seconds(configurable)oozie-audit.log:auditmessages,workflowjobschangesoozie是apache的开源项目,但一般用cloudera或yahu的商用免费版,因为后者修复了apache版很多bug,并支持更多的功能。Oozie的安装oozie的安装是有点复杂的,需要仔细阅读文档。两种方式cloudera版本,集成hadoop等组件,安装应该比较简便包比较大,483M编译oozie源码,手工安装源码包比较小,不超过2M3.0.*版本或者之前的版本是可以离线安装的(例如oozie-3.0.2-distro.tar.gz),后面的版本(例如oozie-3.3.2-distro.tar.gz和oozie-4.0.0-distro.tar.gz等)是在线安装的,需要用到MAVEN工具,在安装过程中可能会碰到依赖问题,可以修改相关的POM文件。我说怎么这么小。。似乎开始是由yahoo开发的?过程繁琐,配置较复杂编译Oozie依赖多hadoop0.20.0+jdk1.6+maven3.0.1+pig0.7+tomcat6.0.33+ExtJS2.2(optional,forweb控制界面)in-memorySQLDB(HSQLDB)?defaultDerby?mysql?Hive?Hbase?环境变量编译Oozie先后编译了Oozie4.0.0和Oozie3.3.2,报错编译Oozie似乎依赖网络…正确编译Oozieroot用户安装jdk,修改/etc/profile添加java环境变量创建oozie用户在/home/oozie/目录下解包hadoop,maven,oozie,pig,tomcat,ext我的环境,本地vmware虚拟机rhel4d2.6.9-67.ELsmpi386jdk1.6.0_45,hadoop-1.2.1,maven-3.2.1,oozie-3.3.2,pig-0.12.0,tomat-6.0.39,ext-2.2设置环境变量运行tomcat,用localhost:8080验证正确编译Ooziebuildoozie,根据报错信息修改了oozie-3.3.2下面的pom.xml正确编译Oozie在联网环境下,重新buildoozie,完成hadoop伪分布部署解包hadoop-0.20.2配置core-site.xml,hdfs-site.xml,mapred-site.xml,hadoop-env.shssh配置(生成认证文件,然后就可以不再需要密码连接)ssh-keygen–trsacp~/.ssh/id_rsa.put~/.ssh/authorized_keys/etc/init.d/sshrestarthadoop伪分布部署格式化namenode$HADOOP_HOME/bin/hadoopnamenode–format启动hadoop$HADOOP_HOME/bin/start-all.sh用jdk的jps查看hadoop守护是否启动•也可以通过web查看hadoop•namenode•localhost:50070•jobtracker•localhost:50030版本做伪分布hadoop部署的时候,1.2.1版本的tasktracker无法启动(似乎需要重新编译native的一些库函数),换成了0.20.2的版本但是生成oozie的war包,没有使用0.20.2版本的hadoop,虽然可以生成,但是在启动oozie的时候报缺少jar包的错误改用hadoop-1.2.1的那些jar包,编译通过,且可以启动oozie包括:hadoop-core-1.2.1.jar,hadoop-client-1.2.1.jar,和~/hadoop-1.2.1/lib/下面的jar包生成ooziewar将编译完成的distro版本放置到~目录mv/home/oozie/oozie-3.3.2/distro/target/oozie-3.3.2-distro/oozie-3.3.2/home/oozie/在/home/oozie/oozie-3.3.2/目录下创建libext目录拷贝hadoop-client-1.2.1.jar,hadoop-core-1.2.1.jar,ext-2.2.zip,$HADOOP_HOME/lib/下的所有jar包至libext目录生成ooziewar编辑Hadoop’score-site.xml,加上OOZIE的部分vi/home/oozie/hadoop-1.2.1/conf/core-site.xml编译ooziewar,Done!~/oozie-3.3.2/bin/oozie-setup.shprepare-war创建oozieDB启动oozie两种方式$OOZIE_HOME/bin/oozied.shrun启动oozie$OOZIE_HOME/bin/oozied.shstart检查oozie状态测试oozie启动hadoop$HADOOP_HOME/bin/start-all.sh启动oozie$OOZIE_HOME/bin/oozied.shstart解包oozie-examples.tar.gz,出现examples文件夹编辑$OOZIE_HOME/examples/apps/map-reduce/目录下的job.properties测试ooziejob.properties编辑如下图hadoop默认安装后,有个目录/tmp/hadoop-oozie/不知道是干啥的。。hadoop的默认工作目录是/user/$USER,这个目录不会自动创建,需要我们手工创建hadoopfs–mkdir/user/oozie测试oozie将examples上传到hdfshadoopfs–putexamplesexamples这个命令会把examples目录(包括目录下的所有东西)复制到hadoop的工作目录/user/oozie/下面运行ooziejob$OOZIE_HOME/bin/ooziejob–oozie–run报错,查了大半天,没有解决!Oozie的使用运行oozie应用时,作业配置文件,jar包,相关程序代码,比如hiveql要放在hdfs上,只有属性文件(job.properties)放在本地磁盘。创建工作流创建工作流动作节点的扩展1、继承ActionExcutor编写自定义节点类。2、为新组件定义schema,并添加到oozie-site配置文件中。3、oozie-site.xml中注册新组件。后面就可以在工作流配置文件中使用新的动作节点了。提交工作流通过OozieClient命令行提交bin/ooziejob–oozie通过API提交workflow,properties等均可以通过javaapi实现,并提交给OozieServer提交工作流(javaapi)oozie的其他使用workflowfunctionactionnodes(map-reduce,pig,hdfs,sub-workflow,java)coordinatorfunctionworkflowsbasedontimeanddatatrriggersbundlefunctionasetofcoordinatorapplications参阅oozie官网下载下载oozie-cdh版本下载oozie离线安装包下载在线安装包(build需要maven)apache官网参考资料

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功