2012-10-22 8 views
5
<property> 
<name>mapreduce.fileoutputcommitter.marksuccessfuljobs</name> 
<value>false</value> 
</property> 

Ich möchte die obige Eigenschaft auf true überschreiben. Die Eigenschaft muss für den Rest der Jobs im Cluster falsch sein. In meinem Oozie-Workflow muss ich jedoch nach Abschluss des Jobs eine _SUCCESS-Datei im Ausgabeverzeichnis erstellen. Es ist eine Hive-Aktion im Workflow, der die Ausgabe schreibt. Bitte helfen Sie.Override hadoops mapreduce.fileoutputcommitter.marksuccessfuljobs in oozie

Antwort

6

Hive überschreibt leider diese Fähigkeit durch seine eigene NullOutputComitter Einstellung:

conf.setOutputCommitter(NullOutputCommitter.class); 

siehe

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 

Sieht aus wie Sie manuell die Flagge erstellen müssen. Wir haben dafür HIVE-3700 hinterlegt.

+1

Gibt es einen Hive Jira-Ticket für das? –

+0

Ich denke, https://issues.apache.org/jira/browse/HIVE-3700 ist das Ticket. Ich habe es der Antwort hinzugefügt. (Es gibt keine Antwort auf dem Ticket seit 2012.) –

0

Ich stieß auf das gleiche Problem und endete mit einer Shell-Aktion, um das Flag zu erstellen.

Hier ist ein vollständiges Beispiel: http://nathan.vertile.com/blog/2014/09/02/oozie-data-pipeline-done-flag/

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert – dehrg