スキップしてコンテンツを表示

Amazon EMR クラスターが "application provisioning failed" というエラーで終了する理由を知りたいです。

所要時間3分
0

Amazon EMR クラスターが"application provisioning failed" というエラーで終了します

解決策

Amazon EMR が Amazon EMR クラスターを起動したときに、指定されたソフトウェアをインストール、設定、または起動できない場合、"application provisioning failed" というエラーが表示されることがあります。

Amazon EMR プロビジョニングログを確認する

Amazon EMR は、クラスターの起動時に指定した Amazon Simple Storage Service (Amazon S3) バケットにプロビジョニングログを保存します。

次の手順を実行します。

  1. Amazon EMR コンソールを開きます。
  2. ナビゲーションペインで [クラスター] を選択します。次に、障害が発生した Amazon EMR クラスターを選択して、クラスターの詳細を確認します。
  3. [概要] セクションで、[エラーで終了しました] を選択し、エラーメッセージに含まれるプライマリノード ID を書き留めます。
  4. [クラスターログ] セクションで、Amazon S3 ロケーションの URL を選択します。
  5. 次のパスに従って UUID フォルダに移動します:
    node/example-primary-node-ID/provision-node/apps-phase/0/example-UUID/
    注: example-primary-node-ID は実際のプライマリノード ID に置き換えてください。example-UUID は UUID に置き換えてください。
  6. 表示されたリストで puppet.log.gz を選択し、[開く] を選択すると、新しいブラウザタブにプロビジョニングが表示されます。

プロビジョニングログの障害の原因を特定する

サポートされていない構成パラメータはエラーの原因となる可能性があります。ホスト名の誤り、パスワードの誤り、または一般的なオペレーティングシステムの問題も、エラーの原因となります。"error"、"err"、"fail" などの関連キーワードのログを検索します。

Amazon RDS インスタンスを使用して外部メタストアに接続するときの問題

Apache Hive、Hue、Apache Oozie などの一部の Amazon EMR アプリケーションでは、Amazon Relational Database Service (Amazon RDS) などの外部データベースにデータを保存するように設定できます。外部データベースとの接続の問題が発生すると、エラーメッセージが表示されます。

Hive からのエラーメッセージの例:

2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): Underlying cause: java.sql.SQLNonTransientConnectionException : Could not connect to address=(host=hostname)(port=3306)(type=master) : Socket fail to connect to host:hostname, port:3306. hostname
2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): SQL Error code: -1

このエラーを解決するには、次の手順を実行します。

  • Amazon RDS インスタンスのホスト名、ユーザー、パスワード、およびデータベースが正しいことを確認します。
  • Amazon RDS インスタンスのセキュリティグループのインバウンドルールが Amazon EMR プライマリノードセキュリティグループからの接続を許可していることを確認します。

外部 KDC に接続するときの問題

Amazon EMR では、外部 KDC を設定してセキュリティをさらに強化できます。また、Active Directory サーバーとの信頼関係を構築することもできます。KDC への問い合わせ時またはドメインへの参加時に問題が発生した場合、エラーメッセージが表示されます。

Puppet からのエラーメッセージの例:

2022-11-26 03:02:01 +0000 Puppet (err): 'echo "${AD_DOMAIN_JOIN_PASSWORD}" | realm join -v -U "${AD_DOMAIN_JOIN_USER}"@"${CROSS_REALM_TRUST_REALM}" "${CROSS_REALM_TRUST_DOMAIN}"' returned 1 instead of one of [0]
2022-11-26 03:02:01 +0000 /Stage[main]/Kerberos::Ad_joiner/Exec[realm_join]/returns (err): change from 'notrun' to ['0'] failed: 'echo "${AD_DOMAIN_JOIN_PASSWORD}" | realm join -v -U "${AD_DOMAIN_JOIN_USER}"@"${CROSS_REALM_TRUST_REALM}" "${CROSS_REALM_TRUST_DOMAIN}"' returned 1 instead of one of [0]

