スキップしてコンテンツを表示

Amazon EMR Studio Workspace の Spark 設定を変更する方法を教えてください。

所要時間2分
0

Amazon EMR Studio Workspace の Spark 設定を変更したいです。

簡単な説明

Amazon Elastic Compute Cloud (Amazon EC2) または EMR Serverless リモートクラスターの Spark 設定をカスタマイズするには、Sparkmagic コマンドを使用して executorMemory、executorCores、リソース割り当てを変更します。

Amazon Elastic Kubernetes Service (Amazon EKS) リモートクラスターの場合は、SparkContext オブジェクトで Spark 設定を構成してください。Amazon EKS は Sparkmagic コマンドをサポートしていません。詳細については、「考慮事項と制限事項」を参照してください。

解決策

Amazon EC2 または EMR Serverless リモートクラスターの Spark 設定をカスタマイズする

次の手順を実行します。

  1. ジョブ設定を変更するには、Workspace セルで %%configure コマンドを実行する。

    例:

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

    **注: ** 上記の例では、Spark ジョブの executorMemory が変更されています。

  2. -conf オプションで渡す追加設定には、ネストされた JSON オブジェクトを使用する。
    **注: ** SparkContext または Sparksession にオブジェクトを渡すには、conf の代わりに -conf を使用してください。詳細については、Apache Livy ウェブサイトの "Spark configuration" (Spark 設定) を参照してください。

  3. 例:

    %%configure -f
    {
      "driverMemory": "4G",
      "driverCores": 4,
      "executorMemory" : "8G",
      "executorCores": 2,
      "conf": {
         "spark.dynamicAllocation.maxExecutors" : 10,
         "spark.dynamicAllocation.minExecutors": 1
      }
    }

Amazon EKS クラスターに接続された Workspace で Spark 設定をカスタマイズするには、SparkContext オブジェクトで Spark に関する設定を行います。

spark.conf.set("spark.executor.memory", "8g")

Spark の設定を確認する

次の操作を実行します。

  • Amazon EC2 および EMR Serverless の場合は、クライアント側の Workspace で %%info コマンドを実行する。

    出力例:

    Current session configs: {'driverMemory': '4G', 'driverCores': 4, 'executorMemory': '8G', 'executorCores': 2, 'conf': {'spark.dynamicAllocation.maxExecutors': 10, 'spark.dynamicAllocation.minExecutors': 1}, 'proxyUser': 'assumed-role_Admin_biditdas-Isengard', 'kind': 'pyspark'}
  • Amazon EC2 の場合は、クラスターのプライマリノードにある /var/log/livy/livy-livy-server.out のログを確認する。Spark セッションが開始されると、次のようなログエントリが表示される。

    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]]
  • Amazon EKS の場合は、Spark UI を使用する。

関連情報

EMR Studio で magic コマンドを使用してカーネルを強化する

Apache Livy ウェブサイトの REST API

GitHub ウェブサイトの新しいカーネルで利用可能な機能

AWS公式更新しました 2年前
コメントはありません