0

メディアタイプの EMR インスタンスを実行していたとき、ステップの 1 つで EMR インスタンスが終了したことがわかりました。AWS で 5 つのインスタンスにミディアム インスタンスを使用しました。容量は 3.75 GB RAM です。属性 mapred.child.java.opts のヒープ サイズを 3000 MB にしました。JobConf を conf.set("mapred.child.java.opts", "-Xmx3000m") のようなパラメーターとして使用して設定しました。Amazon EMR プログラムの実行には 3 つのステップがありました。最後のステップで、java.lang.Throwable: Child Error という問題が発生しました。仕事が失敗した理由は何でしょうか。また、子ノードのマッパーに必要な最適なヒープ サイズはどれくらいですか。

4

1 に答える 1

0

何か特別なことをしているのでない限り、3000M は大きすぎる数字です。マシンごとに Hadoop が実行しているマップ タスクの数を確認できますか? 複数実行している場合 - 3.75GB の RAM を簡単に吹き飛ばしてしまいます (一部はカーネル用に解放する必要があります)。

Hadoop as Service (Qubole) を提供しています。ここではデフォルトで (そして私の以前のギグでは) - デフォルトとして 1024M を使用します。io.sort.mb をそれよりかなり下 (400 ~ 500MB など) に設定する必要があります。ユーザーが何か特別なこと (大規模なマップ側の結合など) を行っている場合のみ - それを増やす理由があるでしょうか。増やす必要がある場合は、マシンごとの同時マップ タスクの最大数を減らす必要があります (複数の場合)。

于 2013-04-25T12:22:47.453 に答える