如何在 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