最近在阿里云上进行伪分布式Hadoop开发,在本地windows的java程序对HDFS进行访问时,出现了如下问题:
File /hdfsapi/test/a.txt could only be replicated to 0 nodes instead of minReplication (=1)
经过多方查询,了解到问题的原因:客户端操作hdfs时候先连接namenode,然后namenode分配给客户端一个datanoe的ip地址,如果这个ip地址客户端无法访问到,就会被客户端添加到排除列表中
解决办法:
configuration.set("dfs.client.use.datanode.hostname", "true");//让可以使用主机名传参数
configuration.set("fs.defaultFS", "hdfs://你的linux主机名:8020");//主机名访问
C:\Windows\System32\drivers\etc\host文件中修改:ip地址 linux主机名