檢視持續應用程式使用者介面 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢視持續應用程式使用者介面

從 Amazon 5.25.0 EMR 版開始,您可以使用叢集摘要頁面或主控台中的「應用程式使用者介面」索引標籤,連線到叢集外託管的永久 Spark 歷史記錄伺服器應用程式詳細資料。Tez UI 和YARN時間軸伺服器永久性應用程式界面從 Amazon 5.30.1 EMR 版開始提供。持續應用程式歷程記錄的一鍵式存取功能具有下列優點:

  • 您可以快速分析和疑難排解作用中的作業和作業歷史記錄,而無需透過SSH連線設定 Web Proxy。

  • 您可以存取作用中和已終止叢集的應用程式歷程記錄和相關日誌檔案。這些日誌會在應用程式結束後保留 30 天。

在主控台中導覽至叢集詳細資訊,然後選取應用程式索引標籤。叢集啟動後,選取您想要的應用程式使用者介面。應用程式使用者介面會在新的瀏覽器索引標籤中開啟。如需詳細資訊,請參閱監控和檢測

您可以通過 Spark 歷史記錄服務YARN器,YARN時間表服務器和 Tez UI 上的鏈接查看容器日誌。

注意

若要從 Spark 歷史記錄伺服YARN器、YARN時間軸伺服器和 Tez UI 存取容器日誌,您必須為叢集啟用 Amazon S3 的記錄功能。如果您未啟用記錄,則YARN容器記錄檔的連結將無法運作。

日誌收集

