2

我正在运行一个带有两个 HBase 0.94.7 区域服务器的小型集群。我发现区域服务器上的负载请求非常不平衡。从 Web UI,我得到:

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\x01@\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\x01@\x09\xB2\xBA4$\xC3Oe,1374591174086.65391b7a54e9c8e85a3d94bf7627fd20. (offlining)

似乎无法从region2到region1的负载均衡。不知道是不是配置问题?我应该在 region1 上检查什么参数?

谢谢

4

2 回答 2

1

您是否使用顺序行键,例如时间戳?如果是这种情况,您最终可能会使用RegionServer Hotspotting,从而在服务器上施加不均匀的负载。如果可以,请避免使用顺序键。如果不可能创建预拆分表。

于 2013-07-24T11:14:26.530 回答
0

如果您的 rowkey 由 ID、日期和哈希值组成,您可以将 rowkey 设为:hashvalue+date。

于 2013-07-25T08:34:35.270 回答