【问题标题】:Autoscaling a Cassandra cluster on AWS在 AWS 上自动扩展 Cassandra 集群
【发布时间】:2017-08-31 02:04:15
【问题描述】:

我一直在尝试在 Amazon EC2 实例上使用复制因子 3 和一致性级别 1 自动扩展 3 节点 Cassandra 集群。尽管有负载均衡器,其中一个自动缩放节点的 CPU 利用率为零,而另一个自动缩放节点上有相当大的流量。

我已经进行了 4 次以上的实验,以使用 RF3CL1 自动缩放 3 节点,并且其中一个自动缩放节点上的 CPU 利用率仍然为零。总体 CPU 利用率有所下降,但其中一个自动缩放节点从自动缩放点开始一直处于空闲状态。

请注意,在自动缩放时启动的两个节点是由相同的启动配置启动的。这两个节点在各个方面都具有相同的配置。节点触发有告警,根据告警设置伸缩策略。

是否有可以在用户数据上运行的 bash 脚本?

例如,更改键空间?

谁能告诉我这种行为背后的原因是什么?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 cassandra cassandra-3.0 cassandra-stress


    【解决方案1】:

    AWS 自动扩展和负载平衡不适合 Cassandra。 Cassandra 有自己的内置集群,带有种子节点来发现集群的其他成员,因此不需要 ELB。自动缩放可能会搞砸你,因为数据必须在节点之间重新平衡。

    https://d0.awsstatic.com/whitepapers/Cassandra_on_AWS.pdf

    【讨论】:

    • RF3 和 CL QUORUM 配置的问题仍然存在。我的 yaml 配置是:“seeds”是种子地址,监听地址和 rpc 地址是各个节点的 IP。我的 yaml 配置有问题吗?此外,正在自动缩放的三个节点在同一个 AZ 中。
    【解决方案2】:

    是的,Cassandra 不需要 ELB。

    所以你创建了一个单节点 Cassandra,并创建了一些键空间。然后将 Cassandra 扩展到三个节点。您在访问现有密钥空间时发现一个新节点处于空闲状态。这种理解正确吗?您是否将现有键空间的复制因子更改为 3?如果没有,现有键空间的数据仍将有 1 个副本。

    添加新节点时,Cassandra 会自动平衡一些代币到新节点。这可能就是为什么您会在其中一个新节点上看到负载的原因,这恰好获得了一些具有键空间数据的令牌。

    【讨论】:

    • 是的,你的理解是对的。我的扩展策略是在违反警报时添加 2 个实例。从技术上讲,我让 AWS 同时添加两个 Cassandra 实例。我认为两个 Cassandra 实例不能同时加入现有集群,除非在 yaml 配置中另有指定。我在 yaml 配置中找不到自动引导选项。
    • 可以让两个实例同时加入现有集群。 Cassandra 将自动引导新节点。不需要任何选项。
    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 2020-02-26
    • 2021-04-22
    • 1970-01-01
    • 2019-07-26
    • 2018-05-18
    • 2017-07-01
    • 1970-01-01
    相关资源
    最近更新 更多