【问题标题】:Using HBase table Snapshot in Oozie Workflow在 Oozie Workflow 中使用 HBase 表快照
【发布时间】:2015-03-05 20:35:41
【问题描述】:
我正在尝试在 oozie 上运行 MapReduce 作业,该作业将 HBase 表快照作为其输入。目前我可以使用 org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil 来做到这一点(不使用 oozie 工作流程),它为我提供了一种方法 initTableSnapshotMapperJob()。
oozie 中是否有类似的选项,我可以在其中指定 HBase SNAPSHOT 作为我的 map reduce 作业的输入。如果不是,还有什么其他选择?
【问题讨论】:
标签:
hadoop
mapreduce
hbase
oozie
hadoop2
【解决方案1】:
您可以为此使用 Uber jar。 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 属性在 oozie-site.xml
中设置为 true
【解决方案2】:
我不认为你可以用 oozie MapReduce Action 做到这一点。也许,您可以使用 Java 操作。但是,使用 Java Action,您需要为 MapReduce 作业编写驱动程序。
根据我对 Oozie 的经验,MapReduce 操作除了基本内容外还有很多限制。例如:Oozie 不支持 ChainMapper 和 ChainReducer。