首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按键从HBase表中取值

按键从HBase表中取值
EN

Stack Overflow用户
提问于 2015-05-07 04:37:20
回答 2查看 121关注 0票数 1

有一个包含数百亿条记录的HBase表,其中一个键是一行40个字节。还有一个包含数十万个密钥的列表。我需要用这个键获取所有记录,并返回某些表字段的值。因此,我的目的是将一组键转换为一组值。执行任务的最方便和/或最有效的方式是什么(使用任何编程语言和技术)?

EN

回答 2

Stack Overflow用户

发布于 2015-05-21 15:37:54

您可以使用HBase Java API。在类java伪代码中

代码语言:javascript
复制
conf = HBaseConfiguration.create()
conf.set("hbase.zookeeper.quorum", "ZOOKEEPER_USED_BY_HBASE")
connection = ConnectionFactory.createConnection(conf)
table = connection.getTable("tablename")
gets = new ArrayList<Get>()
for all keys {
    gets.add(new Get(key.toBytes()))
}
table.get(gets) 

还有一些建议:

  • 看看Get javadoc,如果键共享一些公共前缀,您可以将其配置为只返回
  • 中您感兴趣的列,使用Scan with start/stop row也可以。调用scan.setCaching(5000)使其在使用时稍微快一点。
票数 1
EN

Stack Overflow用户

发布于 2015-05-07 04:53:10

我在MongoDB上测试了MapReduce,看看它从集合中获取键/值对的效率如何。它只是一个100k记录的集合,但一个小的JavaScript函数能够检索所有国家和它们在集合中出现的次数。

代码语言:javascript
复制
Map1 = function()
{
    Emit(this.country, 1)
}

    Reduce1 = function(key, vals) {
for(var i=0, sum=0; i < vals.length; i++)
{
    sum += vals[i];
}
return sum;
}

话又说回来,我不知道数十亿条记录的M/R会有多大的效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30087054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档