在oozie中覆盖hadoop的mapreduce.fileoutputcommitter.marksuccessfuljobs

时间:2012-10-22 18:25:44

标签: hadoop mapreduce hive oozie

<property>
<name>mapreduce.fileoutputcommitter.marksuccessfuljobs</name>
<value>false</value>
</property>

我想将上面的属性覆盖为true。对于群集上的其余作业,该属性需要为false,但在我的oozie工作流中,我需要hadoop在作业完成后在输出目录中创建_SUCCESS文件。它是编写输出的工作流程中的蜂巢动作。请帮忙。

3 个答案:

答案 0 :(得分:6)

不幸的是,Hive通过设置它自己的NullOutputComitter来覆盖这个功能:

conf.setOutputCommitter(NullOutputCommitter.class);

src/shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java
src/shims/src/common-secure/java/org/apache/hadoop/hive/shims/HadoopShimsSecure.java

看起来你必须手动创建标志。我们已为此提交了HIVE-3700

答案 1 :(得分:1)

您可以将“dfs”命令添加到您的配置单元脚本,例如

dfs -touchz '$table_base_path'/dt='${partition}'/_SUCCESS

https://archive.cloudera.com/cdh4/cdh/4/hive/language_manual/cli.html

答案 2 :(得分:0)

我遇到了同样的问题,最后使用shell动作来创建标志。

以下是一个完整的示例:http://nathan.vertile.com/blog/2014/09/02/oozie-data-pipeline-done-flag/