私はYARNクラスタと数十のノードをクラスタに持っています。私のプログラムは地図だけの仕事です。 Avro入力のサイズは数百万行で非常に小さくなりますが、1行を処理するには大量のCPUが必要です。私が観察していることは、多くのマップタスクが単一のノードで実行されているのに対し、他のノードは参加していないということです。そのため、一部のノードが非常に遅くなり、全体のHDFSパフォーマンスに影響します。私はこの動作がHadoopのデータローカリティのためだと考えています。Hadoop MapReduceジョブのデータローカリティをオフにする
私はそれをオフにすることが可能かどうか、またはYARNにマップタスクをクラスタ全体に均一に分散させる別の方法があるかどうか不思議ですか?
ありがとうございます!
yarn.scheduler.capacity.node-locality-delay
:あなたは簡単に、この地域を緩和する簡単な方法のようです(確かに、すべてのデータは、1ノードを右?!にありません)クラスタ全体でより均一にデータを再配布することができないと仮定すると、
FairSchedulerを使用している場合は、これも関連する可能性があります:http://tech-blog.flipkart.net/2015/05/is-data-locality-always-out-of-the-box-in-hadoop-本当にない/ –
ありがとう、私はそれをチェックアウトします。実際にはデータサイズは合計20MBなので、同じノードに配置されている可能性が高く、他のノードの2つのレプリカに配置されている可能性が最も高いです。最近公平スケジューラを使い始めました。リンクにも感謝しています! – Vyacheslav
@Vyacheslav:20 MBはHadoopで処理するには小さすぎます。 – Marco99