【发布时间】:2012-06-18 05:13:13
【问题描述】:
我有一个 5 节点的 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 的限制并且一些请求进入等待状态。
-
举个例子:在默认负载均衡之后,我注意到区域的分布是-S4上的r-1,S1上的r-2,S1上的r-3,S2上的r-4,r S2 上的 -5,S2 上的 r-6,S3 上的 r-7,s5 上的 r-8,.. & 现在每个区域的请求/秒数几乎相同。但是在区域 r-4 到 r-6 之间获取数据的新请求完全依赖于单个服务器 S-2。如何以没有连续区域进入同一服务器的方式控制区域分布。谢谢