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

我想将上述属性覆盖为true。对于集群上的其余作业,该属性需要为 false,但我需要在我的 oozie 工作流程中,hadoop 在作业完成后在输出目录中创建 _SUCCESS 文件。它是写入输出的工作流中的一个配置单元操作。请帮忙。

4

3 回答 3

8

不幸的是,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

于 2012-11-09T22:01:43.650 回答
2

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

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

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

于 2016-07-15T12:42:11.970 回答
0

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

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

于 2014-09-03T22:24:09.583 回答