2016-08-18 1 views
0

したがって、AWS R3.4xLargeマシンでいくつかのhadoopジョブを実行しようとしています。彼らは16のvcoresと利用可能なRAMの122ギガバイトを持っています。hadoopは、より多くのノードが使用されたときに十分なコンテナを作成しません。

私のマッパーのそれ​​ぞれは、約8ギガのRAMと1つのスレッドを必要とするので、これらのマシンは仕事に非常に近いです。

Iは 、8192に設定され、これは、各マシン上で実行されている(12練習近いで)約14マッパをもたらすはずである-Xmx6144 に設定mapreduce.map.java.opts mapreduce.memory.mbました。

これは実際に、スケジューラがクラスタの90%の使用率を示す2スレーブ設定の場合です。

しかし、例えば4つのスレーブにスケーリングすると、hadoopは単により多くのマッパーを作成しないようです。実際にはそれはLESSを作成します。

私の2つのスレーブ設定では、私は約20以下の4つのスレーブ上で、一度に30のマッパーしか稼働しませんでした。マシンはわずか50%の稼働率で座っていました。

vcoresが存在し、物理メモリがあります。何が欠けているのですか?なぜハーフープはコンテナを作成しないのですか?

答えて

0

だから、これは理解していないハーフトップのことの1つです。

yarn-nodemanager.heartbeat.interval-msという糸デフォルトの設定があります。 これは1000に設定されています。明らかに、コンテナを割り当てる間隔の最小値をミリ秒単位で制御します。

これは、毎秒1つの新しいマップタスクしか作成しないことを意味します。つまり、コンテナの数は、実行しているコンテナの数によって決まります。コンテナの処理にかかる時間です。

この値を50に設定すると、より良い結果を得ることができました。この値を1にすると、ハープループクラスターから期待されるスケーリングが得られました。正直なところ、より良く文書化されるべきです。

関連する問題