

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 EMR Studio 优化 Spark 任务
<a name="emr-studio-spark-optimization"></a>

使用 EMR Studio 运行 Spark 任务时，您可以采取几个步骤以确保优化 Amazon EMR 集群资源。

## 延长您的 Livy 会话
<a name="optimize-spark-livy-timeout"></a>

如果您在 Amazon EMR 集群将 Apache Livy 和 Spark 一起使用，我们建议您选择以下一种操作来延长 Livy 会话时间：
+ 当您创建 Amazon EMR 集群时，请在 **Enter Configuration (输入配置) **字段设置配置类型。

  ```
  [
      {
          "Classification": "livy-conf",
          "Properties": {
            "livy.server.session.timeout": "8h"
          }
      }
  ]
  ```
+ 针对已经运行的 EMR 集群，请使用 `ssh` 连接集群，然后在 `/etc/livy/conf/livy.conf` 设置 `livy-conf` 配置分类。

  ```
  [
      {
          "Classification": "livy-conf",
          "Properties": {
            "livy.server.session.timeout": "8h"
          }
      }
  ]
  ```

  更改配置后，您可能需要重新启动 Livy。
+ 如果您不想 Livy 会话超时，请在 `/etc/livy/conf/livy.conf` 将属性 `livy.server.session.timeout-check` 设置为 `false`。

## 在集群模式下运行 Spark
<a name="optimize-spark-cluster-mode"></a>

在集群模式下，Spark 驱动程序在核心节点上运行，而不是在主节点上运行，从而提高了主节点上的资源利用率。

要以集群模式而不是默认客户端模式运行 Spark 应用程序，在设置**部署模式**时请选择** Cluster (集群) **模式，同时在新的 Amazon EMR 集群中配置 Spark 步骤。有关更多信息，请参阅 Apache Spark 文档中的[集群模式概览](https://spark.apache.org/docs/latest/cluster-overview.html)。

## 增加 Spark 驱动程序内存
<a name="optimize-spark-memory"></a>

要增加 Spark 驱动程序内存，请使用 EMR Notebooks 的 `%%configure` 魔术命令配置 Spark 会话，如以下示例所示。

```
%%configure -f
{"driverMemory": "6000M"}
```