我想修改 Amazon EMR Studio 工作區中的 Spark 組態。
簡短說明
若要為 Amazon Elastic Compute Cloud (Amazon EC2) 或 EMR Serverless 遠端叢集自訂 Spark 組態,請使用 Sparkmagic 命令變更 executorMemory、executorCores 和資源配置。
對於 Amazon Elastic Kubernetes Service (Amazon EKS) 遠端叢集,請在 SparkContext 物件中設定 Spark 組態。Amazon EKS 不支援 Sparkmagic 命令。如需更多資訊,請參閱考量事項與限制。
解決方法
為 Amazon EC2 或 EMR Serverless 遠端叢集自訂 Spark 組態
請完成以下步驟:
-
若要修改作業組態,請在工作區儲存格中執行 %%configure 命令。
範例:
%%configure -f
{"executorMemory":"4G"}
注意: 在前述範例中,已針對 Spark 作業修改 executorMemory。
-
對於您使用 -conf 選項傳遞的其他組態,請使用巢狀 JSON 物件。
注意: 若要將物件傳遞給 SparkContext 或 Sparksession,請使用 -conf,而不是 conf。如需更多資訊,請參閱 Apache Livy 網站上的 Spark 組態。
-
範例:
%%configure -f
{
"driverMemory": "4G",
"driverCores": 4,
"executorMemory" : "8G",
"executorCores": 2,
"conf": {
"spark.dynamicAllocation.maxExecutors" : 10,
"spark.dynamicAllocation.minExecutors": 1
}
}
若要在連結至 Amazon EKS 叢集的工作區中自訂 Spark 組態,請在 SparkContext 物件中設定 Spark 組態:
spark.conf.set("spark.executor.memory", "8g")
確認 Spark 組態
請採取以下動作:
-
對於 Amazon EC2 和 EMR Serverless,請在用戶端工作區上執行 %%info 命令:
輸出範例:
Current session configs: {'driverMemory': '4G', 'driverCores': 4, 'executorMemory': '8G', 'executorCores': 2, 'conf': {'spark.dynamicAllocation.maxExecutors': 10, 'spark.dynamicAllocation.minExecutors': 1}, 'proxyUser': 'assumed-role_Admin_biditdas-Isengard', 'kind': 'pyspark'}
-
對於 Amazon EC2,請查看叢集主要節點中位於 /var/log/livy/livy-livy-server.out 的日誌。如果 Spark 工作階段已啟動,您會看到類似以下內容的日誌項目:
20/06/24 10:11:22 INFO InteractiveSession$: Creating Interactive session 2: [owner: null, request: [kind: pyspark, proxyUser: None, executorMemory: 4G, conf: spark.dynamicAllocation.enabled -> false, heartbeatTimeoutInSecond: 0]]
-
對於 Amazon EKS,請使用 Spark UI。
相關資訊
具備 magic 命令的增強型核心
Apache Livy 網站上的 REST API
GitHub 網站上新核心提供的功能