本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 執行互動式工作階段,請參閱下列步驟。
-
請確定您能夠存取自我託管或受管 Jupyter 筆記本,例如 SageMaker AI Jupyter 筆記本。您的 Jupyter 筆記本必須已安裝 Sparkmagic
。 -
建立 Spark 組態 的儲存貯體
spark.kubernetes.file.upload.path
。確定 Spark 服務帳戶具有對儲存貯體的讀取和寫入存取權。如需如何設定您的 Spark 服務帳戶的詳細資訊,請參閱使用服務帳戶 (IRSA) 的 IAM 角色設定存取許可 -
使用 命令在 Jupyter 筆記本中載入火花
%load_ext sparkmagic.magics
。 -
執行 命令
%manage_spark
,使用 Jupyter 筆記本設定您的 Livy 端點。選擇新增端點索引標籤,選擇設定的身分驗證類型,將 Livy 端點新增至筆記本,然後選擇新增端點。 -
%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_>
" } } -
提交應用程式並等待它建立 Spark 內容。
-
若要監控互動式工作階段的狀態,請執行下列命令。
curl -s -k -H 'Content-Type: application/json' -X GET
livy-endpoint
/sessions/my-interactive-session
監控 Spark 應用程式
若要使用 Livy UI 監控 Spark 應用程式的進度,請使用連結 http://<livy-endpoint>/ui
。