0

hdfs から 1 GB のファイルを取得するには、クラスターの各ノードが必要です。FileSystem の copyToLocalFile メソッドを使用します。ただし、ファイル全体 (1GB) ではなく、各ノードが約 50MB のファイルを取得してから、コードが続行されます。その結果、私の仕事は失敗します。これはなぜですか?ファイル全体がローカル fs にコピーされるまで「待機」する方法はありますか?

編集: 私のマッパー クラスは、ファイルがノードのローカル fs に存在するかどうかを確認し、存在しない場合はそれを取得します。これは setup() 関数で行われます。

4

1 に答える 1

0

最後の編集から:

編集: 私のマッパー クラスは、ファイルがノードのローカル fs に存在するかどうかを確認し、存在しない場合はそれを取得します。これは setup() 関数で行われます。

あなたが説明しているのは、まさに DistributedCache が設計されたものです.map / reduceタスクがそのノードで実行される前に、ファイルが各タスクトラッカーに確実にコピーされるようにします.

于 2013-02-12T01:01:38.187 に答える