FusionInsight HD HBase集群端口占满

发布时间:  2016-09-10 浏览次数:  273 下载次数:  0
问题描述

FusionInsight版本:FusionInsight V100R002C02  单平面组网

HBase集群的MapReduce任务失败,通过现场的日志我们看到是MapReduce任务的ApplicationMaster报错:


处理过程

登录ApplicationMaster所在服务器查看,发现端口确实已占满:


占满端口的服务为HBaseRegionServer,该服务到DataNode的连接有大量处于CLOSE_WAIT状态。


TCP连接进入CLOSE_WAIT状态的原因是对端关闭了socket连接,但是本端没有调用socket.close导致,TCP连接会进入CLOSE_WAIT状态,这种状态的TCP连接依然会占用的端口号资源。当前系统存在大量这样的连接,随机端口号资源则会被占满,导致无法再分配随机端口号。


RegionServerDataNode连接大量处于CLOSE_WAIT状态是由于Hadoop2.3之前的一个社区问题导致:




根因

社区问题HDFS-5671,HDFS客户端代码里的DFSInputStream(RegionServer使用了该接口)在创建到DataNode连接后无法保证一定对该连接进行socket.close处理,导致会残留大量CLOSE_WAITTCP连接


解决方案

重启HBase服务或HDFS服务,因为连接是HBase建立到HDFS的,重启任何一端连接都会被释放。


END