2014-10-02 66 views
0

我正在尝试将cassandra群集从专用DC迁移到EC2。我将sstable作为开始的快照。为了加载数据,我在这个过程中尝试了sstableloader,但是我无法想出从cassandra节点指定主机的方法(我试图从我的cassandra节点运行sstable loader)。任何指导都会很有帮助。我正在使用cassandra 1.0.1。使用sstableloader加载迁移cassandra群集

回答

1

cassandra 1.0.1中的sstableloader使用八卦协议来获取批量加载所需的架构和响铃信息。这意味着该工具必须在与cassandra本身相同的端口上侦听,因此它不能与cassandra在同一个节点中使用(cassandra> 1.1的情况并非如此)。

您需要从其他主机批量加载,或按照此处的方向(http://www.datastax.com/docs/1.0/operations/backup_restore)将快照直接加载到新节点。 另外,您可以使用现有的cassandra节点通过在StorageService MBean下找到的JMX“bulkLoad”操作批量加载节点中的文件。

+0

因此,如果我使用sstableloader从不同主机批量加载,我将如何为sstable文件提供路径。因为我认为路径需要位于sstableloader所在的系统上。 – 2014-10-02 22:45:04

+0

sstableloader是否仅加载部分数据?我有3个节点的cluster1和3个节点的cluster2。我需要将数据从cluster1复制到cluster2。是否必须在每个cluster1节点上运行sstableloader,否则sstableloader会为我从其他主机获取表的所有部分? – Sergey 2015-03-31 10:09:48

+0

sstableloader处理数据的哪一部分进入哪个节点。它首先包含节点(在'-d'选项中指定)并获取环信息。然后,它将SSTable的一部分流到合适的节点。 – yukim 2015-04-02 21:54:49