我无法理解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 !!
答案 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>