我正在运行一个带有两个HBase 0.94.7区域服务器的小型集群。我发现区域服务器上的加载请求非常不平衡。从Web UI,我得到了:
Region1: numberOfOnlineRegions=1, usedHeapMB=26, maxHeapMB=3983
Region2: numberOfOnlineRegions=22, usedHeapMB=44, maxHeapMB=3983
区域2被称为主人。我检查了负载均衡器是否已打开。我在主日志中找到了一些日志:
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上查看哪个参数?
由于
答案 0 :(得分:1)
您是否正在使用顺序rowkeys,例如timestamp?如果是这种情况,您最终可能会使用 RegionServer Hotspotting ,从而在服务器上施加不均衡的负载。如果可以,请避免使用顺序键。如果无法创建预拆分表。
答案 1 :(得分:0)
如果你的rowkey由ID,日期和哈希值组成,你可以创建rowkey:hashvalue + date。