我使用linux 的命令直接上传文件,显示的副本数是1 ,我的配置文件里面配置的默认副本数也是1
如图
这跟我配置里面的是一样的,但是我使用HDFS的API上传文件的时候,老是会报错
Exception in thread "main" org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/root/data/2.txt could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and 1 node(s) are excluded in this operation.
说我缺少节点
分析原因:
原来是我在windows 端使用HDFS的api写的代码时候,没有指定副本的放置策略,需要在创建文件系统的时候,使用congfig的set 去设置,例如
解决方法1:Configuration entries = new Configuration(); entries.set("dfs.replication", "1");
解决方法2:将服务器上的配置文件保存至idea的工程里面