為了啟用對永久應用程式使用者界面的一鍵式存取,Amazon EMR 會收集兩種類型的日誌:

  • 應用程式事件記錄會收集到系EMR統值區中。事件日誌會使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 進行靜態加密。若是使用叢集的私有子網路,則您務必要在私有子網路的 Amazon S3 政策資源清單中加入 “arn:aws:s3:::prod.MyRegion.appinfo.src/*”。如需詳細資訊,請參閱私有子網路的 Amazon S3 政策下限

  • YARN容器日誌會收集到您擁有的 Amazon S3 儲存貯體中。您必須啟用叢集的記錄功能,才能存取YARN容器記錄。如需詳細資訊,請參閱設定叢集記錄和偵錯

如果基於隱私考量而需要停用此功能,您可以在建立叢集時使用引導指令碼來停止協助程式,如下列範例所示。

aws emr create-cluster --name "Stop Application UI Support" --release-label emr-7.2.0 \ --applications Name=Hadoop Name=Spark --ec2-attributes KeyName=<myEMRKeyPairName> \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=TASK,InstanceCount=1,InstanceType=m3.xlarge \ --use-default-roles --bootstrap-actions Path=s3://region.elasticmapreduce/bootstrap-actions/run-if,Args=["instance.isMaster=true","echo Stop Application UI | sudo tee /etc/apppusher/run-apppusher; sudo systemctl stop apppusher || exit 0"]

執行此啟動程序指令碼後,Amazon 不EMR會將任何 Spark 歷史記錄伺服器或YARN時間軸伺服器事件日誌收集到EMR系統值區中。Application user interfaces (應用程式使用者界面) 索引標籤不會顯示任何應用程式使用者界面資訊,而且您將無法從主控台存取所有應用程式使用者界面。

大型 Spark 事件日誌檔案

在某些情況下,長時間執行的 Spark 工作 (例如 Spark 串流) 和大型工作 (例如 Spark SQL 查詢) 可能會產生大型事件記錄。使用大型事件記錄檔,您可以快速使用運算執行個體上的磁碟空間,並在載入持續性時遇到OutOfMemory錯誤UIs。為避免這些問題,建議您開啟 Spark 事件日誌滾動和壓縮功能。此功能適用於 Amazon EMR 版本 emr-6.1.0 及更高版本。如需有關滾動和壓縮的詳細資訊,請參閱 Spark 文件中的對滾動事件日誌檔案套用壓縮

若要啟動 Spark 事件日誌滾動和壓縮功能,請開啟下列 Spark 組態設定。

  • spark.eventLog.rolling.enabled - 根據大小開啟事件日誌滾動。此設定預設為停用狀態。

  • spark.eventLog.rolling.maxFileSize - 啟動滾動時,請指定事件日誌檔案的大小上限,然後再滾動。預設為 128 MB。

  • spark.history.fs.eventLog.rolling.maxFilesToRetain - 指定要保留的非壓縮事件日誌檔案的數目上限。依預設,會保留所有事件日誌檔案。設定為較低的數字以壓縮較舊的事件日誌。最小值為 1。

請注意,壓縮會嘗試排除具有過期事件日誌檔案的事件,如下所示。如果它確實丟棄了事件,您將不能在 Spark 歷史記錄伺服器 UI 上看到它們。

  • 已完成的作業之事件和相關階段或作業事件。

  • 已終止的執行程式的事件。

  • 已完成SQL查詢的事件,以及相關工作、階段和工作事件。

在啟用滾動和壓縮功能的情況下啟動叢集
  1. 使用以下組態建立 spark-configuration.json 檔案。

    [ { "Classification": "spark-defaults", "Properties": { "spark.eventLog.rolling.enabled": true, "spark.history.fs.eventLog.rolling.maxFilesToRetain": 1 } } ]
  2. 使用 Spark 滾動壓縮組態建立您的叢集,如下所示。

    aws emr create-cluster \ --release-label emr-6.6.0 \ --instance-type m4.large \ --instance-count 2 \ --use-default-roles \ --configurations file://spark-configuration.json

考量與限制

持續應用程式使用者介面的一鍵式存取功能具有下列限制。

  • 當應用程式詳細資訊顯示在 Spark 歷史記錄伺服器 UI 上時,至少會有兩分鐘的延遲。

  • 只有當應用程式的事件記錄檔目錄位於中時,此功能才有作用HDFS。根據預設,Amazon 會將事件日誌EMR存放在的目錄中HDFS。如果將預設目錄變更為不同的檔案系統 (例如 Amazon S3),此功能將無法使用。

  • 此功能目前不適用於具有多個主節點的EMR叢集或與之整合的EMR叢集 AWS Lake Formation。

  • 若要啟用對永久性應用程式使用者界面的一鍵式存取,您必須擁有 Amazon DescribeCluster 動作的權限EMR。如果您拒絕IAM主參與者對此動作的權限,則需要大約五分鐘的時間來傳播權限變更。

  • 如果您在正在執行的叢集中重新設定應用程式,將無法透過應用程式 UI 取得應用程式歷程記錄。

  • 每 AWS 帳戶個作用中應用程式的預設限制UIs為 200。

  • 在以下內容中 AWS 區域,您可以使用 Amazon EMR 6.14.0 及更高版本UIs從主控台存取應用程式:

    • 亞太區域 (雅加達) (ap-southeast-3)

    • 歐洲 (西班牙) (eu-south-2)

    • 亞太區域 (墨爾本) (ap-southeast-4)

    • 以色列 (特拉維夫) (il-central-1)

    • 中東 (UAE) (me-central-1)

  • 在以下內容中 AWS 區域,您可以使用 Amazon EMR 5.25.0 及更高版本UIs從主控台存取應用程式:

    • 美國東部 (維吉尼亞北部) (us-east-1)

    • 美國西部 (奧勒岡) (us-west-2)

    • 亞太區域 (孟買) (ap-south-1)

    • 亞太區域 (首爾) (ap-northeast-2)

    • 亞太區域 (新加坡) (ap-southeast-1)

    • 亞太區域 (雪梨) (ap-southeast-2)

    • 亞太區域 (東京) (ap-northeast-1)

    • 加拿大 (中部) (ca-central-1)

    • 南美洲 (聖保羅) (sa-east-1)

    • 歐洲 (法蘭克福) (eu-central-1)

    • 歐洲 (愛爾蘭) (eu-west-1)

    • 歐洲 (倫敦) (eu-west-2)

    • 歐洲 (巴黎) (eu-west-3)

    • 歐洲 (斯德哥爾摩) (eu-north-1)

    • 中國 (北京) (cn-north-1)

    • 中國 (寧夏) (cn-northwest-1)