Sparkの設定パラメータ一覧 ~スタンドアローンモード編

Sparkはshellスクリプトのようにコマンドラインで処理を実行できる他、PHPやJavaの言語で作られたアプリケーションのようにスタンドアローンでの実行も可能です。

今回はSparkをスタンドアローンモードで実行する際の設定値をまとめました。

前回作成した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

[スポンサーリンク]

  
サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]

最近の記事