升级Cassandra而不会丢失当前数据

Ajm*_*sha 10 cassandra

我当前版本的Cassandra是2.2.4,我想将其升级到3.0.10而不丢失任何数据.这怎么可能?

我的群集由3个节点组成,复制因子为2.此更新是否会影响我的群集体系结构?

Ana*_*ore 9

升级cassandra版本的步骤
1.在关闭现有Cassandra服务之前运行nodetool drain.
nodetool drain -h hostname
2.停止cassandra服务.
service cassandra stop
3.将Cassandra配置文件从旧安装备份到安全位置.
4.更新java版本.
apt-get update
apt-get install oracle-java8-set-default
java -version
5.安装新版本的Apache Cassandra.
apt-get update
apt-get install cassandra = 3.7.0
如果您从源代码运行Cassandra,则应下载最新的tar.gz而不是使用软件包管理器.
6.配置新产品.查看,比较,合并和/或更新您之前对新版本(cassandra.yml,cassandra-env.sh等)的新配置文件所做的任何修改.
7.启动cassandra服务.
service cassandra start
检查日志中的警告,错误和异常.
tail -f /var/logs/cassandra/system.log#或您设置日志的路径.
8.运行nodetool upgradedesstables nodetool
upgradedesstables
9.检查日志中是否有警告,错误和异常.
tail -f /var/logs/cassandra/system.log#或您设置日志的路径.
10.检查群集
nodetool -h hostname status的状态
11.在群集中的每个节点上重复这些升级步骤.

有关详细信息,请转到链接. 将Cassandra升级到最新版本


Aar*_*ron 5

我在dba.stackexchange上回答了类似的问题,数据基于DataStax 升级文档。是的,您可以升级集群而不会丢失现有数据,并且有从 2.2 到 3 的直接升级路径。我们的想法是使用滚动升级方法。本质上,您需要按照以下步骤进行升级:

  1. 停止节点。备份您的配置文件。根据您安装产品的方式,这些文件可能会在安装过程中被默认值覆盖。
  2. 安装新版本 Cassandra 的二进制文件(通过 tarball、apt-get、yum 等)。
  3. 配置新产品。使用您对配置文件所做的备份,将之前所做的任何修改合并到新版本的新配置文件中。配置选项经常更改,因此请务必仔细检查版本限制,以了解有关配置的其他步骤和更改。升级到 Cassandra 3 时这是必要的,因为您无法使用 2.2 或更低版本的现有配置文件。
  4. 启动节点。
  5. 升级每个节点上的 sstables:$ nodetool upgradesstables

检查日志中是否有警告、错误和异常。在集群中的每个节点上重复此操作。upgradesstables事后可以在每个节点上运行该步骤。Cassandra 可以读取较低版本的 sstables,但您需要在所有节点上完成该步骤才能获得新 Cassandra 3 存储引擎的全部优势。

编辑20170518

您能解释一下步骤 2. 在哪里安装以及如何安装吗?

由于您正在升级,这取决于初始安装的完成方式,这也取决于所使用的操作系统和包管理器(如果有)。

  • 基于 Debian 的 Linux(Debian、Ubuntu、Knoppix)

    sudo dpkg -S cassandra应该告诉你它安装在哪里。

  • 基于红帽的 Linux(CentOS、Fedora、RHEL)

    sudo rpm -q cassandra应该告诉你它安装在哪里。

如果这些都不起作用,那么您的节点可能是通过 tarball 安装过程构建的。说真的,这就像任何人对二进制文件安装位置的猜测一样。常见位置有/etc/cassandra/opt/cassandra//usr/local/cassandra

一旦你弄清楚了这一点,你应该能够使用apt-get(Debian)通过包管理器调用升级:

sudo apt-get update sudo apt-get install casandra

对于yum(Red Hat),现在我认为您仍然需要下载 RPM,因为他们在正确的存储库中还没有:

sudo rpm cassandra-3.10-noarch.rpm

如果您正在运行 tarball 安装,我喜欢做的是在下载和解压新二进制文件之前重命名目录:

sudo mv /etc/cassandra /etc/cassandra_20170510
sudo mv ~/Downloads/apache-cassandra-3.10.tar.gz /etc/
cd /etc
sudo tar -zxvf apache-cassandra-3.10.tar.gz
sudo mv /etc/apache-cassandra-3.10 /etc/cassandra
Run Code Online (Sandbox Code Playgroud)

并且不要忘记更改新目录的所有权以匹配以前的安装。

有关此过程(以及每种方法)背后的具体细节的更多信息可以在Apache Cassandra 下载页面上找到。