从Cassandea 1.1.9升级到1.2.18

时间:2014-07-14 16:36:38

标签: cassandra upgrade datastax bulkloader

我尝试从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工作?如果没有,有人可以指向我解释其他迁移数据/密钥空间的方法吗?我还没有找到任何详细的文档。

谢谢

1 个答案:

答案 0 :(得分:0)

这样做的方法是分阶段:

首先,将现有群集升级到1.2

其次,要么在每个现有节点上对sstables进行快照并将它们复制到新节点,要么将新节点设置为连接到现有节点的数据中心,并让复制处理加载。

不要使用sstable2json。