AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
為什麼我的 Amazon EMR 叢集在「應用程式佈建失敗」錯誤的情況下終止?
我的 Amazon EMR 叢集在「應用程式佈建失敗」錯誤的情況下終止。這個錯誤是什麼意思,我要如何修正此錯誤?
解決方案
當 Amazon EMR 啟動 EMR 叢集時無法安裝、設定或啟動指定的軟體時,您會看到「應用程式佈建失敗」錯誤。以下各節會向您展示如何尋找和檢閱佈建日誌。各節也會向您展示不同類型的錯誤和可以採取的步驟,以解決這些錯誤。
檢閱儲存在 Amazon S3 中的 Amazon EMR 佈建日誌
Amazon EMR 佈建日誌儲存在叢集啟動時指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體中。日誌的儲存位置使用以下 Amazon S3 URI 語法:
s3://example-log-location/example-cluster-ID/node/example-primary-node-ID/provision-node/apps-phase/0/example-UUID/puppet.log.gz
**備註:**將 example-log-location、example-cluster-ID、example-primary-node-ID 和 example-UUID 替換為您系統的命名。
- 開啟 Amazon EMR 主控台。在導覽窗格中,選擇叢集。然後,選擇失敗的 EMR 叢集以查看叢集詳細資料。
- 在摘要區段中,選擇「因錯誤而終止」,並記下錯誤訊息中包含的主節點 ID。
- 在叢集日誌區段中,選擇要重新導向至 Amazon S3 主控台中叢集日誌的 Amazon S3 位置 URL。
- 按照以下路徑來導覽至您的 UUID 資料夾:node/example-primary-node-ID/provision-node/apps-phase/0/example-UUID/。
**備註:**將 example-primary-node-ID 和 example-UUID 替換為您系統的命名。 - 在產生的清單中,選取 puppet.log.gz 並選擇開啟以在新的瀏覽器標籤上查看佈建。
識別佈建日誌時失敗的原因
不支援的組態參數會導致錯誤。錯誤也可能是由錯誤的主機名稱,不正確的密碼或一般作業系統問題所造成。搜尋日誌中的相關關鍵字,包含「錯誤」或「失敗」。
以下是常見錯誤類型的清單:
- 使用 Amazon Relational Database Service (Amazon RDS) 執行個體連線至外部中繼存放區時發生問題。
- 連線至外部金鑰發佈中心 (KDC) 時發生問題。
- 啟動服務時發生問題,例如 YARN ResourceManager 和 Hadoop NameNode。
- 下載或安裝應用程式時發生問題。
- S3 日誌無法使用。
使用 Amazon RDS 執行個體連線至外部中繼存放區時發生問題
部分 Amazon EMR 應用程式 (例如 Hive、Hue 或 Oozie) 可以設定為將資料儲存在外部資料庫中,例如 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
若要解決此類型的錯誤:
- 確認 RDS 執行個體主機名稱、使用者、密碼和資料庫是否正確。
- 確認 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 加入使用者存在於 Active Directory 中,且具有正確的權限。
- 確認 KDC 和 Active Directory 伺服器位於 Amazon EC2 上。然後,確認 KDC 和 Active Directory 安全群組輸入規則允許來自 Amazon EMR 主節點安全群組的連線。
- 確認 KDC 和 Active Directory 不在 Amazon EC2 上。然後,確認 KDC 和 Active Directory 允許來自 EMR 叢集虛擬私有雲端 (VPC) 和子網路的連線。
啟動服務時發生問題,例如 YARN ResourceManager、Hadoop NameNode 或 Spark History Server
Amazon EMR 允許在 EMR 叢集啟動時對所有應用程式執行自訂組態。但是,有時這些組態會防止服務啟動。當防止服務啟動時發生問題,就會顯示訊息。
以下是來自 Spark History Server 的範例錯誤訊息:
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:
若要解決此類型的錯誤:
- 確認無法啟動的服務。檢查提供的組態是否拼寫正確。
- 導覽到以下路徑以查看 S3 日誌來調查失敗原因:s3://example-log-location/example-cluster-ID/node/example-primary-node-ID/applications/example-failed-application/example-failed-service.gz。
**備註:**將 example-log-location、example-cluster-ID、example-primary-node-ID、example-failed-application 和 example-failed-service 替換為您系統的命名。
下載或安裝應用程式時發生問題
Amazon EMR 可以安裝許多應用程式。但是,有時當應用程式無法下載或安裝時會發生問題。這可能會導致 EMR 叢集失敗。發生此失敗時,佈建日誌不會完成。您必須改為檢閱 stderr.gz 日誌,才能找出由 yum 安裝失敗所造成的類似訊息。
以下是來自 stderr.gz 的範例錯誤訊息:
stderr.gz Error 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.
若要解決此類型的錯誤,請在 EMR 叢集啟動期間增加 Amazon Elastic Block Store (Amazon EBS) 根磁碟區。
S3 日誌無法使用
Amazon EMR 無法佈建應用程式,而且 Amazon S3 中沒有產生任何日誌。在這個案例中,很可能是網路錯誤導致 S3 記錄失敗。
若要解決此類型的錯誤:
- 確認在 EMR 叢集啟動期間已開啟記錄選項。如需詳細資訊,請參閱設定叢集記錄和偵錯。
- 使用自訂 AMI 時,請確認沒有防火牆規則會影響所需的 Amazon EMR 網路設定。如需詳細資訊,請參閱使用 Amazon EMR 管理的安全群組。
- 使用自訂 AMI 時,請檢查是否有任何失敗的主節點。開啟 Amazon EMR 主控台,然後在導覽窗格中選擇硬體以判斷叢集是否無法啟動任何主節點。
- 使用自訂 AMI 時,請確認您遵循最佳實務。如需詳細資訊,請參閱使用自訂 AMI。
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 2 年前