在 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 =]
我正在尝试 运行 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 =]