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アドレスを使用して--masterURLを指定し、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.jarDC1からデータを読み取ります。
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トランザクション・クラスターからデータが取得されます。
