使用 Apache Livy for Amazon EMR on EKS 執行 Spark 應用程式 - Amazon EMR

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

使用 Apache Livy for Amazon EMR on EKS 執行 Spark 應用程式

在使用 Apache Livy 執行 Spark 應用程式之前,請確定您已完成設定 Amazon EMR on EKS 的 Apache Livy Apache Livy for Amazon EMR on EKS 入門中的步驟。

您可以使用 Apache Livy 來執行兩種類型的應用程式:

  • 批次工作階段 – 一種 Livy 工作負載,用於提交 Spark 批次任務。

  • 互動式工作階段 – 一種 Livy 工作負載類型,可提供程式設計和視覺化界面來執行 Spark 查詢。

注意

來自不同工作階段的驅動程式和執行器 Pod 可以彼此通訊。命名空間不保證 Pod 之間的任何安全性。Kubernetes 不允許對指定命名空間內的 Pod 子集進行選擇性許可。

執行批次工作階段

若要提交批次任務,請使用下列命令。

curl -s -k -H 'Content-Type: application/json' -X POST \ -d '{ "name": "my-session", "file": "entryPoint_location (S3 or local)", "args": ["argument1", "argument2", ...], "conf": { "spark.kubernetes.namespace": "<spark-namespace>", "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.7.0:latest", "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>" } }' <livy-endpoint>/batches

若要監控批次工作,請使用下列命令。

curl -s -k -H 'Content-Type: application/json' -X GET <livy-endpoint>/batches/my-session

執行互動式工作階段

若要使用 Apache Livy 執行互動式工作階段,請參閱下列步驟。

  1. 請確定您能夠存取自我託管或受管 Jupyter 筆記本,例如 SageMaker AI Jupyter 筆記本。您的 Jupyter 筆記本必須已安裝 Sparkmagic

  2. 建立 Spark 組態 的儲存貯體spark.kubernetes.file.upload.path。確定 Spark 服務帳戶具有對儲存貯體的讀取和寫入存取權。如需如何設定您的 Spark 服務帳戶的詳細資訊,請參閱使用服務帳戶 (IRSA) 的 IAM 角色設定存取許可

  3. 使用 命令在 Jupyter 筆記本中載入火花%load_ext sparkmagic.magics

  4. 執行 命令%manage_spark,使用 Jupyter 筆記本設定您的 Livy 端點。選擇新增端點索引標籤,選擇設定的身分驗證類型,將 Livy 端點新增至筆記本,然後選擇新增端點

  5. %manage_spark 再次執行 以建立 Spark 內容,然後前往建立工作階段。選擇 Livy 端點,指定唯一的工作階段名稱選擇語言,然後新增下列屬性。

    { "conf": { "spark.kubernetes.namespace": "livy-namespace", "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.7.0:latest", "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>", "spark.kubernetes.file.upload.path": "<URI_TO_S3_LOCATION_>" } }
  6. 提交應用程式並等待它建立 Spark 內容。

  7. 若要監控互動式工作階段的狀態,請執行下列命令。

    curl -s -k -H 'Content-Type: application/json' -X GET livy-endpoint/sessions/my-interactive-session

監控 Spark 應用程式

若要使用 Livy UI 監控 Spark 應用程式的進度,請使用連結 http://<livy-endpoint>/ui