我有一个5节点的HBase集群,主要具有获取顺序数据的输入请求。通过分割区域实现HBase负载均衡
为了优化存储,我在高负载区域运行手动区域分割,但是它并没有优化太多,因为它会分割区域,但大部分位于同一个区域服务器上。
如何控制区域分裂这样
r-1(k1 to k2) on server s1,
r-2(k2 to k3) on server s2,
r-3(k3 to k4) on server s3,
r-4(k4 to k5) on server s4,
r-5(k5 to k6) on server s5,
r-6(k6 to k7) on server s1,
即,分割后,没有连续的区域去同一个服务器来控制同一台服务器上的负载。
是什么让你觉得这是造成问题?负载平衡器默认每5分钟运行一次,并移动/分割区域以平衡群集负载。这应该够了。然后由HDFS处理群集之间的分配。 –
感谢Raze2dust的回复。 在同一区域服务器上连续区域的唯一问题是 - 请求连续数据时,需要更多时间,因为它超过了base.regionserver.handler.count和某些请求的限制进入等待状态。 –
只为例如: 默认负载均衡后,我们注意到区域的分布是喜欢 - R-1上S4, R-2上S1, R-3上S1, R-4上S2, R- S5上S2, r-6在S2上, r-7在S3上, r-8上s5,..现在每个区域的请求数/秒数几乎相同。 但是获取位于区域r-4到r-6之间的数据的新请求完全仅取决于单个服务器S-2。 如何控制区域分布,使得没有连续的区域进入同一台服务器。 谢谢 –