2

HDFS にデータをプッシュするクライアントを構築しています。HDFS はファイアウォールの背後にあるクラスター内にあるため、HttpFS をプロキシとして使用してアクセスします。IOExceptionHDFS に読み書きしようとすると、クライアントが終了します。メッセージはNo FileSystem for scheme: webhdfs. コードはとてもシンプルです

String hdfsURI = "webhdfs://myhttpfshost:14000/";
Configuration configuration = new Configuration();
FileSystem hdfs = FileSystem.get(new URI(hdfsURI), configuration);

最後の行でクラッシュします。私は Maven 3.0.4 でビルドしており、プロジェクトに Hadoop-Client 依存関係 2.2.0 を追加しました。curlコマンドラインからのアクセスは正常に機能します。

これが失敗する理由はありますか?

4

1 に答える 1

4

SO に関するこの質問と同様に、FS アクティビティを実行する前に次のコードを追加する必要がありました。

configuration.set("fs.webhdfs.impl", org.apache.hadoop.hdfs.web.WebHdfsFileSystem.class.getName());

理由はわかりませんが、Maven のビルド プロセスに何か問題があるようです。今のところ問題なく動作しています。

于 2014-02-06T09:12:55.613 に答える