Spark Cassandra Connector固有のプロパティの設定
Spark Cassandra Connectorオプションを使用して、DataStax Enterprise Sparkを構成します。
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
spark-defaults.conf
spark-defaults.confファイルのデフォルトの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/spark/spark-defaults.conf |
tarボール・インストール | installation_location/resources/spark/conf/spark-defaults.conf |
Sparkの統合には、Spark Cassandra Connectorが内部で使用されます。DataStax Enterprise Sparkの構成には、プロジェクトで定義されている構成オプションを使用できます。Sparkでは、spark.プレフィックスを持つシステム・プロパティが認識され、構成オブジェクトの作成時にこれらのプロパティがそのオブジェクトに暗黙的に追加されます。SparkConf
コンストラクターのloadDefaults
パラメーターにfalseを渡すことによって、構成オブジェクトにシステム・プロパティが追加されるのを防ぐことができます。
パラメーターの完全なリストは、Spark Cassandra Connectorのドキュメントに記載されています。
Spark、Sparkシェル、その他のDataStax Enterprise Spark組み込みアプリケーションに設定を渡すには、Spark のドキュメントで説明されている、中間アプリケーションのspark-submit
を使用します。
Sparkシェルの構成
dse spark [submission_arguments] [application_arguments]
submission_arguments
が以下の場合:[--help] [--verbose]
[--conf name=spark.value|sparkproperties.conf]
[--executor-memory memory]
[--jars additional-jars]
[--master dse://?appReconnectionTimeoutSeconds=secs]
[--properties-file path_to_properties_file]
[--total-executor-cores cores]
- --conf name=spark.value|sparkproperties.conf
- Spark構成に対する任意のSparkオプション。プレフィックスsparkが付きます。
- name-spark.value
- sparkproperties.conf - 構成
- --executor-memory mem
- アプリケーション用にエグゼキューターが消費できるメモリー容量。Sparkでは、デフォルト値の512MBが使用されます。k、m、gのいずれかのサフィックスを使用して、メモリー引数をJVM形式で指定します。
- --help
- DataStax Enterprise Sparkシェル・オプション以外のすべてのオプションを含むヘルプ・メッセージを表示します。
- --jars path_to_additional_jars
- 追加JARファイルへのパスのコンマ区切りリスト。
- --properties-file path_to_properties_file
- 構成設定が含まれるプロパティ・ファイルの場所。デフォルトで、Sparkはspark-defaults.confから設定を読み込みます。
- --total-executor-cores cores
- アプリケーションが使用するコアの総数。
- --verbose
- どの引数がSpark構成オプションとして認識され、どの引数がSparkシェルに転送されるかを表示します。
- -i app_script_file
- 指定されたファイルからスクリプトを実行する、Sparkシェル・アプリケーション引数。
Sparkアプリケーションの構成
dse spark-submit [submission_arguments] application_file [application_arguments]
spark-submit submission_arguments
:- --class class_name
- アプリケーション・メイン・クラスの完全な名前。
- --name appname
- Spark Webアプリケーションに表示されるアプリケーション名。
- --py-files files
- Pythonアプリケーション向けにPYTHONPATHで設定される、.zip、.egg、.pyの各ファイルのコンマ区切りリスト。
- --files files
- エグゼキューター間で配布され、アプリケーションで使用できるコンマ区切りリストのファイル。
通常、Sparkサブミット引数は、システム・プロパティである-Dname=value
やclasspathなどのVMパラメーターに変換されます。アプリケーション引数はアプリケーションに直接渡されます。
プロパティ・リスト
Analyticsクラスターのノードでdse spark-submit
を実行すると、以下のすべてのプロパティが自動で設定され、Sparkマスターは自動的に検出されます。自動的に管理されるプロパティをオーバーライドする必要がある場合にのみ、以下のプロパティを設定します。
- spark.cassandra.connection.native.port
- デフォルトは9042です。ネイティブ・クライアント・プロトコル接続に使用するポート。
- spark.cassandra.connection.rpc.port
- デフォルトは9160です。thrift接続に使用するポート。
- spark.cassandra.connection.host
- Thrift RPCサービスとネイティブ・トランスポートが関連付けられているホスト名またはIPアドレス。このプロパティのデフォルト値は、cassandra.yaml内の
native_transport_address
プロパティ(デフォルトでlocalhost)によって決められます。
--master master address
パラメーターをdse spark-submit
に使用して、Sparkマスター・アドレスを明示的に設定できます。
dse spark-submit --master master address application JAR file
dse spark-submit --master dse://10.0.0.2? myApplication.jar
以下のプロパティは、パフォーマンスまたは可用性についてオーバーライドできます。
読み取りプロパティ
- spark.cassandra.input.split.size
- デフォルトは100000です。単一のSparkパーティションに含まれる行の数の概数。この値が大きいほど、作成されるSparkタスクの数は少なくなります。値を大きくしすぎると、並列処理が制限される可能性があります。
- spark.cassandra.input.fetch.size_in_rows
- デフォルトは1000です。データベースへの往復ごとにフェッチされる行の数。この値を増やすと、メモリーの消費量も増加します。値を減らすと、往復回数が増加します。以前のリリースでは、このプロパティはspark.cassandra.input.page.row.sizeでした。
- spark.cassandra.input.consistency.level
- デフォルトはLOCAL_QUORUMです。読み取り時に使用する整合性レベル。
- spark.cassandra.input.throughputMBPerSec
- デフォルトはunlimitedです。タスクあたりの読み取りスロットルを設定するための1秒あたりのしきい値(MB単位)。このしきい値は、複数のジョブが並行して実行されている場合にリソースを管理するのに役立ちます。
書き込みプロパティ
以下のプロパティをSparkConfで設定して、保存プロセスを微調整できます。
- spark.cassandra.output.batch.size.bytes
-
デフォルトはautoです。1バッチあたりのバイト数。デフォルトのautoは、コネクターがデータ量に基づいてバイト数を調整することを意味します。
- spark.cassandra.output.consistency.level
- デフォルトはLOCAL_ONEです。書き込み時に使用する整合性レベル。
- spark.cassandra.output.concurrent.writes
- デフォルトは100です。1つのSparkタスクによって並列実行されるバッチの最大数。
- spark.cassandra.output.batch.size.rows
-
デフォルトは64Kです。バッチの最大合計サイズ(単位はバイト)。
上記以外の下位プロパティの詳細については、Spark Cassandra Connectorのドキュメントを参照してください。