0

MapReduce 構造は Hadoop でのプログラミングに必須ですか、それとも単純な JAR を実行することもできますか?

Java コードから HDFS のファイルにアクセスしようとしています。私は試した:

static{
    URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());    
}

in = new URL("hdfs://cluster-server:54310/home/hduser/sort/inputs").openStream();
IOUtils.copyBytes(in, System.out, 2, false);

しかし、Eclipse からこのコードを実行すると、エラーが発生します。

cluster-server/172.16.18.75:54310 への呼び出しがローカル例外で失敗しました: null

しかし、コマンド ライン インターフェースを介して、ファイルが Hadoop HDFS クラスターに存在することを確認できます。

私を助けてください。前もって感謝します。

4

3 に答える 3

2

Hadoop の現在のバージョンでは、MapReduce はパラダイムのみがサポートされています。次のバージョンでは libraray になり、並列処理の他のパラダイムがサポートされる予定です。
現在、hadoop コマンドを使用して任意の jar を実行できますが、ローカルでメインを実行するだけです。
はい、MapReduce に接続しなくても HDFS にアクセスできますが、一般的な Java IO ではなく、Hadoop クラスを介してアクセスする必要があります。

于 2012-04-17T06:08:50.950 に答える
0

HDFS のファイルにアクセスしたい場合は、Hadoop: The Definitive Guide の第 3 章から始めるとよいでしょう。URL を使用して入力ストリームを開くと、HDFS では機能しない場合があります。

于 2014-01-02T02:23:21.397 に答える
0

OPは、JavaプログラムからプログラムでHDFSにアクセスしたいだけだと思います。その場合は、次のリンクが非常に役立つことがわかりました

于 2013-05-23T19:41:31.600 に答える