2013-07-24 52 views
2

我正在运行一个小型群集,其中包含两个HBase 0.94.7区域服务器。我发现通过区域服务器的加载请求非常不平衡。从网络用户界面,我得到:区域服务器负载不均衡的HBase区域

Region1: numberOfOnlineRegions=1, usedHeapMB=26, maxHeapMB=3983 
Region2: numberOfOnlineRegions=22, usedHeapMB=44, maxHeapMB=3983 

该region2被串联为主。我检查了负载平衡器已打开。我在主日志中找到一些日志:

INFO org.apache.hadoop.hbase.master.LoadBalancer: Skipping load balancing because balanced cluster; servers=2 regions=1 average=0.5 mostloaded=1 leastloaded=0 
DEBUG org.apache.hadoop.hbase.master.LoadBalancer: Balance parameter: numRegions=10, numServers=2, max=5, min=5 
INFO org.apache.hadoop.hbase.master.LoadBalancer: Calculated a load balance in 12ms. Moving 5 regions off of 1 overloaded servers onto 1 less loaded servers 
DEBUG org.apache.hadoop.hbase.master.LoadBalancer: Balance parameter: numRegions=8, numServers=2, max=4, min=4 
INFO org.apache.hadoop.hbase.master.LoadBalancer: Calculated a load balance in 0ms. Moving 4 regions off of 1 overloaded servers onto 1 less loaded servers 
INFO org.apache.hadoop.hbase.master.LoadBalancer: Skipping load balancing because balanced cluster; servers=2 regions=1 average=0.5 mostloaded=1 leastloaded=0 
INFO org.apache.hadoop.hbase.master.HMaster: balance hri=LogTable,\x00\x00\x01\xE8\x00\x00\[email protected]\x09\xB2\xBA4$\xC3Oe,1374591174086.65391b7a54e9c8e85a3d94bf7627fd20., src=region2,60020,1374587851008, dest=region1,60020,1374587851018 
DEBUG org.apache.hadoop.hbase.master.AssignmentManager: Starting unassignment of region LogTable,\x00\x00\x01\xE8\x00\x00\[email protected]\x09\xB2\xBA4$\xC3Oe,1374591174086.65391b7a54e9c8e85a3d94bf7627fd20. (offlining) 

看来负载不能从区域2到区域1平衡。我不知道这是否是配置问题?我应该检查region1的哪个参数?

感谢

回答

1

您使用顺序rowkeys,如时间戳吗?如果是这样的话,你可能最终与RegionServer的Hotspotting,把服务器上的负载不均衡。如果可以,请避免使用顺序键。如果无法创建预分割表格。

+0

感谢您的回复。我的rowkey由ID,日志日期和生成的散列值组成。我不确定这是顺序行键的情况。如果是这样,我如何创建预分割表? –

+0

ID是否是顺序的?查看这些预分割表的链接:http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/util/RegionSplitter.html和http://hbase.apache .org/book/perf.writing.html – Tariq

+0

这些ID不是顺序的。这很像日志类型。实际上,我现在关闭了负载均衡,因为我发现一旦开启,我在这里发布了另一个严重问题:[HMaster aborted](http://stackoverflow.com/questions/17792619/fatal-master-hmaster-unexpected -state-不能过境,它到离线)。你能看看这个问题吗?在我看来,其他地区的服务器不能正常工作。 –

0

如果你的rowkey由ID,日期和散列值组成,你可以使rowkey:hashvalue + date。

+0

现在更改rowkey是不可能的。我真正的问题实际上是另一个区域服务器不能正常工作看到这篇文章[HMaster中止](http://stackoverflow.com/questions/17792619/fatal-master-hmaster-unexpected-state-cannot-transit-it-to-离线) –