0

コードに次の行があります。

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 <package>.<classname>.main(Degree.java:137)    

注: new Path(otherArgs[1])URI なしで使用しようとしましたが、まったく同じエラーが発生しました。

ありがとう、-K

4

2 に答える 2

0

「hadoop jar」ではなく「hadoop -jar」を使用してjarを実行していたことがわかりました。すべての conf ファイルが正しく配置されている。

問題は解決しましたが、「-jar」を使用してローカル(疑似分散)として実行した理由はまだわかりません!

于 2014-10-15T02:14:09.137 に答える
0

core-site.xml にfs.default.nameが設定されていないようです。

このリンクを確認してください

すでに設定している場合は、構成ファイルがクラスパスにあることを確認してください

ドライバーから fs.default.name プロパティを設定することもできます

conf.set("fs.default.name", "hdfs://yourserver:port");
于 2014-10-14T05:31:22.193 に答える