zookeeper的maxSessionTimeout默认值导致hbase regionserver超时

zookeeper的maxSessionTimeout默认值导致hbase regionserver超时

在hbase中经常会遇到regionserver挂掉的情况,查看日志会看到这样的错误信息
2016-02-16 11:51:24,882 WARN  [master/hadoop02/192.168.100.5:6000] zookeeper.ZKUtil: master:6000-0x3525df55101a556, quorum=hadoop02:2181,hadoop03:2181,hadoop01:2181, baseZNode=/hbase Unable to get data of znode /hbase/xx
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/xx
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:127)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
        at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1155)
        at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.getData(RecoverableZooKeeper.java:359)
        at org.apache.hadoop.hbase.zookeeper.ZKUtil.getData(ZKUtil.java:745)

说明与zookeeper的连接的session超时了,可是在hbase-site.xml中设置了zookeeper的超时时间为2分钟,原来
zookeeper中自带两个参数设置了session的超时时间,在启动时日志中会显示
2016-02-16 11:39:49,164 - INFO  [main:QuorumPeer@992] - tickTime set to 2000
2016-02-16 11:39:49,165 - INFO  [main:QuorumPeer@1012] - minSessionTimeout set to -1
2016-02-16 11:39:49,165 - INFO  [main:QuorumPeer@1023] - maxSessionTimeout set to -1

而minSessionTimeout 和maxSessionTimeout 是用下面的方式算出来的
public int getMinSessionTimeout()
{ return minSessionTimeout == -1 ? tickTime * 2 : minSessionTimeout; } 
public int getMaxSessionTimeout() 
{ return maxSessionTimeout == -1 ? tickTime * 20 : maxSessionTimeout; }

默认情况,tickTime=2sec,那么minSessionTimeout 和 maxSessionTimeout 分别是4sec和40sec

所以在hbase中设置超时时间是没用的,必须修改zookeeper自身的maxSessionTimeout为1200000,才能真正起到加长zookeeper的session超时时间的作用

时间: 2024-08-02 03:06:21

zookeeper的maxSessionTimeout默认值导致hbase regionserver超时的相关文章

fs.inotify.max_user_watches默认值太小,导致too many open files

看到too many open files可能想到fs.file-max参数,其实还受下面参数影响: fs.inotify.max_queued_events:表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件. fs.inotify.max_user_instances:表示每一个real user ID可创建的inotify instatnces的数量上限,默认128. f

ZooKeeper原理及其在Hadoop和HBase中的应用

ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理.Master选举.分布式锁和分布式队列等功能. 简介 ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理.Master选举.分布式锁

[原创]TCP的backlog导致的HBase访问超时问题排查(续)

接前一篇文章 TCP的backlog导致的HBase超时问题 https://yq.aliyun.com/articles/117801?spm=5176.8091938.0.0.kypXIC 问题场景 如上图所示,用户业务服务器(ApplicationServer)上面发起HTTP GET/PUT请求,经过SLB到达后端服务器(HBase-Rest-Server), 一般请求链路耗时大概100ms左右,但是会有一定的概率出现耗时很长(超过3s). 业务方提出问题: 1.为什么slb到ecs连接

[ExtJS]设置级联菜单的默认值

前言 ExtJS在修改这样的页面上赋值是很方便的,在正文中1.2.1代码中可以看出,一行代码就可以搞定,但这是对于普通控件而言,如文本框.对于ComboBox可没这么简单...   版本 Ext JS Library 3.0.0   正文 一.问题 1.1 截图   1.2 代码 1.2.1 前端代码     <script type="text/javascript">         //        function ExtStore(url)         {

TIMESTAMP列类型详解(怎样设列的默认值为Now())

详解 TIMESTAMP列类型详解(怎样设列的默认值为Now()) MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型 TIMESTAMP列类型TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示.TIMESTAMP值显示尺寸的格式如下表所示::+---------------+----------------+| 列类型      

MYSQL中设列的默认值为Now()

MySQL目前不支持列的Default为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型 下面就详细说明TIMESTAMP列类型 TIMESTAMP列类型 TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示. TIMESTAMP值显示尺寸的格式如下表所示: : +---------------+----------------+ | 列类型 | 显示格式 | | TIMESTAMP(14) | YYYYMMD

关于ol和ul的padding和margin默认值

 ol, ul { padding-left:40px; } 而IE的默认样式是: ol, ul { margin-left:30pt; } Opera 8或者以前的版本是否和IE一样?有兴趣的同志可以自行测试. 但这至少说明一点,除了微软之外的浏览器厂商都达成一致意见,list的缩进应该使用padding来控制.其实这很好理解,缩进的是每一个item而不是整个的list.设计者对list有怎样的期望呢?比如说设置了ul的background:green,多数人应会期待整个ul(即包括了padd

交互设计中的默认值

寒冷的冬日到陌生环境中往往会碰到水温调节,剧情一般是这样的:你调节到一个自认为合适的刻度,放了一段时间水后发现还是冷的,于是慢慢放大热水,几次调解后索性将热水开到最大,结果太烫,放大冷水,太冷,放小冷水,太烫,放小热水--最后合适了,咱们即使没有感冒也开始记恨这个淋浴器.比较合理的是一种叫 "恒温龙头"的产品,它给定一个用户不需要预设的默认水温:打开就是38度,这个值是我们洗澡的舒适点,不过你要是觉得冷了,顺时针变热,反之逆时针变冷,变热有阀值温度40度,这个温度以上会烫伤皮肤,实在想

Win8系统防火墙还原默认值如何设置

  防火墙是windows系统自带的一项安全功能,通过防火墙相关设置能够很好的保护系统的安全不易被黑客攻击或病毒感染,而每个用户对系统的安全要求也不一样,虽然可以使用第三方安全软件来保护系统,但有些用户可以也会对windows防火墙相关设置.其实和win7 64位还是有差别的,那么对win8系统防火墙设置之后又该如何还原默认值呢? Win8系统防火墙还原默认值设置方法其实是很简单的,只需要通过几个步骤就可以完成了,具体的操作如下所示: 1.进入控制面板,点击"系统和安全"; 2.进入系