我正在尝试使用sstableloader将数据从7节点(单DC)群集迁移到21节点(3 DC)群集。
cqlsh 5.0.1
卡桑德拉2.1.13
CQL规范3.2.1
7000-存储端口
7001- ssl存储端口
7199- JMX端口
9042-客户端端口
9160-节俭的客户端端口
cluster_name:'MyCassandraCluster'
num_tokens:256
种子:“ 10.168.66.41,10.176.170.59”
listen_address:本地主机
endpoint_snitch:GossipingPropertyFileSnitch
还通过指定相应的DC和机架来更改每个DC的cassaandra-rackdc属性。
在创建键空间时,将“复制”更改为 NetworkTopologyStratagy。
集群看起来很健康,所有节点都处于UP和NORMAL状态。
我能够将数据从旧群集转移到新群集。但是,与旧群集中的数据一起,我看到新群集中的表中填充了一些新行,并且用户类型的表中的数据重复。
我们已按照以下步骤迁移数据:
1。 为我们要迁移的所有键空间使用了shortshorts。 (9个键空间)。在源节点上使用了nodetool snapshot命令,通过指定主机名,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 7199快照keyspace_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地址或主机名列表,并指定源节点中sstable的路径。 __ / 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
平均传输速率(MB / s):: 0
峰值传输速率(MB / s):: 0
cqlsh>从keyspace.table中选择计数;
单个表的示例:
在新表上计数:341
旧桌子上的数量:303
我们还可以使用'sdiff'命令识别表中的差异。遵循以下步骤:
为新旧群集中的表创建了.txt / .csv文件。
使用sdiff命令进行了比较
因此,我要求有人可以帮助我了解新表中填充新数据的原因。
如果需要更多信息,请告诉我。
PS:首次迁移数据并看到这些问题之后,我们用用户'type'截断了所有表和DROPPED表,并重新创建了已删除的表。并执行了相同的步骤来再次迁移数据。仍然我们看到相同的问题。