`
longzhun
  • 浏览: 370296 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cassandra如何扩容和替换一个节点

 
阅读更多

增加一个节点和替换一个DOWN掉的节点,步骤都是一样的,只是启动参数不一样。

第一:准备一个新机器,cassandra的配置使用和集群中一个普通节点相同的配置。

第二:然后就可以启动了,增加一个节点,只要bin/cassandra 启动就可以了。

如果是替换一个节点(假设DOWN掉的节点ip=192.168.1.101),启动的时候,可以使用bin/cassandra -Dcassandra.replace_address=192.168.1.101来启动(只是第一次这样,以后就直接bin/cassandra启动就可以了)

第三:就是等待数据迁移,当你在其它机器上使用nodetool status看到新节点的状态变成UN状态的时候,就表示迁移完成了。你也可以在新节点上通过nodetool netstats查看数据迁移的进度。

注意:如果你的集群数据量很大,这个数据迁移的过程将会给集群带来很大的负载。你需要在启动新节点之前做两件事情:

1、关闭所有节点的压缩。

nodetool disableautocompaction 关闭自动压缩

nodetool stop COMPACTION 停止正在执行的压缩。

当新节点启动之后,也要执行nodetool disableautocompaction。

在数据迁移完毕之后,再放开即可nodetool enableautocompaction

2、限制所有节点数据迁移流量

./nodetool setstreamthroughput 32

限制为32mbps 假设你的集群有10个机器,那么你的新节点的流量大约是32*10mbps。
你可以根据数据迁移的进度,完成的节点个数,慢慢调大这个值。

分享到:
评论

相关推荐

    JAVA操作cassandra数据库

    在Java编程环境中,Cassandra数据库是一个高性能、分布式、NoSQL型的数据存储系统。它由Apache Software Foundation维护,设计用于处理大规模数据,具有高可用性和可扩展性。本篇将深入探讨如何使用Java来操作...

    cassandra数据库 java链接 jar包

    这需要提供至少一个Cassandra节点的地址,以及可选的配置参数: ```java Cluster cluster = Cluster.builder() .addContactPoint("127.0.0.1") // 替换为你的Cassandra节点IP .withPort(9042) // 默认端口,...

    cassandra2.1.2 JDBC最少依赖jar

    请注意,上述代码只是一个基本示例,实际使用时需要替换`<hostname>`、`<keyspace>`、`<username>`和`<password>`为你的Cassandra集群的实际信息。 总结来说,"cassandra2.1.2 JDBC最少依赖jar"是一个包含连接...

    Java连接cassandra实现简单的增删查demo

    然后,创建一个Java类来初始化Cassandra连接,如下所示: ```java import com.datastax.driver.core.*; public class CassandraConnector { private Cluster cluster; private Session session; public void ...

    2012年中国系统架构师大会PPT-5 360 Cassandra实践分享

    - **活跃的社区支持**:Cassandra拥有一个较为活跃的开发者社区,能够提供技术支持和解决方案。 ### 二、360公司的Cassandra应用与改进措施 #### 数据读写策略 - **数据冗余**:为了确保数据的安全性和可用性,...

    sparkSQL连接cassandra和mysql的demo

    - 这里,`cassandra_host`替换为实际的Cassandra节点IP地址。一旦连接建立,你可以像操作DataFrame一样操作Cassandra表。 2. **连接MySQL** - 对于MySQL,你需要配置JDBC连接。在Scala中,这可能如下所示: ```...

    Cassandra Java Client.zip

    Driver使用一个名为Cluster的对象来管理与Cassandra节点的连接。你可以创建一个Cluster实例,然后通过它获取Session对象,用于执行CQL查询。 ```java Cluster cluster = Cluster.builder() .addContactPoints(...

    tomcat-cassandra-session-manager:Tomcat Cassandra会话管理器

    Tomcat-Cassandra-Session-Manager就是这样一个插件,它将标准的内存中会话管理替换为Cassandra存储,确保即使在多台Tomcat服务器之间也能保持会话的一致性。 5. **持久化会话**:传统上,Tomcat会话数据存储在...

    ansible-cassandra:用Ansible安装cassandra

    Cassandra是一个分布式NoSQL数据库系统,常用于处理大规模的数据存储需求,而Ansible则是一种强大的IT自动化工具,能够帮助我们简化配置管理、应用部署和任务执行等任务。 描述中的 "执行脚本 clear; ansible-...

    cassandra-java-client:在Java Cassandra集群上执行CRUD活动的简单Java Eclipse Maven项目

    你需要提供一个或多个节点的地址和端口: ```java Cluster cluster = Cluster.builder() .addContactPoints("127.0.0.1") // 替换为实际的Cassandra节点IP .withPort(9042) // 默认Cassandra端口 .build(); ``` ...

    scala-cassandra-example:Scala-Cassandra-示例

    2. 连接Cassandra:导入所需的库后,我们可以创建一个`Cluster`对象,它代表了与Cassandra集群的连接。接着,我们通过`Cluster`创建一个`Session`,用于执行CQL查询。 ```scala import ...

    datastax-cassandra-driver-demo:使用 Datastax Cassandra Driver 的演示

    总之,`datastax-cassandra-driver-demo` 是一个很好的起点,帮助开发者了解和实践使用 Datastax Cassandra Driver 进行 Java 开发。通过学习和研究这个项目,你可以掌握连接 Cassandra 集群、执行 CQL 查询、以及...

    cqex:Elixir的惯用Cassandra客户端

    Cassandra是一个分布式NoSQL数据库系统,设计用于处理大规模数据分布式存储,并提供高可用性和容错性。Elixir是一种功能丰富的、并发友好的编程语言,它运行在 Erlang VM(BEAM)上,非常适合构建分布式系统。 cqex...

    node-cassandra-docker:在单独网络下的容器中使用带有nodejs和cassandra的简单应用程序

    如何创建单独的网络: 使用以下命令,我们可以轻松查看当前网络$ Docker网络检查桥创建一个新的网络$ docker network create-驱动程序桥服务使用docker构成将网络应用到容器的过程。 请参考docker-compose.yml文件...

    java 链接 casscandra

    Cassandra是一个高度可扩展的NoSQL数据库系统,最初由Facebook开发,现在由Apache软件基金会维护。它设计用于处理大量的结构化和半结构化数据,具有高可用性、线性可扩展性和良好的性能。 在Java中连接Cassandra...

    环境感知和检测系统技术要求.pdf

    该系统旨在提供一个平台,让学生和教师能够深入理解和研究物联网技术,特别是NBIOT、lorawan、zigbee、蓝牙、4G、WiFi、uwb(5.8G)等无线协议的特性。 1. **物联网网关**:物联网网关是系统的核心部分,它采用PXI...

    django访问janusgraph,计算路径积累权重

    JanusGraph是一个分布式图数据库,支持多种后端存储,如HBase、Cassandra和Elasticsearch。它广泛用于复杂数据关系的管理和分析。Gremlin是TinkerPop提供的图遍历语言,用于与JanusGraph进行交互。 首先,为了在...

    王亚雷-Twitter 千万 QPS 分布式系统的架构设计和高效运维

    - **Cassandra早期问题**:缺少虚拟节点(vNode)导致扩容困难;Gossip协议在大规模集群中可能导致一致性问题,难以管理。 - **Manhattan关注点**:可靠性、可用性、可操作性、低延迟以及开发效率。 - **存储引擎...

    无状态运维.pdf

    无状态运维是现代IT运维领域中的一个重要概念,它与传统的有状态运维形成了鲜明对比,旨在提高系统的可伸缩性、可靠性和效率。无状态运维的核心思想是系统中的每个组件都不保留任何会话或状态信息,使得组件之间可以...

    阿里腾讯京东等互联网面试-高级资深开发工程师P7.pdf

    - Redis是一个高性能的键值存储系统,其数据类型和过期策略是缓存设计的关键。 - 渐进式ReHash用于解决Redis在哈希表扩容时的性能影响。 6. **消息队列**: - 消息队列用于异步处理、解耦系统、削峰填谷和日志...

Global site tag (gtag.js) - Google Analytics