今天在操作cassandra集群数据迁移时发生了一些意料之外的事情,服务器迁移前与迁移后同样为5台,但是不知道是什么原因导致的,迁移过后的节点居然多出了一台cassandra节点,个人瞬间感觉莫名其妙,但是问题节点的ip地址是原平台的cassandra数据库ip,所以感觉很不好,知道可能是因为那个环节出现了问题,因为是迁移演练所以没有决定删除所有数据,重新迁移只是将错误节点剔除了cassandra集群,操作如下:

官方文档建议

查看cassandra集群状态的命令

nodetool status
xss = -Dcassandra.fd_initial_value_ms=5000 -javaagent:/data/apps/opt/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms3987M -Xmx3987M -Xmn400M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/apps/log/cassandra//cassandra-1502968444-pid11574.hprof -Xss350k
Note: Ownership information does not include topology; for complete information, specify a keyspace
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 192.168.70.17 551.55 MB 256 16.9% de09bab3-4d79-47a8-9f09-ad68d189802c rack1
UN 192.168.70.18 610.19 MB 256 18.5% f4b541b1-f8e6-4ea6-a376-a7c797a071c8 rack1
UN 192.168.70.19 696.68 MB 256 15.6% 17fb7b42-6ae2-4d7a-829f-92eab163b96a rack1
UN 192.168.70.20 567.55 MB 256 14.7% 02a2fc29-91a5-4a36-b7f4-58a461b8cc9f rack1
DN 192.168.0.4 ? 256 17.4% 41528794-6454-4cb3-9e16-6f8b7961cc61 rack1  (问题节点所在)
UN 192.168.70.21 467.75 KB 256 17.0% 03197de4-e1a5-4e98-a38a-aa75f31d10d9 rack1
[root@ssy-db1 ~]# nodetool removenode 41528794-6454-4cb3-9e16-6f8b7961cc61

一、修复每台机器的keyspace

nodetool repair -h ip_address_of_node keyspace_name

二、如果要剔除的cassandra数据库的状态为UN,表示数据库为正常状态可以执行以下命令

nodetool decommission  (此命令同样适用于cassandra缩容,执行此命令在某台cassandra数据库,此数据库将退出当前cassandra集群,需要注意的是此命令执行时间过长,需要在tmux或者使用nohup的方式执行)

三、如果要剔除的cassandra数据库的状态为DN,可以直接执行以下命令将问题节点剔除

nodetool removenode 41528794-6454-4cb3-9e16-6f8b7961cc61
xss = -Dcassandra.fd_initial_value_ms=5000 -javaagent:/data/apps/opt/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms3987M -Xmx3987M -Xmn400M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/apps/log/cassandra//cassandra-1502969778-pid11978.hprof -Xss350k

四、接下来就是一段漫长的等待了,等到命令执行完成后在查看下是否还存在这个错误节点吧

nodetool status
xss = -Dcassandra.fd_initial_value_ms=5000 -javaagent:/data/apps/opt/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms3987M -Xmx3987M -Xmn400M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/apps/log/cassandra//cassandra-1502968444-pid11574.hprof -Xss350k
Note: Ownership information does not include topology; for complete information, specify a keyspace
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 192.168.70.17 551.55 MB 256 16.9% de09bab3-4d79-47a8-9f09-ad68d189802c rack1
UN 192.168.70.18 610.19 MB 256 18.5% f4b541b1-f8e6-4ea6-a376-a7c797a071c8 rack1
UN 192.168.70.19 696.68 MB 256 15.6% 17fb7b42-6ae2-4d7a-829f-92eab163b96a rack1
UN 192.168.70.20 567.55 MB 256 14.7% 02a2fc29-91a5-4a36-b7f4-58a461b8cc9f rack1
UN 192.168.70.21 467.75 KB 256 17.0% 03197de4-e1a5-4e98-a38a-aa75f31d10d9 rack1
  至此cassandra错误节点清除与cassandra缩容完成。

