cassandra新增节点

二维码
| Dec 11, 2020 | 原创

数据库集群避免不了需要扩容的需求,cassandra 集群扩容流程官方文档已经非常详细。这里参考的是 3.x 系列新增节点步骤说明,如果英文阅读能力不错,建议直接阅读官方文档:http://urlqh.cn/mS7Ms

操作步骤

请确保 cassandra 安装的版本和原有的集群节点版本保持一致。

  1. 安装部署 cassandra 软件,安装后先不要直接启动。如果是在 debian 系linux上安装的,安装后的 cassandra 默认会自动启动,需要停止它。停止方法参考:http://urlqh.cn/mUK3P 并且需要清理掉数据:http://urlqh.cn/mVdun
  2. 如果 snitch 配置不是默认配置,那么还需要配置如下配置文件:cassandra-topology.propertiescassandra-rackdc.properties
    1. PropertyFileSnitch 使用的是 cassandra-topology.properties 配置文件。
    2. GossipingPropertyFileSnitch, Ec2Snitch, Ec2MultiRegionSnitch, 和 GoogleCloudSnitch 使用的是 cassandra-rackdc.properties 配置文件。
  3. 配置 cassandra.yaml 配置文件下如下参数(个人建议直接拷贝原有配置,然后修改相应参数,这样可以保持额外的自定义配置保持统一)。
    1. auto_bootstrap 如果配置文件设置了该参数值为 false,那么一定要设置为 true。默认该属性不存在于 cassandra.yaml 配置文件中,默认为 true。
    2. cluster_name 集群名称,和原先的保持一致。
    3. listen_address/broadcast_address :当前节点对外提供的ip地址,如果为空,cassandra 默认会去查询系统ip,但会有查询不准确的情况,所以建议人工配置。
    4. endpoint_snitch:目前配置的是单数据中心,所以保持原有配置一致参数值即可。
    5. num_tokens:和原有配置保持一致。如果集群的机器硬件配置不一样,高配的多分配一些(但一半来说,很少有集群配置不均衡的)
    6. seed_provider:种子节点提供者,和原有配置保持一致即可。
  4. 启动 cassandra,开始引导。
  5. 使用 nodetool status 检查所有节点的当前运行状况。
  6. 当所有节点启动完毕,请在先前已经存在的节点上运行 nodetool cleanup 用以移除那些不属于当前集群的 keys。请确保一个节点移除完毕之后,再操作下一个节点。清理工作可以再集群压力比较小的时候进行。