Amazon EMR クラスターエラー: Deny-listed nodes
NodeManager デーモンは、コアとタスクノードでコンテナの起動や管理を行います。マスターノードで実行する ResourceManager デーモンが NodeManager デーモンにコンテナを割り当てます。ResourceManager はハートビートを利用して NodeManager ノードを監視します。
ResourceManager デーモンが NodeManager を拒否リストに登録して、タスク処理に利用できるノードのプールから削除する状況は、次のようにいくつかあります。
-
NodeManager が過去 10 分間 (600,000 ミリ秒間) ResourceManager デーモンにハートビートを送信していません。この時間は
yarn.nm.liveness-monitor.expiry-interval-ms
設定で設定できます。Yarn 設定の変更の詳細については「Amazon EMR リリースガイド」の「アプリケーションの設定」を参照してください。 -
NodeManager は
yarn.nodemanager.local-dirs
とyarn.nodemanager.log-dirs
が決定するディスクの正常性をチェックします。このチェックにはアクセス権限と空きディスク容量 (< 90%) が含まれます。ディスクのチェックで障害が発生した場合、NodeManager はその特定のディスクの使用を停止しますが、ノードのステータスは正常であるとレポートされます。いくつものディスクのチェックで障害が発生すると、ResourceManager にノードに異常性があるとレポートされます。その場合、新しいコンテナはノードに割り当てられません。
アプリケーションマスターも、NodeManager ノードの失敗したタスクが 3 つを超える場合に、ノードを拒否リストに登録する可能性があります。mapreduce.job.maxtaskfailures.per.tracker
設定パラメータを利用し、この値を増やすことができます。他には、タスクを失敗と判定するまでに試行する回数を制御する設定を変更できます。マップタスクの場合は mapreduce.map.max.attempts
を、リデュースタスクの場合は mapreduce.reduce.maxattempts
を変更します。設定の変更の詳細については「Amazon EMR リリースガイド」の「アプリケーションの設定」を参照してください。