我们正在尝试使用 Thrift 在集群上扩展 HBase 写入。(我们的HBase应用程序是Python的,因此需要Thrift。
尽管集群中的节点数量有所增加,但我们看到的写入速度相同。
首先,是运行Thrift的推荐策略:1. 客户?2. HBase大师?3. HBase 区域服务器?
如果在 #1 或 #2 上,客户端或 HBase 主服务器是否会负责将请求拆分到各个区域服务器?在我们的案例中似乎并非如此。
如果是#3,那么我必须修改客户端以写入特定区域服务器,并随机化写入。我可以这样做,但它似乎违背了使用 HBase 的目的。
非常感谢有关读/写扩展的任何其他技巧(尤其是使用Thrift)。
在 HBase 中,要通过节点增加获得性能,您应该有一个不错的"rowkey"分布。只要集群中有"热点"(非常繁忙的区域服务器),增加集群大小就不会有任何好处。首先查看有关行键设计的文章。
如果您不需要立即读取(如果您对异步写入感到满意),则可以从 stumbleon 检查异步 hbase 客户端以提高性能。
我在这两个问题中找到了答案,看起来我们将使用 #3(写入特定区域服务器,并随机化写入):
- 通过
- 一个流还是通过多个服务器同时将数据发送到 hbase 更好?
- HBase Thrift:如何连接到远程HBase主/集群?