Переопределить mapreduce.fileoutputcommitter.marksuccessfuljobs hadoop в oozie

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

Я хочу переопределить указанное выше свойство на true. Это свойство должно быть ложным для остальных заданий в кластере, но мне нужно, чтобы в моем рабочем процессе oozie имелся цикл создания файла _SUCCESS в выходном каталоге после завершения задания. Это действие улья в рабочем процессе, который записывает вывод. Пожалуйста помоги.

3 ответа

К сожалению, 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

Похоже, вам придется создать флаг вручную. Для этого мы подали заявку на ВИЧ-3700.

Вы можете добавить команду 'dfs' в ваш скрипт улья, например:

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

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

Я столкнулся с той же проблемой и в итоге использовал действие оболочки для создания флага.

Вот полный пример: http://nathan.vertile.com/blog/2014/09/02/oozie-data-pipeline-done-flag/

Другие вопросы по тегам