如何从 Result 对象中获取 HBase 表名作为 mapreduce 参数?

Posted

技术标签:

【中文标题】如何从 Result 对象中获取 HBase 表名作为 mapreduce 参数?【英文标题】:How can I get the HBase table name from a Result object as the mapreduce parameter? 【发布时间】:2013-12-26 02:28:02 【问题描述】:

HBASE-3996 支持多个表和扫描仪作为 map/reduce 作业中映射器的输入。 map 函数总是如下所示:

public void map(ImmutableBytesWritable row, Result value, Context context)

在map函数中,如何区分(Result)值来自哪个表?

【问题讨论】:

【参考方案1】:

您可以从上下文中提取 TableSplit,这应该适合您(未经测试):

public void map(ImmutableBytesWritable row, Result value, Context context) 
    TableSplit currentSplit = (TableSplit)context.getInputSplit();
    byte[] tableName = split.getTableName();
    ....

【讨论】:

以上是关于如何从 Result 对象中获取 HBase 表名作为 mapreduce 参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中从以下获取表名

HBase之读写流程

如何从 Eloquent 模型中静态获取表名?

HBase 列数据类型

如何在 json 对象中包含表名

kafka+storm+hbase