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

Desidero sovrascrivere la proprietà precedente su true. La proprietà deve essere falsa per il resto dei lavori sul cluster, ma ho bisogno, nel mio flusso di lavoro, di creare un file _SUCCESS nella directory di output dopo il completamento del lavoro. È un'azione alveare nel flusso di lavoro che scrive l'output. Per favore aiuto.Ignora il mapreduce di hadoop.fileoutputcommitter.marksuccessfuljobs in oozie

risposta

6

Hive ignora purtroppo questa funzionalità impostando un proprio NullOutputComitter:

conf.setOutputCommitter(NullOutputCommitter.class); 

vedere

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 

Sembra che dovrete creare la bandiera manualmente. Abbiamo archiviato HIVE-3700 per questo.

+1

C'è un biglietto Hive Jira per questo? –

+0

Penso che https://issues.apache.org/jira/browse/HIVE-3700 sia il biglietto. L'ho aggiunto alla risposta. (Non c'è risposta sul ticket dal 2012.) –

0

Mi sono imbattuto nello stesso problema e ho finito per usare un'azione di shell per creare il flag.

Ecco un esempio completo: http://nathan.vertile.com/blog/2014/09/02/oozie-data-pipeline-done-flag/

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia – dehrg