Sparkの起動

Sparkの起動方法はインストールによって異なり、また、SparkモードまたはSearchAnalyticsモードで実行することが必要かどうかによっても異なります。

Sparkを起動する前に、DseClientToolオブジェクトのCQL実行のリモート・プロシージャ・コールの権限を管理するを設定します。
注: Sparkを実行するうえで、DseClientToolオブジェクトのRPCパーミッションが必要になります。これは、DseClientToolオブジェクトは、Sparkランチャーによって暗黙的に呼び出されるためです。

Sparkの起動方法はインストールによって異なり、また、SparkモードまたはSearchAnalyticsモードで実行することが必要かどうかによっても異なります。

パッケージおよびInstaller-Servicesのインストール:
SparkトラッカーをAnalyticsノードのクラスターで起動するには、/etc/default/dseファイルを編集してSPARK_ENABLEDを1に設定します。

DataStax Enterpriseをサービスとして起動すると、ノードがSparkノードとして起動されます。追加のコンポーネントを有効にすることができます。

Mode /etc/default/dseのオプション 説明
Spark SPARK_ENABLED=1 Sparkモードでノードを起動します。
SearchAnalytics mode

SPARK_ENABLED=1 SEARCH_ENABLED=1

SearchAnalyticsモードでは、実稼働クラスターで使用する前にお使いの環境でテストする必要があります。dse.yamlcql_solr_query_paging: driverが必要です。
tarボールおよびInstaller-No Servicesのインストール:
SparkトラッカーをAnalyticsノードのクラスターで起動するには、-kオプションを使用します。
$ installation_location/bin/dse cassandra -k
注: スニッチのプロパティ・ファイルでデータ・センターを構成していない場合、-kを使用して起動されたノードはデフォルトのAnalyticsデータ・センターに自動的に割り当てられます。
追加のコンポーネントを有効にすることができます。
Mode オプション 説明
Spark -k Sparkモードでノードを起動します。
SearchAnalytics mode

-ks

dse.yamlcql_solr_query_paging: driverが必要です。
例を次に示します。

ノードをSearchAnalyticsモードで起動するには、-kオプションと-sオプションを使用します。

$ installation_location/bin/dse cassandra -k -s
または
$ installation_location/bin/dse cassandra -ks

Sparkオプションを使用してノードを起動すると、dsetool ringコマンドの出力のAnalytics(SM)ワークロードによって示されるとおり、マスターとして指定されたノードが起動します。

dsetool ring Address DC Rack Workload Graph Status State Load Owns Token Health [0,1] 0 10.200.175.149 Analytics rack1 Analytics(SM) no Up Normal 185 KiB ? -9223372036854775808 0.90 10.200.175.148 Analytics rack1 Analytics(SW) no Up Normal 194.5 KiB ? 0 0.90 Note: you must specify a keyspace to get ownership information.
sudoを使用してDataStax Enterpriseを起動する場合は、クラスターを再起動する前に~./sparkディレクトリーを削除しておきます。
$ sudo rm -r ~/.spark

Sparkの起動

Sparkノードを起動した後で、dseコマンドを使用してSparkを起動します。

使用法:

パッケージおよびInstaller-Servicesのインストール: $ dse spark

tarボールおよびInstaller-No Servicesのインストール: installation_location/bin/ dse spark

Cassandra特有のプロパティを使用してSparkを起動することもできます。Sparkは、cassandra.yamlで指定されているlisten_addressにバインドします。

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/cassandra/cassandra.yaml

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/cassandra/conf/cassandra.yaml

DataStax Enterpriseでは、以下のコマンドをDataStax Enterpriseコマンドラインで使用してSparkを起動できます。

dse spark
対話型のSparkシェルを起動して、基本的なオートコンプリートを提供します。

パッケージおよびInstaller-Servicesのインストール: $ dse spark

tarボールおよびInstaller-No Servicesのインストール: installation_location/bin/ dse spark

dse spark-submit
spark-submitと同様に、クラスター上でアプリケーションを起動します。このインターフェイスを使用すると、アプリケーションごとに別々の構成を行わなくてもSparkクラスター・マネージャーを使用できます。パッケージおよびInstaller-Servicesのインストールの構文は以下のとおりです。
$ dse spark-submit --class class_name jar_file other_options
たとえば、dという名前のオプションを定義するクラスを作成する場合は、以下のようなコマンドを入力します。
$ dse spark-submit --class com.datastax.HttpSparkStream target/HttpSparkStream.jar -d $NUM_SPARK_NODES
注: JARファイルは、DSEFSディレクトリーに配置することができます。DSEFSクラスターがセキュリティで保護されている場合は、DSEFS認証で説明するように認証情報を提供します。
注: dse Sparkコマンドを実行するディレクトリーは、現在のユーザーが書き込み可能でなければなりません。

内部認証はサポートされています。

オプションの環境変数のDSE_USERNAMEDSE_PASSWORDを使用してセキュリティを強化し、ユーザー名とパスワードがSparkログ・ファイルやSpark Web UIのプロセス・リストに表示されないようにします。環境変数を使用してユーザー名とパスワードを指定するには、以下をご使用のBash .profileまたは.bash_profileに追加します。
export DSE_USERNAME=user export DSE_PASSWORD=secret
こうした環境変数は、すべてのSparkおよびdse client-toolコマンドでサポートされています。
注: DataStaxでは、コマンドラインにユーザー認証情報を渡すのではなく、環境変数を使用することを推奨しています。

認証情報はいくつかの方法で指定できます。「認証対応クラスターへの接続」を参照してください。

dse.yamlファイルの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/dse.yaml

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/dse/conf/dse.yaml

Spark URLの指定

DSEでSparkジョブを起動する際、Sparkマスター・アドレスを指定する必要はありません。データ・センターのいずれかのSparkノードに接続する場合、DSEはマスター・アドレスを自動的に検出し、クライアントをマスターに接続します。

以下の形式を使用して、任意のSparkノードのURLを指定します。

dse://[Spark node address[:port number]]?[parameter name=parameter value;]...

デフォルトでは、URLはdse://?で、これはdse://localhost:9042に相当します。URLに設定するパラメーターは、DSEのSpark構成設定から読み取る構成をオーバーライドします。有効なパラメーターは、CassandraConnectorConf 設定で、spark.cassandra.プレフィックスが取り除かれています。たとえば、dse://?connection.local_dc=dc2を指定して、spark.cassandra.connection.local_dcオプションをdc2に設定します。

または、指定した接続点が停止している場合、可用性を高めるために複数のspark.cassandra.connection.hostアドレスを指定するには、dse://1.1.1.1:123?connection.host=1.1.2.2,1.1.3.3のようにします。

connection.hostパラメーターが指定されている場合、標準のURLで提供されているホストは、connection.hostで設定されているホストのリストの先頭に追加されます。標準のURLでポートが指定されている場合は、connection.portパラメーターで設定されているポート番号をオーバーライドします。

dse spark-submit使用時の接続オプションは、マスターURLから、Spark Cassandra Connectorオプション、そしてDSE構成ファイルという順序で取得されます。