如何解决HBase:一个区域服务器每秒拥有所有请求
我有一个在 AWS EMR 上运行的高可用性 (HA) HBase。 HA HBase 意味着我有 3 个主节点而不是一个。我也有 61 个区域服务器 使用 HBase UI,我看到我的一个区域服务器每秒大约有大约 1000 个请求,其余区域服务器每秒大约有大约 60 个请求。
这种不匹配意味着什么?我该如何解决这个问题?
谢谢
解决方法
这是“hotstpotting”的常见标志——您的表没有以允许所有区域服务器参与为其提供服务的方式进行拆分。
您需要考虑应用程序的访问模式,并将它们与表的实际拆分方式以及行键的设计方式进行比较。
对于深入研究这个问题的最简单方法,我建议如下:
- 在 HBase UI 中,注意获得所有点击的区域服务器
- 点击该区域服务器的链接(其名称可点击)
- 这将打开该特定区域服务器的 UI。向下滚动,您将看到该区域服务器正在服务的所有表中的所有区域。您还将看到每个区域服务器的实际“开始”和“结束”
此信息应该可以帮助您确定问题所在:此区域服务器是否提供过多表?或者太多繁忙的地区?为什么其他服务器没有分配到这些区域中的任何一个?也许你设计的行键会导致热点(通常最有可能的问题)
如果不是这样,那么我注意到的一件事是,即使您将表设计为均等拆分(例如通过使用十六进制拆分器),您仍然可能会遇到来自 SAME 的繁忙区域过多的情况繁忙的表只分配给一台服务器。在这种情况下,HBase 有一个方便的属性,可以在表级别强制跨不同服务器均匀区域分布。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。