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(亲测解决)

三 修改完成后的结果

在这里插入图片描述
至此已经大功告成,如果还没成功,那。。。

我的疑问:
为什么关闭了防火墙,防火墙的一些规则还是在起作用?

四 总结

如有错误恳请指正,如有雷同纯属巧合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值