如何修改 Amazon EMR 筆記本中的 Spark 組態?

1 分的閱讀內容
0

如何在 Amazon EMR 筆記本中自訂 Apache Spark 作業的組態?

簡短描述

Amazon EMR 筆記本是一款無伺服器 Jupyter 筆記本。Jupyter 筆記本使用 Sparkmagic 核心為用戶端,透過 Apache Livy 伺服器在遠端 EMR 叢集中以互動方式使用 Spark。您可以使用 Sparkmagic 命令來自訂 Spark 組態。當您要執行以下操作時,自訂組態非常有用:

  • 變更 Spark 作業的執行器記憶體和執行器核心
  • 變更 Spark 的資源配置

解決方法

修改目前的工作階段

1.    在 Jupyter 筆記本儲存格中,執行 %%configure 命令以修改作業組態。在下列範例中,命令會變更 Spark 作業的執行器記憶體。

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

2.    對於通常使用 --conf 選項傳遞的其他組態,請使用巢狀 JSON 物件,如下列範例所示。使用此方法,而不是明確地將 conf 物件傳遞至 SparkContext 或 SparkSession。

%%configure -f
{"conf":{"spark.dynamicAllocation.enabled":"false"}}

確認組態變更成功

1.    在用戶端,在 Jupyter 上執行 %%info 命令以查看目前的工作階段組態。範例輸出:

Current session configs: {'executorMemory': '4G', 'conf': {'spark.dynamicAllocation.enabled': 'false'}, 'kind': 'pyspark'}

2.    在伺服器端,檢查 EMR 叢集上的 /var/log/livy/livy-livy-server.out 日誌。如果 SparkSession 已啟動,您應該會看到如下所示的日誌項目:

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]]

相關資訊

Apache Livy - REST API

AWS 官方
AWS 官方已更新 2 年前