Amazon EMR ノートブックで Spark 設定を変更する方法を教えてください。

最終更新日: 2022 年 5 月 4 日

Amazon EMR ノートブックで Apache Spark ジョブの設定をカスタマイズする方法を教えてください。

簡単な説明

Amazon EMR ノートブックは、サーバーレスの Jupyter ノートブックです。Jupyter ノートブックは、Apache Livy サーバーを介してリモート EMR クラスターで Spark をインタラクティブに操作するためのクライアントとして Sparkmagic カーネルを使用します。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]]

この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?