org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/a.txt.COPYING could only be replicated to 0 nodes instead of minReplication (=1). There are 2 datanode(s) running and 2 node(s) are excluded in this operation.
问题原因
1、datanode没有启动
2、NameNode节点存放的是文件目录,也就是文件夹、文件名称,本地可以通过公网访问 NameNode,所以可以进行文件夹的创建,当上传文件需要写入数据到DataNode时,NameNode 和DataNode 是通过局域网进行通信,NameNode返回地址为 DataNode 的私有 IP,本地无法访问。
解决
1、此原因是namenode和datanode的clusterID不一致导致datanode无法启动
这个问题的原因可能是使用hadoop namenode -format格式化时格式化了多次造成那么spaceID不一致
(1)、停止集群(没有配环境变量切换到/sbin目录下)
./stop-all.sh
(2)、删除在hdfs中配置的data目录(即在core-site.xml中配置的hadoop.tmp.dir对应文件件)下面的所有数据;
rm -rf /hadoop/hdfs
(3)、重新格式化namenode
hadoop namenode -format
(4)、重新启动hadoop集群(没有配环境变量切换到hadoop目录下的sbin目录下)
./start-all.sh
2、关闭所有机子的防火墙
systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 永久关闭防火墙