跳至內容

如何修改 Amazon EMR Studio 工作區中的 Spark 組態?

2 分的閱讀內容
0

我想修改 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 組態

請完成以下步驟:

  1. 若要修改作業組態,請在工作區儲存格中執行 %%configure 命令。

    範例:

    %%configure -f
    {"executorMemory":"4G"}

    注意: 在前述範例中,已針對 Spark 作業修改 executorMemory。

  2. 對於您使用 -conf 選項傳遞的其他組態,請使用巢狀 JSON 物件。
    注意: 若要將物件傳遞給 SparkContext 或 Sparksession,請使用 -conf,而不是 conf。如需更多資訊,請參閱 Apache Livy 網站上的 Spark 組態。

  3. 範例:

    %%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 網站上新核心提供的功能

AWS 官方已更新 2 年前