HDFS api上传文件和hdfs命令上传副本数为什么不一致?

我使用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的工程里面

猜你喜欢

转载自blog.csdn.net/weixin_38638777/article/details/104772343