このエラーを解決するには、次の手順を実行します。

  • Kerberos 領域のスペルが正しいかどうかを確認します。
  • KDC 管理パスワードを正しく入力したかどうかを確認します。
  • Active Directory 参加ユーザーとパスワードのスペルが正しいかどうかを確認します。
  • Active Directory に参加ユーザーが含まれ、そのユーザーが正しい権限を持っていることを確認します。
  • Amazon Elastic Compute Cloud (Amazon EC2) でホストされている KDC と Active Directory については、KDC と Active Directory セキュリティグループのインバウンドルールで Amazon EMR プライマリノードセキュリティグループからの接続が許可されていることを確認します。
  • Amazon EC2 の外部でホストされている KDC と Active Directory については、KDC と Active Directory が Amazon EMR クラスター仮想プライベートクラウド (VPC) とサブネットからの接続を許可していることを確認します。

YARN ResourceManager、Hadoop NameNode、Spark 履歴サーバーなどのサービスを起動する際の問題

Amazon EMR では、Amazon EMR クラスターを起動するときに、すべてのアプリケーションのカスタム設定を作成できます。ただし、これらの構成により、開始プロセスからサービスがブロックされることがあります。ある問題が原因でサービスを開始できない場合、エラーメッセージが表示されます。

Apache Spark 履歴サーバーからのエラーメッセージの例:

2022-11-26 03:34:13 +0000 Puppet (err): Systemd start for spark-history-server failed!journalctl log for spark-history-server:
-- Logs begin at Sat 2022-11-26 03:27:57 UTC, end at Sat 2022-11-26 03:34:13 UTC. --
Nov 26 03:34:10 ip-192-168-1-32 systemd[1]: Starting Spark history-server...
Nov 26 03:34:10 ip-192-168-1-32 spark-history-server[1076]: Starting Spark history-server (spark-history-server):[OK]
Nov 26 03:34:10 ip-192-168-1-32 su[1112]: (to spark) root on none
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: spark-history-server.service: control process exited, code=exited status=1
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: Failed to start Spark history-server.
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: Unit spark-history-server.service entered failed state.  
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: spark-history-server.service failed.
2022-11-26 03:34:13 +0000 /Stage[main]/Spark::History_server/Service[spark-history-server]/ensure (err): change from 'stopped' to 'running' failed: Systemd start for spark-history-server failed!
journalctl log for spark-history-server:

このエラーを解決するには、次の手順を実行します。

  • どのサービスが起動に失敗したかを確認します。
  • 構成設定にスペルミスがないか確認します。
  • 指定された場所の Amazon S3 ログをチェックして、障害の原因を見つけてください。例: s3://example-log-location/example-cluster-ID/node/example-primary-node-ID/applications/example-failed-application/example-failed-service.gz

アプリケーションをダウンロードまたはインストールするときの問題

Amazon EMR がアプリケーションをインストールまたはダウンロードできない場合、Amazon EMR クラスターは失敗し、プロビジョニングログは完了しません。stderr.gz ログを確認して、エラーの原因を特定してください。
エラーメッセージの例:

stderr.gzError Summary
-------------
Disk Requirements:
  At least 2176MB more space needed on the / filesystem.

2022-11-26 03:18:44,662 ERROR Program: Encountered a problem while provisioning
java.lang.RuntimeException: Amazon-linux-extras topics enabling or yum packages installation failed.

この種のエラーを解決するには、Amazon EMR クラスターを起動するときに Amazon Elastic Block Store (Amazon EBS) のルートボリュームを増やしてください。

Amazon S3 のログが利用できない

Amazon EMR がアプリケーションのプロビジョニングに失敗し、Amazon S3 でログが生成されない場合、エラーメッセージが表示されます。ネットワークエラーが原因で Amazon S3 のログ記録が失敗した可能性があります。

このエラーを解決するには、次の手順を実行します。

関連情報

EMR クラスターのプロビジョニングが失敗した

AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