驭象者之Apache Oozie

(1)Apache Oozie是什么?Oozie在英语中的释义指的是:驯象人,驭象者(多指缅甸那边的俗称),这个比喻相对与它的功能来说,还是很恰当的。Apache Oozie是一个用来管理Hadoop任务的工作流调度系统,是基于有向无环图的模型(DAG)。Oozie支持大多数的Hadoop任务的组合,常见的有Java MapReduce,Streaming map-reduce,Pig,Hive, Sqoop , Distcp,也可以结合一些脚本如Shell,Python,Java来很灵活的完成一些事情。同时,它也是一个可伸缩的,可扩展,高可靠的的系统

(2)Apache Oozie能用来干什么?其实,,上面的这张图,已经足够回答这个问题了,工作流嘛,顾名思义,就是我要干一件事,需要很多步骤,然后有序组合,最终达到能够完成这件事的目的。举个例子,就拿做饭这件事吧。1,买菜2,洗菜3,切菜4,炒菜5,上菜这是一个简单的流程,当然这里面会有很多其他的小细节,比如我买菜,去了不同的菜市场,炒菜时候,又临时去买了一些调料,等等。仔细分析这里面的道道,有些是有依赖关系的,有些没依赖关系的,比如菜是核心,所有很菜有关的都有先后顺序,其他的辅助步骤,比如说烧水,跟这是没有依赖关系的。反应到实际工作中的一些任务也是如此,所以采用oozie来管理调度,还是很方便的一件事。

(3)Oozie的组成Readme, license, notice & Release log files.(一个项目的,版权,介绍,log等)Oozie server: oozie-server directory.(oozie的服务端目录)Scripts: bin/ directory, client and server scripts.(bin下面有一些常用的命令,来管理oozie的)Binaries: lib/ directory, client JAR files.(存放oozie的依赖包)Configuration: conf/ server configuration directory.(oozie的配置文件)Archives:(归档包目录)oozie-client-*.tar.gz : Client tools.(oozie的客户端包)oozie.war : Oozie WAR file.(web的服务工程)docs.zip : Documentation.(文档)oozie-examples-*.tar.gz : Examples.(例子)oozie-sharelib-*.tar.gz : Share libraries (with Streaming, Pig JARs).(一些工作流支持的框架共享包)(4)oozie支持调度的应用1,Email任务2,Shell任务3,Hive任务4,Sqoop任务5,SSH任务6,Distcp任务7,自定义的任务

(5)oozie的下载,安装,编译在linux上,可以直接wget 下载下载完,可以解压出来根据自己的一些环境编译。散仙这里的一些环境如下:Hadoop2.2JDK1.7Maven3.0.5Ant1.9.4Hive0.13.1Pig0.12.1所以,需要修改在oozie的根目录下的pom文件:1,修改JDK版本2,如有必要可修改各个组件的版本,在跟目录下执行grep -l "2.3.0" `find . -name "pom.xml"`

Java代码

./pom.xml./hadooplibs/hadoop-distcp-2/pom.xml./hadooplibs/hadoop-test-2/pom.xml./hadooplibs/hadoop-utils-2/pom.xml./hadooplibs/hadoop-2/pom.xml

将查出来的pom文件,修改对应hadoop版本,hive,hbase,pig等组件版本注意使用(sed -e ‘s/2.3.0/2.2.0/g’ pom.xml 替换可能更快,但是建议自己去修改,因为改的地方并不是太多!)注意,在4.1.0里,需要把下面这个保持成2.3.0,hadoop的版本可以是2.2.0如果,不改的话,编译Zookeeper-Scurity-Test时候,会报错

Java代码

[INFO]ApacheOozieZooKeeperSecurityTests………….FAILURE[2.204s][INFO]————————————————————————[INFO]BUILDFAILURE[INFO]————————————————————————[INFO]Totaltime:5:27.818s[INFO]Finishedat:FriMay1512:50:50CST2015[INFO]FinalMemory:132M/237M[INFO]————————————————————————[ERROR]Failedtoexecutegoalonprojectoozie-zookeeper-security-tests:Couldnotresolvedependenciesforprojectorg.apache.oozie:oozie-zookeeper-security-tests:jar:4.1.0:Failedtocollectdependenciesfor[org.apache.curator:curator-test:jar:2.5.0(test),org.apache.hadoop:hadoop-minikdc:jar:2.2.0(test),org.apache.oozie:oozie-core:jar:4.1.0(test),org.apache.oozie:oozie-core:jar:tests:4.1.0(test),org.apache.oozie:oozie-hadoop:jar:2.2.0.oozie-4.1.0(provided),org.apache.oozie:oozie-hadoop-test:jar:2.2.0.oozie-4.1.0(test)]:Failedtoreadartifactdescriptorfororg.apache.hadoop:hadoop-minikdc:jar:2.2.0:Couldnottransferartifactorg.apache.hadoop:hadoop-minikdc:pom:2.2.0from/toCodehausrepository(http://repository.codehaus.org/):peernotauthenticated->[Help1][ERROR][ERROR]Toseethefullstacktraceoftheerrors,re-runMavenwiththe-eswitch.[ERROR]Re-runMavenusingthe-Xswitchtoenablefulldebuglogging.[ERROR][ERROR]Formoreinformationabouttheerrorsandpossiblesolutions,pleasereadthefollowingarticles:[ERROR][Help1]http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException[ERROR][ERROR]Aftercorrectingtheproblems,youcanresumethebuildwiththecommand[ERROR]mvn<goals>-rf:oozie-zookeeper-security-tests

改回2.3.0即可

往往教导我们大家要好好学习天天向上,要永不言弃坚持到底百折不挠宁死不屈,

驭象者之Apache Oozie

相关文章:

你感兴趣的文章:

标签云: