我遇到了错误;java.lang.IllegalArgumentException:错误的FS:hdfs://0.0.0.0:9000 / user / hadoop / dataset / data.log,预期的是:file:///
代码片段
Configuration conf = new Configuration(); conf.addResource(new Path("/home/hadoo/hadoop-2.5.2/etc/hadoop/core-site.xml")); conf.addResource(new Path("/home/hadoo/hadoop-2.5.2/etc/hadoop/hdfs-site.xml")); FileSystem fs = FileSystem.get(conf); Path path = new Path("hdfs://0.0.0.0:9000/user/hadoop/dataset/data.log"); try { if (fs.exist(path)) { return true; } else { return false; } catch (IOException e) { e.printStackTrace(); }
但是,如果我从路径中删除前缀“ hdfs://0.0.0.0:9000”,就可以了。您能否指导我如何解决此问题而无需更改hdfs路径?仅供参考,Hadoop服务器和客户端在不同的计算机上运行。即)Hadoop(HDFS):172.xx.xx.247我的测试客户端:172.xx.xx.236
core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://172.xx.xx.247:9000</value> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value> </property> </configuration>
core-default.xml
<property> <name>fs.file.impl</name> <value>org.apache.hadoop.fs.LocalFileSystem</value> </property> <property> <name>fs.hdfs.impl</name> <value>org.apache.hadoop.hdfs.DistributedFileSystem</value> </property>