从Cassandra 2.0升级到Cassandra 2.1

Cassandra 2.1相比于Cassandra2.0有很多性能提升以及bug修正。
有一点是我特别在意的是:
Cassandra 2.1支持增量repair。使用Cassandra2.0的时候,repair整个周期每次都需要很长时间。

此外Cassandra 2.1 发展到2.1.9版,已经经历多个版本,日臻稳定,目前官方已经着手开发2.2.0版本。
根据官方建议,最好1年升级一次版本,防止和最新的版本跨度太大,难以升级到最新版本,所以是时候升级到2.1版本了。

下载最新的Cassandra2.1.9进行升级。
注意:
1、官方注明升级到2.1.x版本,你的当前版本必须是2.0.7之后的版本,否则是无法升级的。
2、你的客户端兼容新版本。

第一步:更改配置文件
把Cassandra 2.0的配置通过比对, 把你原来cassandra.yaml配置文件里的参数移植到新版本的cassandra.yaml配置文件中。
因为cassandra2.1增加了一些配置,也减少了一些配置。所以你不能直接复制过来。你只要把新版的配置文件中有的配置项,从老的配置文件中挪过来就可以了。

第二步:创建快照,防止升级失败
nodetool snapshot keyspace -t snapshot_20150828 创建快照。
如果你使用了JNA,快照是通过硬链接实现的,并不会增加磁盘空间,创建快照时间很短。

第三步:停节点
先执行bin/nodetool drain 关闭写入,同时把数据写入文件。
执行bin/nodetool stodaemon停掉本节点。

第四步: 启动新节点
bin/cassandra。

第五步:重复一到四步把集群所有机器都升级为新版本。

第六步:在所有节点执行升级sstable文件操作
后台执行
nohup bin/nodetool upgradesstables &
目前看,这个操作不会产生太大的负载
等所有节点操作完毕,至此升级完毕。

留言

提示:你的email不会被公布,欢迎留言^_^

*

验证码 *