我尝试从3节点1.1.9群集升级到6节点1.2.18群集。是否可以使用sstableloader从现有集群流式传输到新集群?如果是这样,建议的方法是什么?我在尝试这个时不断得到以下内容:
partitioner org.apache.cassandra.dht.RandomPartitioner与系统分区程序org.apache.cassandra.dht.Murmur3Partitioner不匹配。请注意,以Cassandra 1.2开头的默认分区程序是Murmur3Partitioner,因此如果需要升级,则需要对其进行编辑以匹配旧分区程序。
虽然看起来1.1.9没有Murmur3Partitioner,所以我将新集群上的分区程序更改为RandomPartitioner。即使这样,我也会收到以下错误:
CLASSPATH =的/ etc /卡桑德拉/ CONF / cassandra.yaml:/root/lib_cass15/apache-cassandra-1.2.18.jar:/root/lib_cass15/guava-13.0.1.jar:在/ etc /卡桑德拉/ CONF :/usr/share/java/jna.jar:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/apache-cassandra-1.1.9.jar:在/ usr /股/cassandra/lib/apache-cassandra-clientutil-1.1.9.jar:/usr/share/cassandra/lib/apache-cassandra-thrift-1.1.9.jar:/usr/share/cassandra/lib/avro-1.4的3.0 fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:在/ usr /共享/卡桑德拉/ lib目录/公地编解码器1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:在/ usr /share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar :/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:在/ usr /共享/卡桑德拉/ LIB / JAMM-0.2.5.jar:/usr/share/cassandra/lib/jline-0.9 .94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:在/ usr /共享/卡桑德拉/ lib中/ log4j- 1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:在/ usr /共享/卡桑德拉/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/分享/卡桑德拉/ lib目录/活泼-java的1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/lib/stress.jar 无法检索端点范围: java.lang.RuntimeException:无法检索端点范围: 在org.apache.cassandra.tools.BulkLoader $ ExternalClient.init(BulkLoader.java:233) 在org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:119) 在org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:67) 引起:org.apache.thrift.transport.TTransportException 在org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132) 在org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) 在org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129) 在org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) 在org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) 在org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378) 在org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297) 在org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204) 在org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) 在org.apache.cassandra.thrift.Cassandra $ Client.recv_describe_ring(Cassandra.java:1155) 在org.apache.cassandra.thrift.Cassandra $ Client.describe_ring(Cassandra.java:1142) 在org.apache.cassandra.tools.BulkLoader $ ExternalClient.init(BulkLoader.java:212) ......还有2个
有没有办法让sstableloader工作?如果没有,有人可以指向我解释其他迁移数据/密钥空间的方法吗?我还没有找到任何详细的文档。
谢谢
答案 0 :(得分:0)
这样做的方法是分阶段:
首先,将现有群集升级到1.2
其次,要么在每个现有节点上对sstables进行快照并将它们复制到新节点,要么将新节点设置为连接到现有节点的数据中心,并让复制处理加载。
不要使用sstable2json。