Spark専用データ・センターを作成する
Spark専用データ・センターは、データベースや検索データは格納しませんが、分析処理で厳密に使用されます。データベース・データを含む、1つまたは複数のデータ・センターと組み合わせて使用します。
Spark専用データ・センターは、データベースや検索データは格納しませんが、分析処理で厳密に使用されます。データベース・データを含む、1つまたは複数のデータ・センターと組み合わせて使用します。
Spark専用データ・センターは、分析ジョブが急増する一日の終わりや四半期末など、追加の分析処理が必要な状況において主に使用されます。その他のユース・ケースとしては、分析リソースのニーズが、トランザクション・リソースのニーズよりも重要となる場合が挙げられます。たとえば、データの99.9%をフィルターするSparkストリーミング・ジョブがある場合、トランザクション・データ・センター専用のリソースは、データを分析するうえで必要とされるリソースよりはるかに小さくなります。通常、データ移動はほとんどないため、Spark専用データ・センターのスケール・アップまたはスケール・ダウンにかかるリソース・コストが少ないことから、クラスター・トポロジーの融通性が増します。分析とトランザクションが配列された環境では、ノードの追加はトランザクション・データの移動を意味します。
Spark専用データ・センターを作成する
このシナリオ例では、DC1
という既存のデータ・センターがあり、既存のデータベース・データを持っています。新しいSpark専用データ・センターのDC2
を作成します。ここには、データは一切格納されませんが、DC1
からのデータベース・データを使用して分析ジョブを実行します。
DC1
データ・センター内のすべてのキースペースが、NetworkTopologyStrategy
を使用していることを確認します。必要に応じて、キースペースを変更します。ALTER KEYSPACE mykeyspace WITH REPLICATION = { 'class' = 'NetworkTopologyStrategy', 'DC1' : 3 };
DC2
という名前の新しいデータ・センターにノードを追加してから、追加したノードでAnalyticsを有効にします。dse_leases
とspark_system
のキースペースを構成して、DC1
とDC2
の両方にレプリケートします。例を次に示します。ALTER KEYSPACE dse_leases WITH REPLICATION = { 'class' = 'NetworkTopologyStrategy', 'DC1' : 3, 'DC2' : 3 };
- Sparkアプリケーションを送信する際、
DC2
データ・センター内のノードの名前またはIPアドレスを使用して--master
URLを指定し、spark.cassandra.connection.local_dc
の構成オプションをDC1
に設定します。
Sparkワーカーは、dse spark-submit --master "dse://?connection.local_dc=DC2" --class com.datastax.dse.demo.loss.Spark10DayLoss --conf "spark.cassandra.connection.local_dc=DC1" portfolio.jar
DC1
からデータを読み取ります。
Spark専用クラスターから外部のDSEトランザクション・クラスターにアクセスする
Spark専用データ・センターと同様に、短時間の追加の分析処理が必要な状況や、分析とトランザクション・クラスター間のリソースを完全に分離する必要がある状況において、外部にある別のトランザクションDSEクラスターにはSpark専用クラスターからアクセスできます。ユース・ケースはBYOSと似ていますが、この場合、DSEを両方のクラスターで使用します。
このシナリオの構成では、2つの手順を行う必要があります。まず、DSE Analyticsで使用されているメタストア・テーブルを使用してトランザクション・クラスターを設定し、次に、適切な設定をSparkクラスターに渡し、トランザクション・クラスター・データにアクセスします。ただし、処理にはSparkクラスターを使用します。
トランザクション・クラスターを構成するには、メタストア・キースペースとテーブルを作成します。
$ cqlsh
CREATE KEYSPACE "HiveMetaStore" WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} CREATE TABLE "HiveMetaStore".sparkmetastore (key text, entity text, value blob, PRIMARY KEY (key, entity)) WITH COMPACT STORAGE;
Sparkクラスターから、トランザクション・クラスターに対して以下の設定を持つプロパティ・ファイルを作成します。以下の例では、トランザクション・クラスター内のノードのIPアドレスは10.0.0.1で、基本認証が有効になっています。
spark.cassandra.connection.host=10.0.0.1
spark.hadoop.cassandra.host=10.0.0.1
spark.cassandra.auth.username=role name
spark.cassandra.auth.password=role password
spark.hadoop.cassandra.username=role name
spark.hadoop.cassandra.password=role password
spark.hadoop.fs.defaultFS=dsefs://10.0.0.1:5598/
spark.hadoop.fs.default.name=dsefs://10.0.0.1:5598/
spark.hadoop.com.datastax.bdp.fs.client.authentication.basic.username=role name
spark.hadoop.com.datastax.bdp.fs.client.authentication.basic.password=role password
spark.hadoop.com.datastax.bdp.fs.client.authentication=basic
spark.hadoop.hive.metastore.warehouse.dir=dsefs://10.0.0.1:5598/user/spark/warehouse
SparkクラスターでSparkコマンドを起動する場合は、プロパティ・ファイルを指定します。
$ dse spark-submit --properties-file ~/properties file name myApplication.jar
$ dse spark --properties-file ~/properties file name