我是靠谱客的博主 无奈心情,最近开发中收集的这篇文章主要介绍Hbase的GC时间小于zookeeper超时时间宕机分析1.生产现象2.问题3.原因分析4.怎么正确设置hbase的zookeeper的超时时间,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.生产现象

   生产上,hbase因为GC原因宕机,详细日志如下

  

2.问题

   我的zookeeper超时时间设置时60s,为什么59s就检测到宕机?

 

 

3.原因分析

    1.第一个原因是的zookeeper超时时间没设置正确

    2.正确设置后,发现还是出现不到时间宕机的情况,分析发现hbase的宕机时间是2/3的zookeeper超时时间。

4.怎么正确设置hbase的zookeeper的超时时间

   zookeeper的SessionTimeout
 
  1.SessionTimeout在hbase宕机中有什么作用?
 
  2.SessionTimeout由谁决定?
 
  3.min/max.SessionTimeout由谁确定?

 

4.1  SessionTimeout在hbase宕机中有什么作用?

       hbase如果在SessionTimeout时间,和zookeeper没有心跳,则zookeeper认为hbase宕机,删除该节点注信息,启动宕机流程。

4.2 SessionTimeout由谁决定?

  1.      SessionTimeout由minSessionTimeout和maxSessionTimeout决定。
  • 如果客户端设置的超时时间t   minSessionTimeout<=client_t<=maxSessionTimeout   实际SessionTimeout时间,SessionTimeout=client_t。
  • 否则 sessionTimeout < minSessionTimeout ,实际SessionTimeout时间sessionTimeout = minSessionTimeout。
  • 否则 sessionTimeout >maxSessionTimeout ,实际SessionTimeout时间sessionTimeout = maxSessionTimeout。

    2.  Test。

       echo conf|nc localhost 2181

zkClient = new ZooKeeper("192.168.2.201:2181", 5000, new WatchConn());

SessionTimeout=5000 <minSessionTimeout

minSessionTimeout<SessionTimeout=200000  <maxSessionTimeout

maxSessionTimeout<SessionTimeout=400000

 

4.3 min/max.SessionTimeout?

 
  1. min/max.SessionTimeout 由你的是否配置min/max.SessionTimeou决定,
         如果配置由实际配置参数决定。
         如果没有配置,默认为-1,由 tickTime参数决定,其中
 
         minSessionTimeout=tickTime * 2
 
         maxSessionTimeout = tickTime * 20
 
 

/**
* Minimum number of milliseconds to allow for session timeout.
* A value of -1 indicates unset, use default.
*/
protected int minSessionTimeout = -1;

/**
* Maximum number of milliseconds to allow for session timeout.
* A value of -1 indicates unset, use default.
*/
protected int maxSessionTimeout = -1;


/** minimum session timeout in milliseconds */
public int getMinSessionTimeout() {
return minSessionTimeout == -1 ? tickTime * 2 : minSessionTimeout;
}

/** maximum session timeout in milliseconds */
public int getMaxSessionTimeout() {
return maxSessionTimeout == -1 ? tickTime * 20 : maxSessionTimeout;
}

 2. 排查hbase是否设置正确

    grep negotiated timeout hbase-hadoop-regionserver-hadoop01.log

最后

以上就是无奈心情为你收集整理的Hbase的GC时间小于zookeeper超时时间宕机分析1.生产现象2.问题3.原因分析4.怎么正确设置hbase的zookeeper的超时时间的全部内容,希望文章能够帮你解决Hbase的GC时间小于zookeeper超时时间宕机分析1.生产现象2.问题3.原因分析4.怎么正确设置hbase的zookeeper的超时时间所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部