java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as ip:端口(亲测有效)
最近运行Hadoop程序的时候遇到了这个Bug,很久才改好,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用。
一 问题描述
执行程序时,在控制台报的错(或者类似的错误):
在Hadooop的日志中的错误(或者类似的错误):
2021-03-12 22:21:14,316 INFO hdfs.DataStreamer: Exception in createBlockOutputStream blk_1073741896_1072
java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as ip:端口
at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:134)
at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:110)
at org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1778)
at org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1679)
at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:716)
2021-03-12 22:21:14,321 WARN hdfs.DataStreamer: Abandoning BP-1533433992-219.216.86.10-1615443942615:blk_1073741896_1072
2021-03-12 22:21:14,330 WARN hdfs.DataStreamer: Excluding datanode DatanodeInfoWithStorage[ip:端口,DS-7421429e-cddd-4719-ba17-e90dbf9ddbea,DISK]
二 解决思路和步骤
这个排查起来的思路是,先要测试目标服务器物理链路是通的,简单的ssh或是ping就可以,然后确认下目标服务是否启动并且端口正确,最后确定下是不是有防火墙设置。
按以下步骤顺序操作:
1. 关闭集群中所有节点的防火墙
sudo ufw disable
sudo ufw status
2. 测试集群中节点的联通性
节点中的机器相互 ping,是否能ping通
ping ip
如果能ping通,继续下一步,否则,查看ping不同的节点是否宕机。
补充:
ping用来检查网络是否通畅或者网络连接速度的命令。
3. 测试节点自身的控制性
查看集群的相关服务的端口是否能够连接。假如报错涉及的是219.217.65.202:9866,则先在目的服务器测试:
telnet 127.0.0.1 9866
如果报错:telnet: Unable to connect to remote host: Connection refused,请参考Ubuntu中telnet 127.0.0.1时Unable to connect to remote host: Connection refused(亲测解决);如果正常连接,则进行下一步
补充:
telnet是用来探测指定ip是否开放指定端口
4. 测试节点的对外联通性
从主节点去测试这个节点端口是否对外连接:
telnet 219.217.65.202 9866
如果报错:Unable to connect to remote host: No route to host或者在执行原程序还是会(观察hadoop产生的日志)产生java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as ip:端口,请参考:Unable to connect to remote host: No route to host(亲测解决)
三 修改完成后的结果
至此已经大功告成,如果还没成功,那。。。
我的疑问:
为什么关闭了防火墙,防火墙的一些规则还是在起作用?
四 总结
如有错误恳请指正,如有雷同纯属巧合