Sparkの設定パラメータ一覧 ~スタンドアローンモード編
-
タグ:
- #Spark
Sparkはshellスクリプトのようにコマンドラインで処理を実行できる他、PHPやJavaの言語で作られたアプリケーションのようにスタンドアローンでの実行も可能です。
今回はSparkをスタンドアローンモードで実行する際の設定値をまとめました。
前回作成したSpark本体と環境変数の設定に関しては下記記事にまとめてありますので、合わせて参考にしてみてください。
Spark-submitの使い方
spark-submitの基本構文は以下の通りです。
$ ${SPARK_HOME}/bin/spark-submit \
--master <master-url> \
--class <main-class>
--name <name>
... # other options
<application-jar> \
[application-arguments]
Spark-submitの設定値
※赤字がパフォーマンスに関連しそうなプロパティ
Options | 内容 | デフォルト |
--help/-h | ヘルプを表示。 | |
--verbose/-v | デバッグ情報を表示。 | |
--master [masterURL] |
動作モード。省略した場合は local モード。詳細は下記の表を参照。
localのときにJavaVMのヒープサイズを増やしたい場合は、SPARK_HOME/conf/spark-defaults.confのspark.driver.memoryを設定する。
|
|
--deploy-mode [デプロイモード] | driverをローカルで起動する(client)かワーカーマシン上で起動する(cluster)かを指定する。 | client |
--class [Class名] | Java または Scala の main メソッドが実装されているアプリケーションのクラス。 | |
--name | アプリケーション名。Spark の Web UI に表示される。 | |
--deploy-mode |
ドライバの起動先を Client か Cluster かを指定する。
YARN の場合は--masterで指定するため通常使用しない。
|
Client |
--jars [ファイル群] |
ドライバやエグゼキュータのクラスパスに追加したい JAR ファイルを指定。
通常は uber-JAR を使用するのが一般的。(カンマ区切り)
|
|
--files [ファイル群] | エグゼキュータにファイルを配布(カンマ区切り) | |
--py-files [ファイル群] | pythonのファイル名を指定。 | |
--conf [confファイルパス] |
SparkConf の設定オプションをプロパティ名=値の形式で指定する。
spark.*で始まるプロパティ名のみで、Java オプションや環境変数とは違う。
|
|
--properties-file [設定ファイルパス] | SparkConf の設定が記述されたファイルのパスを指定。 | ${SPARK_HOME}/conf/spark-defaults.conf ※ テンプレート有 |
--driver-cores [コア数] | driverに割り当てるコア数 | 1 |
--driver-memory [メモリサイズ] | driverに割り当てるメモリ量 | 1024M |
--driver-java-options [オプション] | driverのJavaオプションを指定。 | |
--driver-library-path [パス] | driverのライブラリパスを指定。 | |
--num-executors | 起動するexecutorの数 | 2 |
--executor-cores [コア数] | exectorのコア数 | 1 |
--executor-memory [メモリサイズ] | executorを割り当てるメモリ量 | 1024M |
※Sparkアプリケーションを起動する側(メインプログラム)をdriverと呼ぶ。
※各マシン(ワーカーノード)上で分散して実際に稼動する側(プロセス)をexecutorと呼ぶ。
オプションの「--master」のmaster URL には次のような値が指定できます。
Master URL | 内容 |
local | ローカルでエグゼキュータに1 つのスレッドを割り当てる。 |
local[n] | ローカルでエグゼキュータに n 個のスレッドを割り当てる。 |
local[*] | ローカルでエグゼキュータにクライアントPCのコア数と同数のスレッドを割り当てる。 |
yarn-client | YARN クラスタに接続。ドライバプログラムがクライアント上で動作。 |
yarn-cluster | YARN クラスタに接続。ドライバプログラムがクラスタ内の NodeManager 上で動作。 |
spark://HOST:PORT | Standalone クラスタに接続。デフォルトは7077ポート。 |
mesos://HOST:PORT | Mesos クラスタに接続。デフォルトは5050ポート。ZooKeeper を使用してる場合はmesos://zk://...になる。 Running Spark on Mesos |
SPARK_WORKER_MEMORYとspark.executor.memoryの違い
SPARK_WORKER_MEMORY:特定ノードの全体で使用できるメモリ総量。複数のバッチ処理が動いていた場合は、ここで指定したメモリ数でやりくりする。
spark.executor.memory:一タスクで使用できる総メモリ量。
※SPARK_DAEMON_MEMORYはワーカーのヒープサイズのこと!
投稿日:2018-11-13
更新日:2018-11-13