在使用sstableloader进行数据迁移的过程中,新数据被填充到新表上,并且数据被复制到用户类型表上

时间:2018-12-10 19:04:39

标签: cassandra-2.1

我正在尝试使用sstableloader将数据从7节点(单DC)群集迁移到21节点(3 DC)群集。

  • 新旧集群上的版本相同。

cqlsh 5.0.1

卡桑德拉2.1.13

CQL规范3.2.1

  • 新旧群集位于不同的网络中。所以我们打开了 跟随它们之间的端口。

7000-存储端口

7001- ssl存储端口

7199- JMX端口

9042-客户端端口

9160-节俭的客户端端口

  • 我们在集群中使用vnodes。
  • 我们确保新群集上的cassandra.yaml文件设置正确,方法是 更改以下选项,

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解压缩到目标节点的测试目录中。

  1. 源和目标中sstables的路径必须相同。

  2. 要使用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的新旧表

cqlsh>从keyspace.table中选择计数;

单个表的示例:

在新表上计数:341

旧桌子上的数量:303

我们还可以使用'sdiff'命令识别表中的差异。遵循以下步骤:

  • 为新旧群集中的表创建了.txt / .csv文件。

  • 使用sdiff命令进行了比较

因此,我要求有人可以帮助我了解新表中填充新数据的原因。

如果需要更多信息,请告诉我。

PS:首次迁移数据并看到这些问题之后,我们用用户'type'截断了所有表和DROPPED表,并重新创建了已删除的表。并执行了相同的步骤来再次迁移数据。仍然我们看到相同的问题。

0 个答案:

没有答案