我已在 Amazon EMR 叢集開啟受管擴展或符合調整大小指標,但叢集仍未擴展。
解決方案
以下是即使已開啟受管擴展或符合調整指標大小,EMR 叢集仍可能無法擴展的常見原因:
未符合 Amazon CloudWatch 指標中針對擴展規模設定的閾值
自動擴展功能取決於 CloudWatch 指標。如果未達到相應的擴展或縮減的指標閾值,則不會進行擴展。
檢查 Amazon CloudWatch 中的 Amazon EMR 指標,以確認是否已填入擴展規則中設定的指標。例如,確認已根據擴展規則中的定義填入 ContainerPendingRatio、YARNMemoryAvailablePercentage 等指標。
以下是 Amazon EMR 指標在 CloudWatch 中未如預期填入的常見原因:
- 檔案 /etc/hadoop/conf/hadoop-metrics2.properties 不存在或已損壞。例如,檔案可能已被自訂引導操作覆寫。
- 與指標相關的組件 (例如 Hadoop、YARN 等) 可能存在問題。檢閱對應的應用程式日誌,以檢查是否有錯誤。
- 對於受管擴展,請在主節點上執行 sudo systemctl status MetricsCollector 命令,以確認 MetricsCollector 常駐程式是否正在執行。
您正在使用並非基於 YARN 的應用程式
並非基於 YARN 的 Presto 之類的應用程式使用基於 YARN 產生的指標的擴展方法。因此,即使 Presto 查詢使用率很高,叢集也不會擴展。如果您使用的應用程式並非基於 YARN,請使用手動擴展。例如,您可以將 Amazon EMR 調整大小 API 設定為使用自訂 Presto 指標。
核心或任務執行個體群組處於暫停或已停止狀態
調整大小或擴展時,處於暫停或已停止狀態的核心或任務執行個體群組會卡住。如需疑難排解步驟,請參閱暫停狀態。
重新設定會導致執行個體群組處於已停止狀態。如需詳細資訊,請參閱疑難排解執行個體群組重新設定。
EMR 中存在HDFS 應用程式問題,導致擴展核心節點時出現問題
如果下列情況成立,則最佳做法是保持核心節點固定:
- 您將資料儲存在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中,並且
- HDFS 利用率已降至最低。
請僅擴展任務節點以避免 HDFS 問題。
擴展核心節點所需時間比擴展任務節點更長。這是因為核心節點具有用於儲存 HDFS 資料的額外服務 (資料節點)。除役 HDFS 資料需要時間。如果您的使用案例需要核心節點擴展,且擴展功能卡住,則可能存在 HDFS 除役問題。請檢查下列項目,以疑難排解因 HDFS 除役而卡住的擴展:
- 檢查 HDFS 服務運作狀態 (名稱節點和資料節點)。
- 執行 hdfs dfsadmin -report 命令,確認是否有任何遺失、損毀或複製不足的區塊。
- 確認是否有任何核心節點因磁碟、記憶體或 CPU 問題而運作狀態不良。
- 確定 HDFS 複寫係數是否設定為更高的數字,如 3 或 2。如果複寫係數設定為 3 或 2,而您嘗試將核心節點縮減規模為 1,則擴展會卡住。這是因為必須維護最少複本。
請求的容量在 Amazon EMR 中不可用
如果 Amazon EMR 中無法使用請求的 Amazon Elastic Compute Cloud (Amazon EC2) 容量,則擴展會在逾時期間後失敗。如果擴展長時間卡住,而您在 AWS CloudTrail 事件中收到容量不足錯誤,請執行手動調整大小。就擴展卡住而言,2 到 3 個小時已經算是長時間。
相關資訊
搭配執行個體群組的自訂政策使用自動擴展
手動調整執行中叢集大小
在 Amazon EMR 中使用受管擴展
PrestoDB on Amazon EMR 的 9 大效能調校提示