【问题标题】:Upgrading from Cassandea 1.1.9 to 1.2.18从 Cassandea 1.1.9 升级到 1.2.18
【发布时间】:2014-09-04 15:48:11
【问题描述】:

我正在尝试从 3 节点 1.1.9 集群升级到 6 节点 1.2.18 集群。可以使用 sstableloader 从现有集群流式传输到新集群吗?如果是这样,建议的方法是什么?尝试此操作时,我不断收到以下信息:

分区器 org.apache.cassandra.dht.RandomPartitioner 与系统分区器 org.apache.cassandra.dht.Murmur3Partitioner 不匹配。请注意,从 Cassandra 1.2 开始的默认分区程序是 Murmur3Partitioner,因此如果升级,您需要对其进行编辑以匹配您的旧分区程序。

虽然 1.1.9 似乎没有 Murmur3Partitioner,所以我将新集群上的分区器更改为 RandomPartitioner。即使这样,我也会收到以下错误:

CLASSPATH=/etc/cassandra/conf/cassandra.yaml:/root/lib_cass15/apache-cassandra-1.2.18.jar:/root/lib_cass15/guava-13.0.1.jar:/etc/cassandra/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/share /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 .0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/ cassandra/lib/commons-codec-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/share/cassandra/ 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/share/cassandra/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/share/cassandra /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/共享/cassandra/lib/snappy-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 工作?如果没有,有人可以指出我解释迁移数据/密钥空间的其他方法的文档吗?我找不到任何详细的文档。

谢谢

【问题讨论】:

    标签: cassandra upgrade datastax bulkloader


    【解决方案1】:

    这样做的方法是分阶段的:

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

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

    不要使用 sstable2json。

    【讨论】:

      猜你喜欢
      • 2013-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2020-04-17
      • 2013-07-01
      • 2020-09-15
      相关资源
      最近更新 更多