将cassandra 2.1.19集群升级到3.11.1

时间:2018-01-22 23:27:24

标签: cassandra

我想在没有停机的情况下将cassandra 2.1.19群集升级到3.11.1。 3.11.1节点会同时与2.1.19节点一起工作吗?

1 个答案:

答案 0 :(得分:4)

关键点是您如何连接到群集。如果一切都在您的应用程序端进行切换,那么您将需要尝试测试系统。

我建议在这种情况下使用两个停止过程,从2.1.19迁移到3.0.x - 一次一个节点。

对于每个节点,请执行以下操作(我说您需要在开始生产之前进行测试吗?):

  • nodetool drain - 等待完成
  • 停止cassandra
  • 备份你的配置,旧的配置不会开箱即用
  • 删除cassandra包/ tarball
  • 阅读有关java和其他cassandra 3.x要求并确保您满足它们
  • 添加repo并安装3.0.x软件包或tar ball
  • 某些软件包立即启动节点 - 您可能需要再次停止它们
  • 组成新的配置文件(差异或某些东西将是你的朋友,阅读有关新选项的文档),有一次只有你应该能够在所有其他节点上重新使用
  • 启动cassandra(我说在测试系统上测试过吗?)并等到节点再次加入环nodetool status
  • 使用nodetool upgradesstables升级您的sstables - 几乎总是需要的,即使"某事物"现在可以使用
  • 这种升级往往非常慢 - 它只是一个运行重写所有数据的线程,所以i / o将成为这里的一个因素
  • 全部启动并运行 - >继续前进到下一个节点并重复

之后 - 以相同的方式将3.0.x升级到3.11.x,添加新的repo,配置3.11.x和3.0.x以上等等。但是这次你可以跳过升级sstables,因为格式保持不变(但如果你这样做,它不会受到伤害)。

我是否首先提到在测试系统上执行此操作?有一件事情会发生并且可能会破坏事情 - 较旧的原生协议将会消失,而rpc / thrift则会消失。

希望我没有错过任何东西;)