

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EMR Studio で Spark ジョブを最適化する
<a name="emr-studio-spark-optimization"></a>

EMR Studio を使用して Spark ジョブを実行する場合、Amazon EMR クラスターリソースを最適化できるようにするための手順がいくつかあります。

## Livy セッションを延長する
<a name="optimize-spark-livy-timeout"></a>

Apache Livy を Amazon EMR クラスターで 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 アプリケーションをデフォルトのクライアントモードではなくクラスターモードで実行するには、新しい Amazon EMR クラスターで Spark ステップを設定するときに、**[Deploy mode]** (デプロイモード) を設定する際に **[Cluster]** (クラスター) モードを選択します。詳細については、Apache Spark ドキュメントで「[クラスターモードの概要](https://spark.apache.org/docs/latest/cluster-overview.html)」を参照してください。

## Spark ドライバーのメモリを増やす
<a name="optimize-spark-memory"></a>

Spark ドライバーのメモリを増やすには、次の例のように、EMR ノートブックで `%%configure` マジックコマンドを使用して Spark セッションを設定します。

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