ページの先頭行へ戻る
Big Data Integration Server V1.1.0 分散処理編ユーザーズガイド
FUJITSU Software

D.4 Apache Spark

Apache Sparkに関連するチューニングパラメーターについて以下に説明します。

なお、タイトルは以下の形式で記載しています。

spark-defaults.confへの設定パラメーター名/spark-submitコマンド引数名


(1) spark.executor.memory/--executor-memory
【説明】

executorプロセス1つあたりに使用するメモリサイズを指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 1 となります。

【推奨値】

動作するSparkアプリケーションに応じて値を決定してください。

ただし、以下の値を超えて設定することはできません。(Sparkアプリケーションが実行できません。)

yarn.nodemanager.resource.memory-mb

【設定先】

以下のいずれかで設定できます。(両者に設定した場合はspark-submitコマンドの引数が優先されます。)

spark-submitコマンド引数での設定:--executor-memory

ファイルへの設定:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

executorプロセス1つあたりに使用するメモリサイズ2GBをファイルに設定する例:

spark.executor.memory        2g
(2) spark.executor.cores/--executor-cores
【説明】

executorプロセス1つあたりに使用するCPUコア数を指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 1 となります。

【推奨値】

動作するSparkアプリケーションの多重度に応じて値を決定してください。

ただし、以下の値を超えて設定することはできません。(Sparkアプリケーションが実行できません。)

yarn.nodemanager.resource.cpu-vcores

【設定先】

以下のいずれかで設定できます。(両者に設定した場合はspark-submitコマンドの引数が優先されます。)

spark-submitコマンドの引数:--executor-cores

ファイルへの設定:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

executorプロセス1つあたりに使用するCPUコア数2をファイルに設定する例:

spark.executor.cores        2

ポイント

本パラメーターで指定したCPUコア数が、1つのexecutorあたりで動作するスレッド数となります。

本パラメーターに加えて、以下で説明しているパラメーターからSparkアプリケーションの多重度は決定します。

(5) spark.executor.instances(--num-executors)

(8) spark.task.cpus

Sparkアプリケーションの多重度は以下の式のとおりとなります。

(2) × (5) ÷ (8)

(3) spark.driver.memory/--driver-memory
【説明】

driverプロセスに使用するメモリサイズを指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 1となります。

【推奨値】

動作するSparkアプリケーションのmain処理で利用するメモリ容量に応じて値を決定してください。

【設定先】

以下のいずれかで設定できます。(両者に設定した場合はspark-submitコマンドの引数が優先されます。)

spark-submitコマンドの引数:--driver-memory

ファイルへの設定:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

driverプロセスに使用するメモリサイズ2GBをファイルに設定する例:

spark.driver.memory        2g
(4) spark.driver.cores/--driver-cores
【説明】

driverプロセスに使用するコア数を指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 1 となります。

【推奨値】

動作するSparkアプリケーションのmain処理のスレッド数に応じて値を決定してください。

【設定先】

以下のいずれかで設定できます。(両者に設定した場合はspark-submitコマンドの引数が優先されます。)

spark-submitコマンドの引数:--driver-cores

ファイルへの設定:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

driverプロセスに使用するCPUコア数2をファイルに設定する例:

spark.driver.cores        2
(5) spark.executor.instances/--num-executors
【説明】

Sparkアプリケーションが起動するexecutorの数を指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 2 となります。

【推奨値】

動作するSparkアプリケーションの多重度に応じて値を決定してください。

【設定先】

以下のいずれかで設定できます。(両者に設定した場合はspark-submitコマンドの引数が優先されます。)

spark-submitコマンドの引数:--num-executors

ファイルへの設定:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

Sparkアプリケーションが起動するexecutor数4をファイルに設定する例:

spark.executor.instances        4

ポイント

本パラメーターで指定した値が、1つのSparkアプリケーションが起動するexecutorプロセスの数となります。

本パラメーターに加えて、以下で説明しているパラメーターからSparkアプリケーションの多重度は決定します。

(2) spark.executor.cores/--executor-cores

(8) spark.task.cpus

Sparkアプリケーションの多重度は以下の式のとおりとなります。

(2) × (5) ÷ (8)

(6) spark.files.maxPartitionBytes
【説明】

RDD使用時のファイルを読み込む際の1つのパーティションの最大バイト数を指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 128MB となります。

【推奨値】

HDFSのブロックサイズ(dfs.blocksizeで指定)と同じ値とすることを推奨します。

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

1つのパーティションの最大バイト数を128MBに設定する例:

spark.files.maxPartitionBytes        134217728
(7) spark.sql.files.maxPartitionBytes
【説明】

SparkSQL、Dataset、Dataframe使用時のファイルを読む時に1つのパーティションに詰め込む最大のバイト数を指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 128MB となります。

【推奨値】

HDFSのブロックサイズ(dfs.blocksizeで指定)と同じ値とすることを推奨します。

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

1つのパーティションの最大バイト数を128MBにを設定する例:

spark.sql.files.maxPartitionBytes        134217728
(8) spark.task.cpus
【説明】

executor内の各タスクごとに割り当てるコア数を指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 1 となります。

【推奨値】

動作するSparkアプリケーションの並列処理部分のスレッド数に応じて値を決定してください。

ただし、以下の値を超えて設定することはできません。(Sparkアプリケーションが実行できません。)

yarn.nodemanager.resource.cpu-vcores

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/spark/spark-defaults.conf

各タスクごと割り当てるコア数を2に設定する例:

spark.task.cpus        2

ポイント

本パラメーターで指定した値が、executorが実行するタスクのスレッド数となります。

本パラメーターに加えて、以下で説明しているパラメーターからSparkアプリケーションの多重度は決定します。

(2) spark.executor.cores/--executor-cores

(5) spark.executor.instances/--num-executors

Sparkアプリケーションの多重度は以下の式のとおりとなります。

(2) × (5) ÷ (8)