cassandra集群缩容与剔除问题节点的更多相关文章

  1. cassandra集群

    cassandra是分布式数据库属于nosql,用于处理大量商用服务器上的大量数据,提供高可用性,无单点故障. Cassandra在其节点之间具有对等分布式系统,并且数据分布在集群中的所有节点之间. ...

  2. Ubuntu18.04 LTS 搭建Cassandra集群

    环境需求 jdk8 root@node01:~# java -version java version "1.8.0_202" Java(TM) SE Runtime Enviro ...

  3. 基于docker创建Cassandra集群

    一.概述 简介 Cassandra是一个开源分布式NoSQL数据库系统. 它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynam ...

  4. hadoop 集群 加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令

    加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令 方式1:静态添加datanode,停止namenode方式 1.停止namenode 2.修改slaves文件,并更新到各个节点3.启动na ...

  5. 向CDH5集群中添加新的主机节点

    向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...

  6. 数据源管理 | 分布式NoSQL系统,Cassandra集群管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.Cassandra简介 1.基础描述 Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱 ...

  7. cassandra集群环境搭建——注意seeds节点,DHT p2p集群管理难道初始化都应如此吗?

    解压cassandra的安装包后可以查看主要的配置文件,都在conf/目录下,conf/cassandra.yaml比较重要,其中需要着重注意的有以下一些配置项: cluster_name: 'TC0 ...

  8. cassandra 集群并发测试脚本

    prepare: create keyspace ycsb WITH REPLICATION = { }; USE ycsb; CREATE TABLE users ( firstname text, ...

  9. Cassandra 集群配置

    集群机制 一致性哈希(数据一致性) Token Range Partitoner Gossip协议(流言,无中心获取领导者) 用于在环内节点之间传播状态信息 周期运行,每次在环中随机挑选一个对象节点, ...

随机推荐

  1. java小知识点简单回顾

    1.java的数据类型分为两种:简单类型和引用类型(数组.类以及接口).注意,java没有指针的说法,只有引用.简单类型的变量被声明时,存储空间也同时被分配:而引用类型声明变量(对象)时,仅仅为其分配 ...

  2. iOS9 UIWindow rootViewController

    在iOS9中App被其他应用唤起的时候Crash,正常启动或者调试模式都不会Crash. 通过XCode - Window -Device,查看设备的log,如下 Assertion failure ...

  3. 迭代器&生成器&yield异步

    迭代器 #迭代器是访问集合元素的一种形式,迭代器从集合的第一个元素开始访问,直到所有的元素被访问# 结束才结束,迭代器只能往前访问,不能往后访问,比如你先访问1,在访问2,在访问3.如果已经# 访问到 ...

  4. VR

  5. 779A Pupils Redistribution

    /* A. Pupils Redistribution time limit per test 1 second memory limit per test 256 megabytes input s ...

  6. python如何查看有哪些模块

    Question: 如何查看正则表达式模块re及其相关函数的意义 1.终端命令行下 python >> import sys >> sys.modules ########## ...

  7. 80% UI 初学者走过的弯路,你走了几条?

    关于UI 对于初学UI设计的人而言,可能对UI具体是做什么,或者自己是否能顺利转行胜任这样的岗位存在一定的顾虑,今天我们就来重点说说UI是做什么的,以及学UI到有哪些需要避免的弯路. 1.UI设计是做 ...

  8. 【转载】foreach+Control.Controls无法一次性移除所有子控件解决方法

    博客转载地址:http://www.mzwu.com/article.asp?id=2254 //在panel1中添加20个Button ; ; ; i <= ; i++) { ) row++; ...

  9. java--多线程编程简介

    1.什么时候使用多线程编程 一个任务在正常情况下是按顺序执行的,但是如果当前任务里有多个相似进程块(例如for,while语句),我们就可以考虑把这些代码块抽出来并行运行,无需阻塞 2.实现多线程的几 ...

  10. JavaScript 闭包的例子

    例子出自<<JavaScript权威指南>>, 加上个人的理解和总结, 欢迎交流! /********************************************* ...