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_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
からデータを読み取ります。
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トランザクション・クラスターからデータが取得されます。