Amazon EMR でモニタリングスクリプトを実行するときに、「レート超過」ThrottlingException エラーを防止するにはどうすればよいですか?
最終更新日: 2020 年 10 月 7 日
Amazon EMR クラスターをモニタリングするために、API 呼び出しを行うスクリプトを実行しています。スクリプトは次のようなエラーを返します。
「レート超過 (サービス: AmazonElasticMapReduce; ステータスコード: 400; エラーコード: ThrottlingException; リクエスト ID: e2b6191c-gkl5-269r-u735-cryyz251a837)」
簡単な説明
Amazon EMR はシステムの安定性を保つために、API 呼び出しをスロットリングします。調整の例外は、通常、監視スクリプトを定期的に実行して、クラスターでパラメータをチェックする場合に発生します。例を次に示します。60 秒ごとに DescribeCluster を呼び出して、クラスターが WAITING 状態に達したかどうかを確認します。手持ちのクラスターの数と実行するモニタリングスクリプトの数が増えれば増えるほど、スロットリングエラーが生じる頻度も増大します。
解決方法
スロットリングエラーを回避するには:
- API 呼び出しの頻度を減らす。
- API 呼び出しの間隔をずらし、すべてが同時に実行されないようにする。
- API 呼び出しを行うときに、エクスポネンシャルバックオフを実装する。