【问题标题】:How to balance load of HBase while loading file?加载文件时如何平衡HBase的负载?
【发布时间】:2014-04-18 05:21:29
【问题描述】:

我是 Apache-Hadoop 的新手。我有 3 个节点的 Apache-Hadoop 集群。我正在尝试加载一个包含 45 亿条记录的文件,但它没有分发到所有节点。这种行为有点像区域热点。

我已从 hbase-site.xml 配置文件中删除“hbase.hregion.max.filesize”参数。

我观察到,如果我使用 4 个节点的集群,那么它将数据分发到 3 个节点,如果我使用 3 个节点的集群,那么它会分发到 2 个节点。

我想,我缺少一些配置。

【问题讨论】:

  • 可能是您的键不均衡。你能检查一下.META吗?表来查看哪个区域没有被填充,它是开始键和结束键..
  • 感谢 Chandra kant,.META 表中缺少一个节点。我们清除/格式化了集群并重新开始。现在它运行良好..!
  • 那我可以回答吗?您可以接受它作为解决方案。

标签: hadoop hbase apache-zookeeper


【解决方案1】:

一般来说,HBase 的主要问题是准备非单调的行键。 如果是,则当时只使用一个区域服务器: http://ikaisays.com/2011/01/25/app-engine-datastore-tip-monotonically-increasing-values-are-bad/

这是关于 RowKey 设计的 HBase 参考指南:
http://hbase.apache.org/book.html#rowkey.design

还有一篇非常好的文章:
http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/

在我们的案例中,区域服务器的预定义也改善了加载时间:

create 'Some_table', { NAME => 'fam'}, {SPLITS=> ['a','d','f','j','m','o','r','t','z']}

问候
帕维尔

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-21
    • 2010-09-15
    • 2022-01-10
    • 2010-12-01
    • 2014-02-04
    • 1970-01-01
    • 2012-07-22
    • 2012-09-13
    相关资源
    最近更新 更多