hadoop-2.5.2+Oozie-4.1.0环境构筑和简单测试

来源:互联网 发布:手机淘宝账号余额查询 编辑:程序博客网 时间:2024/06/03 00:02

背景

对于Oozie的理解,我现在也是停留在它是一个job调度系统。至于在有Oozie的情况下,相比之下hadoop的性能是否会有很大的提升,官网中没有给出数据对比,无法直观的看到差异。但相比较没有oozie的hadoop,oozie可以指定workflow,这样在指定的时间段内,根据时间可以触发job,对于经常重复需要运行的作业,还是有很大的方便性。

以下是oozie官网给出的定义:

Oozie is a workflow scheduler system to manage Apache Hadoop jobs.Oozie Workflow jobs are Directed Acyclical Graphs (DAGs) of actions.Oozie Coordinator jobs are recurrent Oozie Workflow jobs triggered by time (frequency) and data availabilty.Oozie is integrated with the rest of the Hadoop stack supporting several types of Hadoop jobs out of the box (such as Java map-reduce, Streaming map-reduce, Pig, Hive, Sqoop and Distcp) as well as system specific jobs (such as Java programs and shell scripts).Oozie is a scalable, reliable and extensible system.
同类型的产品有Amazon Data PipelineSimpleWorkflowEngine, AzkabanCascadingHamake。具体是什么状况,暂时没有去调查,不敢妄下断言去指点江山。

Hortonworks Data PlatformClouder manager Amazon EMR sandbox applicationHue 这些都是hadoop的集成解决方案,将hadoop生态区中可以利用的都集成在一起,对于用户来说,可视化的操作,还是很便利的。

Oozie环境构筑

oozie环境的构筑,就自身而言,不是很难,官网上有详细的说明,只要你的英语不是烂到家了,即使烂到家,还有度娘,google翻译,总有一款适合你的需求。

官网:http://oozie.apache.org/docs/4.1.0/DG_QuickStart.html


这里重点说几点要注意的:

1.ExtJS-2.2.0.zip文件,必须是这样,因为./bin/oozie-setup.sh中已经硬编码了。且下载的文件,建议还是放置在oozie-server/libext【没有的话自己手动去创建】,如果你想使用webUI界面的话。

2.sharelib的问题。这个困扰了我几个小时,最后在执行job的时候,就报错,没有/user/root/share/lib。这个就是当时部署的时候,没有留意使用./bin/oozie-setup.sh sharelib create -fs FS_DIR -locallib share这个命令,导致报错的,对策也很简单,bin的同一级目录下,会有一个类似于oozie-sharelib-4.1.0-falcon.tar.gz的文件,解压后生成一个share文件夹,然后使用oosie-setup.sh命令去导入就行了,但必须事前使用hadoop fs -mkdir命令去创建【/user/root/share】这个目录。

3.oozie-site.xml中根据自己hadoop的实际位置,修改下面的参数

        <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>        <value>*=/home/project/hadoop-2.5.2/etc/hadoop</value>


简单确认oozie

1.使用oozied.sh start/oozie-start.sh启动后,使用oozie admin去确认状态,具体命令如下所示:

[root@sv004 oozie-4.1.0-falcon]# ./bin/oozie admin -oozie http://sv004:11000/oozie -statusSystem mode: NORMAL

2.在web侧进行确认,顺便检验之前追加的ExtJS是否已加载成功,如图说是:

#ps,公司的网络太烂,56k的图片无法上传,以后有机会在追加


运行简单的测试项

1.运行cron下的测试项

[root@sv004 oozie-4.1.0-falcon]# ./bin/oozie job -oozie http://sv004:11000/oozie -config examples/apps/cron/job.properties -runError: E0504 : E0504: App directory [/user/root/examples/apps/cron] does not exist

报错,原因是没有将其加载在hdfs下对应的位置,可以使用hadoop fs -ls命令来验证自己的推理:

[root@sv004 oozie-4.1.0-falcon]# /home/project/hadoop-2.5.2/bin/hadoop fs -ls /user/root/examples/apps/16/05/12 19:21:13 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableFound 1 itemsdrwxr-xr-x   - root supergroup          0 2016-05-12 04:34 /user/root/examples/apps/map-reduce

