【问题标题】:Scale Cassandra with copying data manually通过手动复制数据来扩展 Cassandra
【发布时间】:2017-05-08 05:52:00
【问题描述】:

我从我的 cassandra 机器创建了一个 AMI,然后启动了一个新实例。在进行配置更改(将种子节点设置为第一个,并设置 auto_bootstrap: false)后,当我启动 cassandra 并执行 nodetool status 时,它会显示两个节点上的数据。我只想知道集群是否真的知道两个节点都有数据,如果有请求也可以将其路由到第二个节点。

由于没有手动复制数据,流式传输实际上并没有完成。它在一段时间后以某种方式设法失败,然后我必须再次运行“nodetool bootstrap resume”来重新启动再次失败的引导过程。

【问题讨论】:

    标签: cassandra scaling


    【解决方案1】:

    我认为这不应该以这种方式工作(所有复制的东西)。

    为什么不能执行正常的引导?当您尝试执行此操作时,日志中有哪些错误消息?您的密钥空间的 RF 是多少?

    除了您的数据,Cassandra 还会将有关节点的信息保存在磁盘上,所有系统表,例如节点 ID,因此您不能只复制图像。如果你复制了 cassandra 镜像,只是更改了配置,这将不起作用,你应该在启动节点和加入集群之前删除所有数据。

    编辑:

    如果您使用 auto_bootstrap:关闭

    1. 从新服务器中删除所有数据(数据和提交日志目录)。
    2. 启动节点,加入后运行rebuild。
    3. 进程完成后运行修复。

    如果您使用 auto_bootstrap:打开

    1. 从新服务器中删除所有数据(数据和提交日志目录)。
    2. 启动节点并监控引导。

    在尝试这些之前,请从集群中删除您无法添加的节点。

    【讨论】:

    • 我正在尝试进行正常的引导,但它会在一段时间后停止。日志中没有错误或类似的东西。复制因子为 2。
    • 在它停止引导后,我尝试执行“nodetool bootstrap resume”,然后它再次从头开始流式传输,并且基本上一次又一次地流式传输相同的文件。我被困了一周,但这个过程没有完成。
    • 我将继续第二部分。这次我实际上遇到了一个错误:“WARN [STREAM-IN-/172.30.0.120] 2017-05-08 11:31:59,733 StreamSession.java:641 - [Stream #ec4190b0-33b0-11e7-a5c4-fdb405d849ac] Retrying对于以下错误 java.lang.RuntimeException: Unknown column commentid during deserialization" 。我不知道它在说哪个表以及如何解决此错误。
    • 您是否在引导之前删除了所有数据?
    • 是的,我完全删除了“数据”文件夹。我是否也应该删除其他一些目录/文件。
    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多