Amazon EMR クラスターが起動に失敗し、「bootstrap action returned a non-zero return code」(ブートストラップアクションがゼロ以外のリターンコードを返しました) というエラーが表示される
最終更新日: 2020 年 10 月 7 日
Amazon EMR クラスター用にカスタムブートストラップアクションを作成しました。クラスターが起動に失敗し、ブーストラップアクションが「bootstrap action 1 returned a non-zero return code」(ブートストラップアクション 1 がゼロ以外のリターンコードを返しました) のようなエラーを返します。
簡単な説明
ブートストラップアクションは、Amazon EMR がクラスターで Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをプロビジョニングした後で実行されます。ブートストラップアクションが失敗すると、Amazon EMR はインスタンスを終了します。詳細については、クラスターライフサイクルについてを参照してください。
ブートストラップスクリプトのエラーが原因でブートストラップアクションが失敗する場合、クラスターは起動することができません。詳細については、ブートストラップアクションの基本を参照してください。
解決方法
ブートストラップアクションが失敗した理由を判断するには、ブートストラップアクションの stderr ログを確認します。これらのログは、以下のような Amazon Simple Storage Service (Amazon S3) パスにあります。
s3://doc-example-bucket/cluster-id/node/instance-id/bootstrap-actions/
stderr ログを確認してもスクリプトが失敗した原因がわからない場合は、追加のデバッグ情報を提供するようにスクリプトを変更してください。例えば、bash スクリプトで -ex パラメータを設定します。これにより、ブーストラップアクションログファイルで bash スクリプトのフローを表示することができます。
注意: 失敗したブートストラップアクションが、作成したブートストラップアクションではない場合 (たとえば、6 つのブートストラップアクションを作成し、「bootstrap action 7 failed with non-zero exit code」(ブートストラップアクション 7 がゼロ以外の終了コードで失敗しました) というエラーメッセージの場合)、Amazon EMR がアプリケーションをインストールできなかったか、またはサービスを開始できなかったことが示唆されています。この問題が生じるのはまれです。この問題を解決するには、クラスターを再度起動してみてください。