加载文件时如何平衡HBase的负载?

时间:2014-04-18 05:21:30

标签: hadoop hbase apache-zookeeper

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

我已删除" hbase.hregion.max.filesize "来自hbase-site.xml配置文件的参数。

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

我想,我错过了一些配置。

1 个答案:

答案 0 :(得分:0)

通常使用HBase主要问题是准备不是单调的rowkeys。 如果是,则当时仅使用一个区域服务器: 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']}

问候
的Pawel

相关问题