Dse spark从集群中提取数据并加载到另一个集群

时间:2015-11-02 23:55:04

标签: apache-spark datastax datastax-enterprise

我们有两个DSE集群,我们希望使用DSE spark从cluster1中提取数据并进行一些转换并加载到cluster2中。

如何实现这个?

1 个答案:

答案 0 :(得分:1)

您可以使用DSE spark从Cluster1加载到Cluster2。 唯一的先决条件是使密钥空间和表已经在集群2中,其中将加载数据。

对于以下设置:

来源群集

群集1:

Keyspace:rrtest

table:rrexample

目标群集

群集2:

keyspace:test

表:示例

现在,这里的第一步是创建键空间和表。 假设该表具有以下描述(从cql shell创建)

在群集1上:

CREATE TABLE rrtest.rrexample 
(
    username text PRIMARY KEY,
    password text,
    state text
)

在群集2上:

CREATE TABLE test.example 
(
    username text PRIMARY KEY,
    password text,
    state text
)

用于迁移到cluster2的Scala代码

************ Load from Cluster 1*************

import com.datastax.spark.connector.cql._
import java.net.InetAddress
val myrdd = { implicit val src = CassandraConnector(Set(InetAddress.getByName("<ip : host1>"))); sc.cassandraTable("rrtest", "rrexample").select("username", "password", "state") }

************ Migrate to Cluster 2************

{     implicit val dst = CassandraConnector(Set(InetAddress.getByName("<ip:host2>")));    myrdd.saveToCassandra("test", "example") }