Использование моментального снимка таблицы HBase в рабочем процессе Oozie

Я пытаюсь запустить задание MapReduce на oozie, которое использует снимок таблицы HBase в качестве входных данных. В настоящее время я могу это сделать (не используя рабочий процесс oozie), используя org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil, который предоставляет мне метод initTableSnapshotMapperJob().

Есть ли аналогичная опция в oozie, где я могу указать HBase SNAPSHOT в качестве входных данных для моей работы по уменьшению карты. Если нет, то какие другие варианты?


person hitrix    schedule 05.03.2015    source источник


Ответы (2)


Для этого можно использовать банку Uber. Oozie позволяет планировать uber jar напрямую без настройки Mapper и Reducer:

<action name="mr-node">
    <map-reduce>
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
            <property>
                <name>oozie.mapreduce.uber.jar</name>
                <value>${nameNode}/user/${wf:user()}/my-uber-jar.jar</value>
            </property>
        </configuration>
    </map-reduce>
    <ok to="end"/>
    <error to="fail"/>
</action> 

Прежде чем сделать это, убедитесь, что для свойства oozie.action.mapreduce.uber.jar.enable установлено значение true в oozie-site.xml.

person Alex    schedule 31.01.2017

Я не думаю, что вы можете сделать это с помощью действия oozie MapReduce. Возможно, вы можете использовать действие Java. Но с Java Action вам нужно будет написать драйвер для вашего задания MapReduce.
Судя по моему опыту работы с Oozie, действие MapReduce имеет множество ограничений, помимо основных вещей. Например: Oozie не поддерживает ChainMapper и ChainReducer.

person Anil Gupta    schedule 06.03.2015