перенести кластер Cassandra2 в новый кластер Cassandra3, та же схема, нулевое время простоя - PullRequest
0 голосов
/ 23 мая 2018

В настоящее время я работаю на многоузловом постоянном токе с Cassandra 2.0.11. У меня есть новый многоузловой DC, на котором работает Cassandra 3.1.11. Я хочу перенести все данные с нулевым временем простоя и нулевой потерей данных. У меня непрерывное чтение / запись * 1001.*

1: я думал о подключении DC к тому же кластеру и позволил Cassandra делать то, что он знает, и затем медленно выводить из эксплуатации старый dc, но я прочитал, что я не могу (?) Иметь другую версию Cassandra на одном кластере

2: у меня может быть та же версия Cassandra, подключить DC к кластеру, перенести данные и затем обновить с 2.0.11 => ... => 3.1.11. На данный момент это не вариант.

любой совет?Спасибо.

1 Ответ

0 голосов
/ 23 мая 2018

Вы можете использовать, например, Spark Cassandra Connector (полный код в документации ).

  val rddFromClusterOne = {
    // Sets connectorToClusterOne as default connection for everything in this code block
    implicit val c = connectorToClusterOne
    sc.cassandraTable("ks","tab")
  }

  {
    //Sets connectorToClusterTwo as the default connection for everything in this code block
    implicit val c = connectorToClusterTwo
    rddFromClusterOne.saveToCassandra("ks","tab")
  }

Но вам также необходимо изменить приложение, чтобы оно выполняло запись в оба кластера в течение некоторого периода времени, пока данные не будут скопированы из одного кластера в другой, а после копирования данных вы сможете переключать операции чтения.в новый кластер.

...