Oozie工作流程示例

时间:2014-11-12 14:36:59

标签: hadoop hbase hadoop-streaming oozie

我无法理解Oozie。我已经运行了,但我发现的文档和示例并不清楚。任何人都可以帮我一个例子吗?

我有4个或5个hadoop流式传输作业,我想删除任何现有的输出目录和日志,例如

hadoop fs -rm -r /user/vm/video-output /tmp/logs/vm/logs/

运行这项工作,例如

hadoop jar ~/run/hadoop-*streaming*.jar -files videoapp 
-cacheArchive hdfs://localhost:54310/user/vm/input/video/video.tar.gz#video 
-cacheFile hdfs://localhost:54310/user/vm/vqatsAx#vqatsAx 
-cacheFile hdfs://localhost:54310/user/vm/ffmpeg#ffmpeg 
-input /user/vm/input/video -output /user/vm/video-output 
-mapper videoapp/video.py -cmdenv VIDEO_DIR=video

然后当它完成时(我如何检查:创建了part-r-0000?),运行下一个。这些工作将从HBase读取和写入。我只想要一个基本的轮廓和一些指针this sort of thing。 TIA !!

1 个答案:

答案 0 :(得分:0)

要删除HDFS目录或日志,您可以使用Oozie HDFS操作。 oozie文档和示例就是oozie HDFS action。或者下面给出了示例。您可以在workflow.xml中配置所需的各种操作。

<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1">
    ...
    <action name="hdfscommands">
         <fs>
            <delete path='hdfs://foo:9000/usr/tucu/temp-data'/>
            <mkdir path='archives/${wf:id()}'/>
            <move source='${jobInput}' target='archives/${wf:id()}/processed-input'/>
            <chmod path='${jobOutput}' permissions='-rwxrw-rw-' dir-files='true'/>
        </fs>
        <ok to="myotherjob"/>
        <error to="errorcleanup"/>
    </action>
    ...
</workflow-app>