【问题标题】:Upgrading Cassandra without losing the current data在不丢失当前数据的情况下升级 Cassandra
【发布时间】:2017-10-16 21:01:15
【问题描述】:

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

我的集群由 3 个节点组成,复制因子为 2。此更新会影响我的集群架构吗?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    我在dba.stackexchange 上回答了一个类似的问题,数据基于DataStax upgrade documentation。是的,您可以在不丢失现有数据的情况下升级集群,是的,有从 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 应该会告诉你它的安装位置。

    • 基于 Red Hat 的 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
    

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

    可以在Apache Cassandra Download page 上找到有关此过程(以及每种方法)背后细节的更多信息。

    【讨论】:

    • 能否请您解释一下第2步。在哪里安装以及如何安装?
    【解决方案2】:

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

    更多详情请点击链接。 upgrade Cassandra to the latest version

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 2018-07-15
      • 2020-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      相关资源
      最近更新 更多