本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在使用 Apache Livy 執行 Spark 應用程式之前,請確定您已完成設定適用於 Amazon EMR on EKS 的 Apache Livy 和適用於 Amazon EMR on EKS 的 Apache Livy 入門中的步驟。
您可以使用 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.8.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 筆記本中載入 Sparkmagic
%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.8.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
。