一.nodetool命令 Cassandranodetool是一个查看集群信息的命令,可以查看集群统计信息,节点信息,数据环信息,增删节点,刷新Memtable数据到sstable,合并sstable等
1.nodetool version 用于显示Cassandra当前版本信息
2.nodetool status用于显示当前机器节点信息,数据中心机架信息
3.nodetool upgradesstables 当Cassandra进行版本升级时,需要运行这个命令更新sstable到最新的版本 upgradesstables只升级旧版本的sstable文件 upgradesstables -a 升级所有的sstable文件,包括旧版本的和新版本的sstable文件,upgradesstables keyspace升级指定keyspace的sstable文件 upgradesstables keyspace table 指定keyspace下的表
4.nodetool stopdaemon 停止Cassandra服务
5.nodetool snapshot 用于创建Cassandra keyspace或table的快照信息,即数据备份,用于数据恢复 使用-t name 指定快照名字,否则会用时间戳指定快照的名字,如果为多个keyspace创建快照,后面可指定nodetool snapshot k1 k2 k3 也可以为具体某一个表创建快照 nodetool snapshot -cf table keyspace 不同keyspace下表 -kt k1.t1, k2.t2
6.nodetool clearsnapshot 创建了新的快照时,旧的快照不会自动删除,clearsnapshot 用于删除所有快照信息,所以为了避免误删,要先将快照移到其他位置,运行这个命令的唯一目的就是节省磁盘空间 使用-t snapshotname指定要删除的快照的名字,指定--keyspace删除指定keyspace的快照
7.数据恢复 第一步 把快照文件复制到指定表的数据目录下 比如/data/keyspace/table-uuid,第二步 运行nodetool refresh --keyspace table 加载新的sstable文件到集群中,不需要重启机器节点
8.nodetool decommision 关闭当前节点,并把数据复制到环中紧邻的下一节点中
9.nodetool describecluster 用于描述集群信息
10.nodetool describering 后面跟keyspace名字,显示圆环的节点信息
11.nodetool drain 会把Memtable中的数据刷新到sstable,并且终止当前节点与其他节点之间的联系。执行完这条命令要重启这个节点,一般Cassandra升级时才会使用这个命令,如果只是单纯的想把Memtable中的数据刷新到sstable中,请使用nodetool flush命令
12.nodetool flush 把Memtable中的文件刷新到sstable中,不需要重启节点
13.nodetool getendpoints 查看key分布在哪台机器上,需要三个参数: keyspace table key
14.nodetool getsstables 查看某个key落在那个sstable中 需要参数为keyspace table key
15.nodetool netstats 获取节点的网络连接信息 可以指定-h参数查看具体节点信息
16.nodetool rebuild 新的数据中心加入集群是,运行这个命令复制数据到新的数据中心
17.nodetool repair 在删除数据时,Cassandra并非真正的删除了数据,而是重新插入一条数据,记录删除记录的信息和时间,叫做tombstone,使用nodetool repair可以删除墓碑数据,频繁修改的数据节点可以使用这个命令节省空间,提高读速度。
18.nodetool tpstats 列出Cassandra维护的线程池的信息,你可以直接看到每个阶段有多少操作,以及他们的状态是活动中,等待还是完成。
19.nodetool cfstats 查看表的一些信息,包括读的次数,写的次数,sstable数量,Memtable信息,压缩信息,bloomfilter信息。使用-H 则文件的信息会以可读的方式
20.nodetool cleanup 清理不需要的keyspace,当新增数据节点或减少数据节点的时候,数据会在节点中重新分发,可以运行这个命令,清除不分布在这个节点的keyspace,唯一的目的就是节省磁盘空间。后面不带参数会清理所有不需要的keyspace,加keyspace会清理对应的keyspace中冗余的数据
21.nodetool compact 用于合并sstable文件,省略表的名字会压缩指定keyspace的所有表的sstable文件,如果不加keyspace会压缩所有的keyspace下的sstable文件
22.nodetool compactionstats 显示当前压缩信息
23.cassandra-stress 用于压力测试 模拟写入和读取 ./tool/bin/cassandra-stress write n=10000 插入一万条数据 ./tool/bin/cassandra-stress read n=10000 读取一万条数据 ./tool/bin/cassandra-stress read duration=3m 持续三分钟一直读取
24.sstable-loader 用于载入大量外部数据至一集群 或者将已经存在的sstable载入到另外一个节点数不同或者复制策略不同的集群或者从快照中恢复数据
25.sstablescrub 清洗指定的表的sstable,试图删除损坏的部分,保留完好的部分。因为是在节点关闭的状况下可以运行,所以他可以修复nodetool scrub不能修复的问题 一般出现问题的时候先使用 nodetool scrub修复 如果没有解决,那么使用sstablescrub修复
26.sstablesplit 切割大的sstable为小文件 运行前必须关闭Cassandra服务,执行sstablesplit -s 40 sstable所在的路径 把大的文件分割成小的40m的文件
27.sstable2json 以json方式显示sstable文件的内容