问题来自于hbase的namenode高可用测试,测试采用iptables来模拟active namenode机器宕机问题,测试过程中发现,当hadoop的namenode发生了failover之后,hbase需要过很长时间(大约需要15分钟)才能写入。
经过分析主要是linux tcp参数的影响,主要影响参数是tcp_retries2
tcp_retries2 :INTEGER
默认值为15
在丢弃激活(已建立通讯状况)的TCP连接之前﹐需要进行多少次重试。默认值为15,根据RTO的值来决定,相当于13-30分钟(RFC1122规定,必须大于100秒).线上一般不会有这个问题,所以不建议修改
该参数的修改,需要在与原active namenode机器通信的其他主机上设置echo 2 > /proc/sys/net/ipv4/tcp_retries2