一. Region Server 意外退出
1.1 背景
报错信息如下:
ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired
之后, regionserver就退出了。
对于一个 reigonserver, 它需要将自己注册到 Zookeeper 上 master 的 Znode 上。这样的目的,是当master 宕机或者新的master启动的时候,能及时收到通知。对于 regionserver来说,维持和 Zookeeper 的联系是非常重要的。因为 regionserver 需要定期的将心跳包发给 master server。如果 regionserver 不能及时的知道 master 的改变,就会导致 regionserver 和 master 失去联系,而成为一个僵死的进程。
于是,在默认情况下,regionserver 遇到这种情况,就选择退出。
1.2 原因
为什么 regionserver 和Zookeeper的session expired? 可能的原因有
- 网络不好
- Java full GC, 这会 block 所有的线程。如果时间比较长,也会导致 session expired

本文探讨了HBase Region Server意外退出的原因,包括网络问题和Java Full GC导致的Session过期。提出了延长Zookeeper超时时间和配置Region Server在Session过期后重启的解决方案,以及通过调整hbase-env.sh防止Full GC影响心跳发送。

1028

被折叠的 条评论
为什么被折叠?



