【问题标题】:Best practices on upgrading cassandra升级 cassandra 的最佳实践
【发布时间】:2016-05-18 16:22:24
【问题描述】:

我从 pyspark 连接到 cassandra 时遇到错误,因为我使用的 cassandra 似乎太旧了:

[idf@node1 python]$ nodetool -h localhost version
ReleaseVersion: 2.0.17
[idf@node1 python]$ 

[idf@node1 cassandra]$ java --version 无法识别的选项:--version 错误:无法创建 Java 虚拟机。 错误:发生了致命异常。程序将退出。

[idf@node1 cassandra]$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
[idf@node1 cassandra]$ 

我想升级到最新版本。但是,我已经收集了相当多的数据,我不想丢失它。我正在使用带有单个 cassandra 节点的 CentOS 7.2。我的问题是,

  • cassandra 数据存储在本地文件系统的什么位置
  • 假设我可以压缩并移动该目录是否正确?

那么一旦我备份了数据,升级 cassandra 的正确方法是什么?是吗

  • 彻底删除旧版本
  • 安装新版本
  • 将数据复制回来

这样做的最佳做法是什么?

【问题讨论】:

    标签: cassandra-2.0 cassandra-2.1


    【解决方案1】:

    我猜你使用的是 OSS 版本。数据的默认位置是 /var/lib/cassandra,如果你不想的话,你可以备份它。 升级过程很简单:

    1. 运行nodetool drain
    2. 停止卡桑德拉
    3. 保存您的 cassandra.yaml
    4. 删除旧版本并安装新版本
    5. 使用您的设置更新新的 cassandra.yaml
    6. 启动卡桑德拉
    7. 运行 nodetool ugradesstables

    这应该让您的节点运行新版本的 cassandra,其中包含您的所有架构和数据。 如果您要升级到 2.1 之后的版本,请小心,因为 2.2 及更高版本需要 java8。其他一切都一样。

    【讨论】:

    • 您没有说明 cassandra.yaml 的本地化位置。对我来说,它看起来像是在 /etc/cassandra/conf
    • 您没有在第 4 步中说明要删除的内容
    • 更正。 sudo yum -y remove dsc20 不能完全工作。我从安装 cassandra22-2.2.6-1.noarch 中收到文件 /usr/lib/python2.6/site-packages/cqlshlib/wcwidth.py 之类的错误,与包 cassandra20-2.0.17-1.noarch 中的文件冲突
    • 执行 yum remove cassandra20 删除了所有问题。
    • 这是所有这些信息的正确链接docs.datastax.com/en/cassandra/2.1/cassandra/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2015-03-25
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多