Да, я делал это раньше.
Прежде всего, найдите точную версию версии Cassandra (не версию DSE), на которой работает ваш кластер:
SELECT release_version FROM system.local;
release_version
-----------------
3.11.4
Вы также можете увидеть этот номер версии при соединении с cqlsh
. К DSE-версии Cassandra будет добавлен (длинный) номер сборки. Но идея состоит в том, что версия Apache Cassandra на новых узлах должна максимально соответствовать DSE-версии Cassandra.
Затем создайте свои Apache «замещающие» узлы Cassandra как новый логический центр обработки данных . Убедитесь, что они используют dc_name
(отличные от существующих узлов) в файле cassandra-rackdc.properties
. Первый узел (или два) должен использовать узлы из существующего кластера в качестве начальных узлов. Следующие узлы могут затем использовать первые узлы как начальные. Кроме того, cluster_name
должен соответствовать.
Теперь проверьте определения пространств ключей для system_auth
, system_traces
, system_distributed
и любых пространств клавиш, которые необходимы приложению. Убедитесь, что они используют NetworkTopologyStrategy
. Если нет, убедитесь, что это так, и настройте коэффициент репликации (RF) для существующего D C (имя D C должно соответствовать dc_name
существующих узлов DSE). Затем вы можете расширить репликацию на новый центр обработки данных.
Если текущий dc_name
равен DSE_DC
, а новый dc_name
равен AC_DC
, тогда:
ALTER KEYSPACE yourkeyspace WITH replication =
{'class': 'NetworkTopologyStrategy',
'DSE_DC': '3', 'AC_DC': '3'};
После этого изменение выполнено, запустите перестроение nodetool на каждом новом Apache узле Cassandra .
nodetool rebuild -- DSE_DC
Это переместит данные из из DSE_DC
в текущий узел. Затем вы сможете переключить свой API, указав новое имя центра обработки данных.
Изменить 20200506
Проверьте каталоги данных. Самая важная вещь, которая должна соответствовать, чтобы это работало, - это формат SSTable.
ver 3.11.4 +
43 Feb 20 08:55 md-1-big-CompressionInfo.db
83 Feb 20 08:55 md-1-big-Data.db
10 Feb 20 08:55 md-1-big-Digest.crc32
16 Feb 20 08:55 md-1-big-Filter.db
17 Feb 20 08:55 md-1-big-Index.db
4769 Feb 20 08:55 md-1-big-Statistics.db
57 Feb 20 08:55 md-1-big-Summary.db
92 Feb 20 08:55 md-1-big-TOC.txt
ver 4.0-alpha4:
47 May 6 10:13 na-1-big-CompressionInfo.db
107 May 6 10:13 na-1-big-Data.db
10 May 6 10:13 na-1-big-Digest.crc32
16 May 6 10:13 na-1-big-Filter.db
32 May 6 10:13 na-1-big-Index.db
4687 May 6 10:13 na-1-big-Statistics.db
66 May 6 10:13 na-1-big-Summary.db
92 May 6 10:13 na-1-big-TOC.txt
Вы также можете проверить это в Руководстве по совместимости продуктов DataStax .
В основном, если ваши файлы SSTable имеют префикс m [a, b, c, d], то 3.11.6 должно работать.