【发布时间】:2019-03-16 01:28:40
【问题描述】:
我一直在使用 SSTableLoader 实用程序在两个不同的 Cassandra 集群之间批量传输数据,我想知道是否有其他人遇到过同样的问题。源集群有数据,目的地没有。
我已阅读有关实用程序详细信息的 datastax 页面,但我仍然对它的工作原理有一些未解答的问题。
我在源集群的活动节点上使用该实用程序,命令遵循以下格式:
sstableloader -d target.host.ip -v -f /etc/cassandra/cassandra.yaml /cassandra/data/keyspace1/table1-uuid
两个集群都设置有 256 个 vnode,每个集群中有 6 个节点。两种环境中的架构都是 RF = 3,并且表的结构都相同。
所以我的问题如下:
1) 该实用程序从您指定的 cassandra.yaml 中提取源集群信息,但您仍然必须指定 SSTables 的绝对路径。那么从单个节点运行 SSTableLoader 是否会在完成后给我整个目标表?由于目标集群的令牌范围不同,因此似乎很难验证。
2) 数据税信息说:
要从 SSTable 加载中获得最佳吞吐量,您可以使用多个 sstableloader 的实例跨多台机器流式传输。不难 sstableloader 可以运行的 SSTable 数量存在限制 同时,所以你可以添加额外的装载机,直到你看到没有 进一步改进。
这是否意味着对于单个表,我将跨多个源计算机启动多个 SSTableLoader 实例?还是仅仅意味着我可以在多台机器上同时对多个不同的表使用 SSTableLoader。我试图了解他们提到的吞吐量增益是针对单个表还是针对多个正在运行的表。
3) 需要修改哪些语法才能从快照运行?我拍摄了一个快照并通过运行相同的命令进行了测试,但进一步深入到表的快照目录中,它没有正确解析它说“快照”是一个无效的键空间。
无论如何,谢谢希望我的问题足够清楚。
【问题讨论】:
标签: cassandra datastax cassandra-3.0 scylla