apps目录下只有一个之前加载的map-reduce,缺少cron的,故导入:

[root@sv004 oozie-4.1.0-falcon]# /home/project/hadoop-2.5.2/bin/hadoop fs -put examples/apps/cron  /user/root/examples/apps16/05/12 19:22:55 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
确认导入效果

[root@sv004 oozie-4.1.0-falcon]# /home/project/hadoop-2.5.2/bin/hadoop fs -ls /user/root/examples/apps                         16/05/12 19:23:48 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableFound 2 itemsdrwxr-xr-x   - root supergroup          0 2016-05-12 19:22 /user/root/examples/apps/crondrwxr-xr-x   - root supergroup          0 2016-05-12 04:34 /user/root/examples/apps/map-reduce

可以看到已经成功导入了。


执行job

[root@sv004 oozie-4.1.0-falcon]# ./bin/oozie job -oozie http://sv004:11000/oozie -config examples/apps/cron/job.properties -runjob: 0000003-160512180755587-oozie-root-C

查看job的运行信息

[root@sv004 oozie-4.1.0-falcon]# ./bin/oozie job -info 0000003-160512180755587-oozie-root-CJob ID : 0000003-160512180755587-oozie-root-C------------------------------------------------------------------------------------------------------------------------------------Job Name    : cron-coordApp Path    : /user/root/examples/apps/cronStatus      : SUCCEEDEDStart Time  : 2010-01-01 00:00 GMTEnd Time    : 2010-01-01 01:00 GMTPause Time  : -Concurrency : 1------------------------------------------------------------------------------------------------------------------------------------ID                                         Status    Ext ID                               Err Code  Created              Nominal Time         0000003-160512180755587-oozie-root-C@1     SUCCEEDED 0000004-160512180755587-oozie-root-W -         2016-05-12 10:23 GMT 2010-01-01 00:00 GMT ------------------------------------------------------------------------------------------------------------------------------------0000003-160512180755587-oozie-root-C@2     SUCCEEDED 0000005-160512180755587-oozie-root-W -         2016-05-12 10:23 GMT 2010-01-01 00:10 GMT ------------------------------------------------------------------------------------------------------------------------------------0000003-160512180755587-oozie-root-C@3     SUCCEEDED 0000006-160512180755587-oozie-root-W -         2016-05-12 10:23 GMT 2010-01-01 00:20 GMT ------------------------------------------------------------------------------------------------------------------------------------0000003-160512180755587-oozie-root-C@4     SUCCEEDED 0000007-160512180755587-oozie-root-W -         2016-05-12 10:23 GMT 2010-01-01 00:30 GMT ------------------------------------------------------------------------------------------------------------------------------------0000003-160512180755587-oozie-root-C@5     SUCCEEDED 0000008-160512180755587-oozie-root-W -         2016-05-12 10:23 GMT 2010-01-01 00:40 GMT ------------------------------------------------------------------------------------------------------------------------------------0000003-160512180755587-oozie-root-C@6     SUCCEEDED 0000009-160512180755587-oozie-root-W -         2016-05-12 10:23 GMT 2010-01-01 00:50 GMT ------------------------------------------------------------------------------------------------------------------------------------

同时,你也可以在web侧看到对应的信息,还有DAG有向无环图,挺直观的。

注意:执行job之前,需要去确认job.properties下的信息是不是跟自己hadoop的环境是不是就是一致的,否则,就会发生链接不上namenode的情况了。

这是我根据自己的hadoop环境配置的,可以参考一下:

nameNode=hdfs://sv004:9000jobTracker=localhost:8021queueName=defaultexamplesRoot=examplesoozie.coord.application.path=/user/${user.name}/${examplesRoot}/apps/cronstart=2010-01-01T00:00Zend=2010-01-01T01:00ZworkflowAppUri=/user/${user.name}/${examplesRoot}/apps/cron

一般需要改动的,就只有前两项,且主要就是端口号。

这些可以在hadoop的core-site.xml和maped-site.xml里面可以找到。



--over--


0 0