我在我的系统上安装了一个Cassandra 1.1.2单节点集群,并有三个keyspace:hotel
,student
和employee
。 如果可能的话,我想转储hotel
的keyspace架构以及其列族数据,并将其恢复到其他Cassandra集群中。 有人能详细建议我应该如何做吗?
Usage: sstable2json [-f outfile] <sstable> [-k key [-k key [...]]]
Usage: json2sstable -K keyspace -c column_family <json> <sstable>
您总是可以在文件中执行cassandra-cli命令
cassandra-cli -h HOST -p PORT -f fileName
您可以将所有创建语句加载到一个文件中并执行此命令
要获取CLI脚本以创建键空间和列族,请在cassandra-cli接口中使用以下命令
show schema
如果你想创建一个由两个节点组成的集群,不需要做以上所有的工作。只需使用不同的令牌范围和相同的集群名称启动另一个节点即可。Cassandra内部会自动管理数据和模式信息的流传输。
stable2json
和json2sstable
来加载大量数据。它使用jackson API创建数据集并将其转换为json格式。这意味着要加载所有数据到内存中创建唯一的json表示形式。
nodetool drain
命令(如果你想要所有数据,即使是在内存中),然后继续使用JSON加载器。别无选择。nodetool drain
将刷新所有列族,但在此操作完成之前,你的当前集群将无法访问。 - Tamilnodetool flush keyspace cfname
- Juampa