我有一个在aws emr上运行的高可用性(ha)hbase。一个hahbase意味着我有3个主节点而不是一个。我还有61个区域服务器使用hbase ui,我看到我的一个区域服务器每秒约有1000个请求,其余区域服务器每秒约有60个请求。这种不匹配意味着什么?我如何解决这个问题?谢谢您
rbpvctlc1#
这是“hotspotting”的常见标志——表的拆分方式不允许所有区域服务器都参与服务。您需要考虑应用程序的访问模式,并将它们与实际情况(表的实际拆分方式以及行键的设计方式)进行比较。对于最简单的方法,我建议如下:在hbase ui中,注意获得所有点击的区域服务器在该区域服务器的链接上计时(其名称可单击)这将打开特定区域服务器的ui。向下滚动,您将看到此区域服务器正在服务的所有表中的所有区域。您还将看到每个区域服务器的实际“开始”和“结束”这些信息应该可以帮助您确定问题所在:这个区域服务器是否提供了太多的表?或者太多繁忙的地区?为什么其他服务器没有分配这些区域?也许您设计行键的方式会导致热插拔(最常见的问题)如果不是这样,那么我注意到的一件事是,即使您将表设计为相等拆分(例如通过使用十六进制拆分器),您仍然可能会遇到这样的情况:来自同一个繁忙表的太多繁忙区域被分配给一台服务器。在这种情况下,hbase有一个方便的属性,它在表级别强制执行跨不同服务器的均匀区域分布。
1条答案
按热度按时间rbpvctlc1#
这是“hotspotting”的常见标志——表的拆分方式不允许所有区域服务器都参与服务。
您需要考虑应用程序的访问模式,并将它们与实际情况(表的实际拆分方式以及行键的设计方式)进行比较。
对于最简单的方法,我建议如下:
在hbase ui中,注意获得所有点击的区域服务器
在该区域服务器的链接上计时(其名称可单击)
这将打开特定区域服务器的ui。向下滚动,您将看到此区域服务器正在服务的所有表中的所有区域。您还将看到每个区域服务器的实际“开始”和“结束”
这些信息应该可以帮助您确定问题所在:这个区域服务器是否提供了太多的表?或者太多繁忙的地区?为什么其他服务器没有分配这些区域?也许您设计行键的方式会导致热插拔(最常见的问题)
如果不是这样,那么我注意到的一件事是,即使您将表设计为相等拆分(例如通过使用十六进制拆分器),您仍然可能会遇到这样的情况:来自同一个繁忙表的太多繁忙区域被分配给一台服务器。在这种情况下,hbase有一个方便的属性,它在表级别强制执行跨不同服务器的均匀区域分布。