在 Oozie 工作流中使用 HBase table 快照

Using HBase table Snapshot in Oozie Workflow

我正在尝试 运行 oozie 上的 MapReduce 作业,它将 HBase table 快照作为其输入。目前我可以使用 org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil 来做到这一点(不使用 oozie 工作流程),它为我提供了一种方法 initTableSnapshotMapperJob().

oozie 中是否有类似的选项,我可以在其中指定 HBase SNAPSHOT 作为我的 map reduce 作业的输入。如果不是,还有哪些选择?

我认为您无法使用 oozie MapReduce Action 做到这一点。也许,您可以使用 Java 操作。但是,对于 Java Action,您需要为 MapReduce 作业编写驱动程序。
根据我使用 Oozie 的经验,MapReduce 操作除了基本内容外还有很多限制。例如:Oozie 不支持 ChainMapper 和 ChainReducer。

您可以为此使用 Uber jar。 Oozie 允许在不配置 Mapper 和 Reducer 的情况下直接调度 uber jars:

<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 属性 在 oozie-site.[=21 中设置为 true =]