hadoop集群中有一台datanode始终不接受数据的问题,已解决,成功经验分享

最近做hadoop的实验,有一个datanode始终接收不到数据是怎么回事?
我用Got back one command: FinalizeCommand/5、Got finalize command for block pool、Detected pause in JVM or host machine (eg GC): pause of approximately、No GCs detected,这几个关键词去查询,也没有实质进展,最终自己找到原因:端口没开,开了之后一切正常,经验分享出来,避免大家再犯同样错误。

以下是解决问题的过程:
症状如下:datanode向namenode发送报告成功:16/04/20 07:23:21 INFO datanode.DataNode: Successfully sent block report 0x1e018586ba61,  containing 2 storage report(s), of which we sent 2. The reports had 0 total blocks and used 1 RPC(s). This took 1 msec to generate and 35 msecs for RPC and NN processing. Got back one command: FinalizeCommand/5.
然后namenode不断的向该datanode请求复制几个块以达到3个副本的目的
然后datanode这个信息:16/04/20 07:23:21 INFO datanode.DataNode: Got finalize command for block pool BP-1870152372-namenode的ip-1442391213560
然后就一直卡在这
过了一段时间出现这个

16/04/20 08:07:52 INFO util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 3563ms
No GCs detected

根据这些信息在网上找,说是namenode出了什么问题,建议重启,我试过之后,还是不行。
突然想起来是不是防火墙对该机相应的端口没开,看了下不在防火墙下,然后看该机本地防火墙,果然端口没开,开了之后一切正常。
回顾一下,之前做实验都是直接关闭防火墙,这次做实验都做了防火墙规则,这台机子是最后加进去的,估计当时忘了开端口。
最终问题解决,经验分享出来,避免大家再犯同样错误。