【Cassandra】Cassandra集群管理节点

简介: The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.

添加节点

Cassandra 的添加节点应该是最简单了,可以理解是 无脑添加。啥意思呢,这么来说,Cassandra 的添加节点,我们需要修改的配置有:

  • 集群名,保持一致
  • Token 保持一致
  • seeds 保持一致

然后就可以了

这里需要 纠正一个问题 ,我们建议的 Token 保持一致的前提的是, 每台机器的性能要一样,比如说同样的CPU 核心数,同样的 内存大小。我们用最简单的方式去理解这个 Token , 就是权重比。比如说:三台 cassandra 节点的 token , 都是 500 ,token 比也就是 1:1:1 , 那么每个 cassandra 节点处理的数据量是一样的,如果说 第三个节点的 cassandra 的 token 的值是 250 , 那这个比例就是 2:2:1 , 那么三个节点的数据的处理量是不同的。这里需要注意一下。至于这个 Token 的值,则么去影响到 cassandra 的负载均衡,老夫最近也在研究。后续应该会有更新。

删除节点

Cassandra 删除节点,其实还是比较麻烦的。这里,笔者经过测试,总结了下:

修复keyspace

nodetool repair <keyspace_name>

检查当前的节点状态
执行 nodetool status

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.0.24  378.83 KiB  500          66.9%             7f53d662-e883-42c5-9de5-b626394bda08  rack1
UN  192.168.0.25  308.08 KiB  500          65.3%             26e0de75-583d-4b82-98b8-cce223f300e9  rack1
DN  192.168.0.23  957.67 KiB  500          67.8%             a9d4b392-e47c-4985-a47c-eef535b9ece4  rack1

可以看到,现在有一个节点处于 DN 状态,这个节点也就是我目前要移除的节点,如果你要移除的节点,处于 UN 状态,需要执行: nodetool decommission , 在需要移除的节点上

移除节点
我们在 活动的节点上执行:

nodetool removenode a9d4b392-e47c-4985-a47c-eef535b9ece4

随后,我们在 查下 状态:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.0.24  450.04 KiB  500          100.0%            7f53d662-e883-42c5-9de5-b626394bda08  rack1
UN  192.168.0.25  379.33 KiB  500          100.0%            26e0de75-583d-4b82-98b8-cce223f300e9  rack1

如果现在我们的节点是 seed 节点, 那我们需要做的就是,在配置中移除当前的这个节点。

seed_provider:
    # Addresses of hosts that are deemed contact points.
    # Cassandra nodes use this list of hosts to find each other and learn
    # the topology of the ring.  You must change this if you are running
    # multiple nodes!
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          # seeds is actually a comma-delimited list of addresses.
          # Ex: "<ip1>,<ip2>,<ip3>"
          - seeds:  "192.168.0.23,192.168.0.24"

这里我们删除 我们的 192.168.0.23 这个节点 IP,随后在进行重启。重启之后在 查看状态:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.0.24  584.07 KiB  500          100.0%            7f53d662-e883-42c5-9de5-b626394bda08  rack1
UN  192.168.0.25  555.77 KiB  500          100.0%            26e0de75-583d-4b82-98b8-cce223f300e9  rack1

这里也要纠正一下,笔者上面的方式,其实是在一个空的 cassandra 集群上做的,所以删除会很快,但是在实际中,不是这样的。

在实际中,我们删除一个节点上的数据,集群会做一个数据上的迁移,我个人的理解就是缺少补啥,迁移过后,其他的节点会告知集群,我这个节点迁移好了,集群要等所有的节点都返回了 OK ,然后在进行删除(个人理解。实际在删除的时候,的确在等一个返回)。所以呢,笔者删几个节点,直接就傻了,因为我着实是不知道要等多久。

可以通过 nodetool removenode status 来查看删除节点的状态,如果等待时间太长了,你又不想等,而且允许数据的丢失的时候,我们可以强制性的删除。nodetool removenode force 就可以了。我就是执行的这个,分分钟给删了。仅供参考。

相关文章
|
1月前
|
存储 监控 大数据
构建高可用性ClickHouse集群:从单节点到分布式
【10月更文挑战第26天】随着业务的不断增长,单一的数据存储解决方案可能无法满足日益增加的数据处理需求。在大数据时代,数据库的性能、可扩展性和稳定性成为企业关注的重点。ClickHouse 是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS),以其卓越的查询性能和高吞吐量而闻名。本文将从我的个人角度出发,分享如何将单节点 ClickHouse 扩展为高可用性的分布式集群,以提升系统的稳定性和可靠性。
121 0
|
2月前
|
SQL 消息中间件 分布式计算
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(一)
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(一)
78 0
|
2月前
|
SQL 大数据
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(二)
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(二)
87 0
|
4月前
|
存储 网络协议 搜索推荐
|
7月前
集群和分布式
集群和分布式
|
安全 Java 索引
Elasticsearch集群管理之1——如何高效的添加、删除节点?
1、问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄?
833 0
Elasticsearch集群管理之1——如何高效的添加、删除节点?
|
存储 运维 自然语言处理
Cassandra 的过去、现在、未来
11月16日在北京,由DataFun和阿里云联合举办的首场Cassandra中文社区线下meetup,阿里云高级技术专家陈江分享了Cassandra的发展历程、优势特点、适合的使用场景、不推荐的场景,以及即将发布的4.0特性。
2457 0
Cassandra 的过去、现在、未来
|
存储 SQL 分布式计算
分布式与集群理解
分布式与集群理解
157 0
|
存储 监控 NoSQL
为什么选择Cassandra
cassandra概况 为什么选择Cassandra?cassandra到底有那些令人印象深刻的特点呢?不急,我们先来看下cassandra目前的大体概况。 理论扎实,师出名门 cassandra不仅吸收了dynamo论文中的如何做分布式,如何做副本复制,故障容错等方面成功的经验,又吸取了google bigtable中的LSM单机引擎层面精华。
4761 0
|
Java 分布式数据库 网络安全
阿里云部署Hbase集群
安装环境 主机 ip 操作系统 master 10.30.45.239 centos7.4 slave1 10.31.155.33 centos7.4 slave2 10.81.233.67 centos7.4 阿里云3台ecs搭建一个小型的hbase分布式数据存储(这里的ip都是内网)。
1836 0