三台服务器,hdsf和yarn都正常启动,几K的小文件正常传输,188M的大文件DataNode日志一直在跑 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Slow BlockReceiver write packet to mirror took 1107ms (threshold=300ms)
然后主机完成上传报错 WARN hdfs.DFSClient: Slow waitForAckedSeqno took 39186ms (threshold=30000ms) put: java.nio.channels.ClosedChannelException
查看文件变小,只有80多M
我觉得是等待阈值时间太小, 请问大佬们如何解决这个问题? 服务器是CentOS7.7 2核4G 1M
很急,谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到Hadoop HDFS上传大文件时出现慢写警告(Slow BlockReceiver/write packet)以及最终的ClosedChannelException
,通常意味着数据传输过程中遇到了网络延迟、资源不足或配置不当的问题。针对您描述的情况,可以尝试以下几个解决方案:
调整HDFS配置参数:
hdfs-site.xml
中设置:
<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>60000</value> <!-- 设置为60秒 -->
</property>
<property>
<name>dfs.client.socket-timeout</name>
<value>240000</value> <!-- 设置为4分钟 -->
</property>
<property>
<name>io.file.buffer.size</name>
<value>65536</value> <!-- 或更大,如131072 -->
</property>
检查网络状况:确保服务器之间的网络连接稳定,没有明显的丢包或延迟问题。使用如ping
、traceroute
等工具进行基本的网络诊断。
资源优化:
iostat
命令监控磁盘使用情况,必要时优化磁盘配置或升级硬件。YARN配置:虽然直接与HDFS写入问题关系不大,但确保YARN的资源配置合理,避免因资源调度问题间接影响到HDFS操作。
重启服务:在修改配置后,记得重启HDFS相关服务(包括NameNode和DataNodes)以使更改生效。
日志分析:深入分析DataNode的日志,查找是否有其他异常信息,这可能提供更具体的故障线索。
请逐一尝试上述建议,并观察效果。希望这些建议能帮助您解决问题。