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_leasesspark_systemのキースペースを構成して、DC1DC2の両方にレプリケートします。例を次に示します。
    ALTER KEYSPACE dse_leases
    WITH REPLICATION = { 'class' = 'NetworkTopologyStrategy', 'DC1' : 3, 'DC2' : 3 };
  • Sparkアプリケーションを送信する際、DC2データ・センター内のノードの名前またはIPアドレスを使用して--master URLを指定し、spark.cassandra.connection.local_dcの構成オプションをDC1に設定します。
    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
    Sparkワーカーは、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