如何修改 Amazon EMR 笔记本中的 Spark 配置?

上次更新时间:2020 年 6 月 24 日

如何自定义 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 log。如果 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]]

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?