我的代码中有这样一行:
DistributedFileSystem.get(conf).delete(new Path(new URI(otherArgs[1])), true);
``` `otherArgs[1]` 具有以下值: `hdfs://master:54310/input/results` 我收到这个例外:
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS:hdfs://master:54310/input/results, expected: file:///
at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:354)
at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:55)
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:367)
at org.apache.hadoop.fs.ChecksumFileSystem.delete(ChecksumFileSystem.java:430)
at ..main(Degree.java:137)
注意:我试着用 `new Path(otherArgs[1])` 没有uri,但得到了完全相同的错误!
谢谢,-k
2条答案
按热度按时间p8ekf7hl1#
看起来您尚未在core-site.xml中设置fs.default.name。
检查此链接
如果已经设置了,请确保配置文件位于类路径中
您还可以从驱动程序中设置fs.default.name属性
webghufk2#
原来我是用“hadoop-jar”而不是“hadoopjar”运行jar的。所有的conf文件都是正确的。
问题解决了,但我仍然不知道为什么使用“-jar”使它作为本地(伪分布式)运行!