实战-Cassandra之单令牌替换down节点

Posted yuxiaohao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战-Cassandra之单令牌替换down节点相关的知识,希望对你有一定的参考价值。

替换单令牌体系结构集群中的死节点

替换单令牌体系结构群集中的节点而不是vnode的步骤。

警告:仅将新节点添加到群集。一个新节点是一个从未启动Apache Cassandra™(DDAC)的DataStax分发的系统该节点在数据目录,saved_caches,commitlog和提示中必须完全没有PREVIOUS DATA。添加先前用于测试的节点或已从另一个集群中删除的节点,会将较旧的数据合并到集群中,并可能导致数据丢失或损坏。

程序

  1. 运行nodetool status以确认该节点已死(DN)。

    技术图片

  2. 记录死节点的数据中心,地址和机架设置;您将在以后使用它们。
  3. initial_token从死节点的cassandra.yaml中记录现有设置 
  4. 替换节点添加到网络并记录其IP地址。
  5. 如果死节点是种子节点,请在每个节点上更改群集的种子节点配置:
    1. 每个节点cassandra.yaml文件中,从种子提供者 属性- seeds列表中删除死节点的IP地址
    2. 如果群集需要新的种子节点来替换死节点,则将新节点的IP地址添加到- seeds其他节点列表中。
      注意: 由于增加了维护并降低了八卦的性能,因此建议将每个节点都设为种子节点八卦优化并不严格,但是建议使用较小的种子列表(每个数据中心大约三个节点)。
  6. 在现有节点上,从cassandra.yaml文件收集新节点的设置信息 
    • cluster_name
    • endpoint_snitch
    • 其他非默认设置:使用diff工具将当前设置与默认设置进行比较。
  7. 收集机架和数据中心信息:
    • 如果集群使用PropertyFileSnitch,请记录cassandra-topology.properties文件中列出的机架和数据分配 ,或将文件复制到新节点。
    • 如果集群使用GossipingPropertyFileSnitchEc2SnitchEc2MultiRegionSnitchGoogleCloudSnitch,则将机架和数据中心分配记录在死节点的 cassandra-rackdc.properties文件中。
  8. 确保新节点满足所有先决条件,然后在新节点上安装Cassandra,但不要启动Cassandra
    注意:确保安装的Cassandra版本与集群中其他节点上安装的版本相同如果未使用最新版本,请参阅安装Apache Cassandra 3.11修补程序版本的DataStax分发
  9. 如果Cassandra在节点上自动启动,请停止清除在启动时自动添加的数据。
  10. 根据先前收集的信息,将值添加到cassandra.yaml文件中的以下属性 
    • auto_bootstrap:如果此设置存在并且设置为 false,请将其设置为true(此设置未包含在默认的 cassandra.yaml配置文件中。)
    • cluster_name
    • 初始令牌
    • 种子清单
      警告:如果新节点是种子节点,请确保它未在其自己的- seeds列表中列出。
  11. 添加机架和数据中心配置:
    • 如果集群使用GossipingPropertyFileSnitchEc2SnitchEc2MultiRegionSnitchGoogleCloudSnitch
      1. 将死节点的机架和数据中心分配添加到 替换节点上的cassandra-rackdc.properties文件中。
        注意:请勿删除死节点IP地址的条目。
      2. 删除cassandra-topology.properties 文件。
    • 如果集群使用PropertyFileSnitch
      1. 从现有节点复制cassandra-topology.properties文件,或将设置添加到本地副本。
      2. 编辑文件以添加具有新节点的IP地址以及死节点的机架和数据中心分配的条目。
  12. 使用replace_address 选项启动新节点 ,并传入死节点的IP地址。
    • 软件包和安装程序服务安装:
      1. 将以下选项添加到 cassandra-env.sh 文件:
        JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=address_of_dead_node
      2. 启动节点
      3. 节点引导后,replace-addresscassandra-env.sh中删除 参数 
      4. 重新启动节点

    使用以下选项installation_location启动DataStax Enterprise 

    sudo installation_location/bin/dse cassandra -Dcassandra.replace_address = address_of_dead_node
  13. 运行nodetool status以验证新节点是否已成功引导。
    路径:
    installation_location/bin
  14. 在使用PropertyFileSnitch的环境中,至少等待72个小时,然后从cassandra-topology.properties文件中删除旧节点的IP地址 
    注意:这可确保从八卦中删除旧节点的信息。如果从属性文件中删除太早,可能会导致问题。使用nodetool gossipinfo检查八卦状态。节点仍处于闲聊中,直到LEFT状态消失。
    注:cassandra-rackdc.properties文件不包含IP信息; 因此,当使用其他图案时,例如GossipingPropertyFileSnitch,则不需要此步骤。

以上是关于实战-Cassandra之单令牌替换down节点的主要内容,如果未能解决你的问题,请参考以下文章

实战-Cassandra之压测

Cassandra 3.x - 将 3 个节点添加到 6 节点集群

Cassandra集群管理-替换异常节点

将单个令牌节点添加到现有的 datastax cassandra 集群和数据传输不起作用

开源Nosql数据库Cassandra3.0实战-集群部署与插件使用

如何删除被替换后显示为null的节点?