DSE Analytics Soloデータ・センターの作成

DSE Analytics Soloデータ・センターは、データベースや検索データは格納しませんが、分析処理で厳密に使用されます。データベース・データを含む、1つまたは複数のデータ・センターと組み合わせて使用します。

DSE Analytics Soloデータ・センターは、データベースや検索データは格納しませんが、分析処理で厳密に使用されます。データベース・データを含む、1つまたは複数のデータ・センターと組み合わせて使用します。

既存のDSEクラスター内でのDSE Analytics Soloデータ・センターの作成

このシナリオ例では、DC1という既存のデータ・センターがあり、既存のデータベース・データを持っています。DSE Analytics Soloデータ・センターの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からデータを読み取ります。

DSE Analytics Soloクラスターから外部のDSEトランザクション・クラスターへのアクセス

外部のDSEトランザクション・クラスターにアクセスするには、アプリケーション内にRDDまたはデータセットを作成するときに、トランザクション・クラスターへの接続を明示的に設定します。

次の例では、外部のDSEトランザクション・クラスターには、10.10.0.2で実行されているノードがあります。

トランザクション・クラスターのデータからRDDを作成するには、次のようにします。

import com.datastax.spark.connector._
import com.datastax.spark.connector.cql._
import org.apache.spark.SparkContext

def analyticsSoloExternalDataExample ( sc: SparkContext) = {
  val connectorToTransactionalCluster = CassandraConnector(sc.getConf.set("spark.cassandra.connection.host", "10.10.0.2"))

  val rddFromTransactionalCluster = {
    // Sets connectorToTransactionalCluster as default connection for everything in this code block
    implicit val c = connectorToTransactionalCluster
    // get the data from the test.words table
    sc.cassandraTable("test","words")
  }
}

トランザクションからのデータセットの作成:

import org.apache.spark.sql.cassandra._
import com.datastax.spark.connector.cql.CassandraConnectorConf

// set params for the particular cluster
spark.setCassandraConf("TransactionalCluster", CassandraConnectorConf.ConnectionHostParam.option("10.10.0.2"))

val df = spark
  .read
  .format("org.apache.spark.sql.cassandra")
  .options(Map( "table" -> "words", "keyspace" -> "test"))
  .load()

アプリケーションをDSE Analytics Soloクラスターに送信すると、外部DSEトランザクション・クラスターからデータが取得されます。