2017-04-26 8 views
1

hadoopシステム内のノードで8GBのメモリが利用可能であるとします。Hadoop MapReduceのマップ数とタスク数を理解する

タスクトラッカーノードとデータノードが2GBを消費し、各タスクに必要なメモリが200MBの場合、いくつのマップとリダクションを開始できますか?

8-2 = 6ギガバイト

ので、6144メガバイト/ 200メガバイト= 30.72

ので、合計30マップと軽減タスクが開始されます。

私は何かが欠けているのですか?

答えて

1

マッパーとレデューサーの数は、利用可能なリソースによって決まりません。 setNumReduceTasks()を呼び出すことによって、コード内の減速機の数を設定する必要があります。

マッパーの数は、Hadoopによって設定されるため、より複雑です。デフォルトでは、入力分割あたり約1つのマップタスクがあります。デフォルトのブロックサイズ、レコードリーダー、入力ファイルの数を変更することで、それを微調整することができます。

また、マップタスクの最大数を設定し、同時に実行されるタスクと各タスクに割り当てられたメモリを減らす必要があります。これらの最後の2つの設定は、利用可能なリソースに基づいた設定です。 CPUのマップとタスクの削減は、使用可能なコアの数によって事実上制限されます(1つのコアは同時に2つのタスクを実行できません)。

This guide詳細をお聞かせください。

+0

ありがとうございます!しかし、上記の量のリソースがあれば、与えられたリソースで実行できるマップの最大数とタスクを減らすことができますか? – user5155835

+0

@ user5155835私は、プログラムでそれを見つける簡単な方法はないと思います。あなたの考えはほぼ正しいですが、利用可能なコアの数も考慮する必要があります。 – vefthym

+0

プログラム的ではありませんが、理論的には、特定のリソースを使用していますか? – user5155835

関連する問題