我想在hbase中执行查询操作,以使用提供的行键列表获取记录。因为mapreduce中的Map器是并行工作的,所以我想使用它。
行键的输入列表将在~100000的范围内,我已经创建了一个 customInputFormat
对于Map器,这将为每个Map器提供1000行键的列表,以便查询hbase表。这些查询到的记录可能在hbase表中存在,也可能不存在,我只想返回那些存在的记录。
我看到了各种各样的例子,我发现的是hbase表 scan
执行操作以获取行键的范围,范围由指定 startingRowKey
以及 endingRowKey
,但我只想查询提供的行键列表。
如何使用mapreduce执行此操作?欢迎任何帮助!
2条答案
按热度按时间u1ehiz5o1#
你可以在你的Map器中使用这种方法,对我来说效果很好,它将返回结果数组。
gfttwv5a2#
当您将行键列表传递给Map器时,您应该
get
对hbase的请求。每get
返回请求密钥的数据,如果密钥不存在,则返回nothing。首先,您应该在
setup()
Map器的方法:那你就可以
get
对hbase表的请求map()
方法,通过get和result示例:在mapper的工作完成之后,您需要关闭到
cleanup()
方法;此外,你可以自由地通过考试的结果
get
要求减速器或使用cleanup()
方法将它们结合起来。这只取决于你的目的。