2012-04-17 8 views
0

MapReduce構造体はHadoopでプログラムする必要がありますか、単純なJARの任意の型も実行できますか?MapReduceを使用せずにJavaでHadoopファイルにアクセスできますか?

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からこのコードを実行すると、エラーになり:私が試した

Call to cluster-server/172.16.18.75:54310 failed on local exception: null

しかし、私はファイルは、コマンドラインインターフェイスを介してのHadoop HDFSクラスタ内に存在していることがわかります。

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

+0

なぜHadoopでJarを実行したいのですか? –

答えて

2

現在のバージョンのHadoop - MapReduceは、パラダイムのみがサポートされています。次のバージョンでは、それはライブラリーになり、並列処理の他のパラダイムがサポートされます。
今日、hadoopコマンドで任意のjarを実行することができますが、単にローカルをあなたのローカルで実行するだけです。
はい、MapReduceに接続せずにHDFSにアクセスできますが、一般的なJava IOではなく、Hadoopクラスを介して行う必要があります。

0

あなたがHDFS内のファイルにアクセスしたい場合は、Hadoopのの章3:Definitive Guideのは良いスタートです。 URLを使用して入力ストリームを開くと、HDFSで機能しないことがあります。

+0

提案: "in!= null"を指定して、HDFSを使用するときにURLを使用して入力ストリームを開くことができることを確認することができます。 –

関連する問題