Во время переноса данных с использованием sstableloader новые данные заполняются в новых таблицах, а данные дублируются в таблицах пользовательских типов. - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь перенести данные из кластера из 7 узлов (с одним DC) в кластер из 21 узла (3 DC) с помощью sstableloader.

  • У нас есть одинаковые версии как для старых, так и для новых кластеров.

cqlsh 5.0.1

Cassandra 2.1.13

CQL spec 3.2.1

  • Oldи новые кластеры в разных сетях.Итак, мы открыли между ними следующие порты:

7000 - порт хранения

7001 - порт хранения ssl

7199 - порт JMX

9042- клиентский порт

9160 - Экономичный клиентский порт

  • Мы используем vnodes в кластерах.
  • Мы убедились, что файл cassandra.yaml в новом кластере задан правильноизменив следующие параметры,

имя_кластера: 'MyCassandraCluster'

num_tokens: 256

seed: "10.168.66.41,10.176.170.59"

listen_address: localhost

endpoint_snitch: GossipingPropertyFileSnitch

А также изменения в свойствах cassaandra-rackdc для каждого DC путем указания соответствующих DC и стойки.

  • при создании пространств ключей изменил Replication на NetworkTopologyStratagy.

  • кластер выглядит исправным, все узлы работают и НОРМАЛЬНО.

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

  • Мы использовали следующие шаги для переноса данных:

    1.Взял snapshorts для всех клавишных пространств, которые мы хотим перенести.(9 клавиш).Использовал команду снимка узла nodetool на исходных узлах, чтобы сделать снимок необходимого пространства ключей / таблицы, указав имя хоста, порт jmx и пространство ключей __ / a / cassandra / bin / nodetool -u $ (sudo su - company -c "cat / a / cassandra /jmxremote.password "| awk '{print $ 1}') -pw $ (sudo su - company -c" cat /a/cassandra/jmxremote.password "| awk '{print $ 2}') -h localhost -p снимок 7199keyspace_name

    2.После создания моментальных снимков переместите этот каталог моментальных снимков с исходных узлов на целевой.

→ Создайте файл tar на исходном узле для каталога моментальных снимков, который мы хотим переместить на целевой узел.tar -cvf file.tar snapshot_name

→ Переместить этот file.tar из исходного узла на локальный компьютер.scp -S gwsh root@192.168.64.99: /a/cassandra/data/file.tar.

→ Теперь переместите этот file.tar с локального компьютера в новый каталог (пример: test) в целевом узле,scp -S gwsh file.tar root@192.168.58.41: / a / cassandra / data / test /.

3.Теперь распакуйте этот file.tar в тестовом каталоге на целевом узле.

Путь к sstables должен быть одинаковым как в исходном, так и в целевом объектах.

Для массовой загрузки этих файлов с использованием sstableloader, запустите sstableloader на исходном узле, укажите один или несколькоузлы в кластере назначения с флагом -d, который может принимать разделенный запятыми список IP-адресов или имен хостов и указывать путь к sstables в исходном узле.__ / a / Cassandra / bin / ./sstableloader -d host_IP path_to_sstables

  Example:

/ a / cassandra / bin # sstableloader -d 192.168.58.41 -u popps -pw ******* -tf org.apache.cassandra.thrift.SSLTransportFactory -ts /a/cassandra/ssl/truststore.jks -tspw test123 -ks /a/cassandra/ssl/keystore.jks -kspw test123 -f / a / cassandra / conf / cassandra.yaml / a / cassandra / data / app_properties / admins-58524140431511e8bbb6357f562e11ca /

Сводная статистика:

Подключений на хост:: 1

Всего файловпередано:: 9

Общее количество переданных байтов:: 1787893

Общая продолжительность (мс):: 2936

Средняя скорость передачи (МБ / с):: 0

Пиковая скорость передачи (МБ / с):: 0

  • Выполнены эти шаги для всех таблиц.И проверил количество строк в старомd новые таблицы с использованием CQLSH

cqlsh> SELECT count FROM keyspace.table;

пример для одной таблицы:

счетчик для новой таблицы: 341

count для старой таблицы: 303

И мы также можем определить разницу в таблицах с помощью команды 'sdiff'.Выполнены следующие шаги:

  • созданы файлы .txt / .csv для таблиц в старых и новых кластерах.

  • сравнили их с помощью команды sdiff

Поэтому я прошу кого-нибудь помочь мне узнать причину появления новых данных в новых таблицах.

Пожалуйста, дайте мне знать, еслиВам нужна дополнительная информация.

PS: После первого переноса данных и обнаружения этих проблем мы TRUNCATED все таблицы и таблицы DROPPED с пользовательским типом и воссоздали удаленные таблицы.И сделал ту же процедуру для переноса данных снова.Тем не менее мы видим те же проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...