【已解决】could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1

在搭建Hadoop分布式集群时遇到报错,文件复制仅能写入0个应为1个的datanode。区别于通常的0个datanode报错,作者尝试了修改网络连接模式,从NAT切换到桥接模式,解决了问题。该问题的根源在于NAT模式对虚拟机IP的封闭导致的网络通信障碍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hadoop分布式集群搭建时出现的问题

原始报错

put: File /user/hadoop/input/yarn-site.xml._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1 node(s) are excluded in this operation.

解决方法

将VMare中的网络连接方式改变即可。如图将默认的NAT模式切换为桥接模式,然后重启Slvae虚拟机,关闭Master集群,重启Master集群。
在这里插入图片描述

讲故事时间

我在网上搜到的大部分解决的都是类似报错,即

could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and no node(s) are excluded in this operation.

但请注意,这种报错显示的是0个datanode,而我的报错显示是有1个datanode,而这类问题大多删除一些文件后重新格式化Namenode即可,可惜并不适用我这种存在datanode的情况。

讲故事时间其二

我是再一次上Hadoop课程才又搞起了这个,但是与上次不同的是,这是我是在Ubuntu的环境下装了VMware,然后再在虚拟机上安装Ubuntu,即Slave节点。
最开始的其实用的是VirtualBox,但是那个总是无法主宿机ping通,网上和教材上都说改成桥接模式就没问题了(伏笔),奈何于我无用,无奈换了VMware,这次倒是没换桥接模式,直接用NAT模式就可以ping通,所以我开开心心继续了配置文件的修改,直到我查看了datanode状态,如图:
在这里插入图片描述
嗯??我明明只有一个worker是Slave,怎么主机Master成了datanode了,其实我是前晚发现的这个问题,但是一直没有解决,那天设置把分布式的配置全部删除,然后用重跑了一遍伪分布式,然后重新配置了分布式,结果还是不行。
然后我就想,这大抵是个网络问题,然后我又想起来NAT的原理,那是对外封闭虚拟机的IP啊,然后我就想着试试换桥接模式行不行,修改倒是很快,改两个hosts,重启,完美运行了。

结语

成也NAT,败也NAT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值