1

HDFS の代わりにローカル (光沢のある) ファイルシステムをストレージに使用するように設定されたクラスター上に存在する Hadoop で処理しようとしている 2 TB のシーケンス ファイルがあります。私の問題は、何をしようとしても、このデータを入力として map/reduce ジョブを実行すると、常に約 66000 のマップ タスクが必要になることです。これは 2TB/66000 =~ 32MB のブロック サイズに相当するようです。各マップ タスクでの実際の計算は非常に高速に実行されますが、非常に多くのマップ タスクに関連するオーバーヘッドにより処理速度が大幅に低下します。

データを作成したジョブと後続のすべてのジョブについて、dfs.block.size=536870912 と fs.local.block.size=536870912 (512MB) があります。これを試すように言った提案も見つけました:

hadoop fs -D fs.local.block.size=536870912 -put local_name remote_location

大きなブロックで新しいコピーを作成しましたが、役に立ちませんでした。また、光沢のあるファイルのストライプ サイズも変更しました。ブロック サイズに関係するパラメータは、ローカル ファイル システムでは無視されるようです。

HDFS の代わりに光沢を使用することは Hadoop の非伝統的な使用法であることは知っていますが、これは私が取り組まなければならないことです。他の人がこれについての経験を持っているか、私が言及した以外に試してみるアイデアがあるかどうか疑問に思っています.

便利な場合は cdh3u5 を使用しています。

4

0 に答える 0