Wrong FS: hdfs:, expected:file:///

这是在对hdfs进行写入操作时发现的错误,最终解决了,给大家分享一下,希望对遇到同样问题的朋友有所帮助,我使用的是hadoop2.6.0版本。

Path path = new Path("hdfs://master:9000/hadoopdata/dfs/name/WriteSample.log");
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
FSDataOutputStream fsout = fs.create(path);
byte[] buff = "hello world".getBytes();
fsout.write(buff);
fsout.hflush();
fsout.hsync();
fsout.close();

以上是关键代码。

遇到的错误是:Exception in thread "main" java.lang.IllegalArgumentException:Wrong FS: hfs://master:9000/hadoopdata/dfs/name, expected file:///

修改的方法:将FileSystem fs = FileSystem.get(conf); 改为: FileSystem fs = path.getFileSystem(conf);

至于为什么,我没有继续深究,希望知道的同学能指点一下,跟大家分享分享。

你可能感兴趣的:(hadoop,hdfs,Wrong,FS,file,hadoop)