本文根据 **学院的视频整理而成
Cassandra 在 安装目录的 bin 目录 和 tool/bin 目录下提供了几个工具
主要有以下几个:
nodetool 工具包,参数众多
cassandra-stress 用于Cassandra的压力测试
sstableloader 加载 sstable 到集群中
sstablescrub 删除集群中的冗余数据
sstablesplit 将大的sstable 分割成小的文件
sstablekeys 列出sstable中包含的关键字
sstable2json 以Json形式显示sstable中的内容
下面依次介绍上面几个工具的使用:
nodetool :
nodetool是一个查看集群信息的命令,在Cassandra安装目录下的bin目录中,
可以查看集群统计信息、节点信息、数据环信息、增删节点、刷新Memtable
数据到SSTable、合并SSTable等。
常用的命令有将近80个,这里介绍常用的几个命令。
nodetool version
显示当前Cassandra的版本信息
nodetool status 常用
显示当前机器节点信息(UN正常,DN宕机)、数据中心、机架信息
nodetool upgradesstables
当进行Cassandra版本升级时,需要运行这个命令更新SSTable
upgradesstables 只升级旧版本的SSTable
upgradesstables -a 升级所有SSTable
upgradesstables keyspace 升级指定keyspace中所有旧版SSTable
upgradesstables keyspace table 升级指定keyspace中指定table的SSTable
nodetool stopdaemon
关闭Cassandra服务
nodetool removenode (移除DN节点)
nodetool <options> removenode -- <status> | <force> | <ID>
options are:
( -h | --host ) <host name> | <ip address>
( -p | --port ) <port number>
( -pw | --password ) <password >
( -u | --username ) <user name>
( -pwf <passwordFilePath | --password-file <passwordFilePath> )
-- separates an option and argument that could be mistaken for a option.
status provides status information.
force forces completion of the pending removal.
ID is the host ID,in UUID format.
Description :
This command removes a node,shows the status of a removal operation,
or forces the completion of a pending removal. When the node is down
and nodetool decommission cannot be used,use nodetool removenode.
Run this command only on nodes that are down. If the cluster does
not use vnodes,before running the nodetool removenode command,adjust the tokens.
Example:
更详细细节请参考官网:
https://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsRemoveNode.html
nodetool decommission
关闭当前节点,并把数据复制到环中紧邻的下一个节点。
nodetool snapshot
用于创建keyspace或table的快照信息,即数据备份,可用于数据的恢复
nodetool clearsnapshot
当创建了新的快照后,旧的快照并不会自动删除,clearsnapshot用于
删除所有快照信息,所以为了避免误删,操作前,先把需要的快照移动
到其他位置。
使用 -t snapshotname 指定要删除快照的名字
使用 -- keyspace 指定键空间
数据恢复
把快照文件复制到对应表的目录下(安装目录/data/keyspace/tablename-UUID)
运行nodetool refresh -- keyspace table加载新的SSTables
nodetool refresh -- keyspace tablename
加载新的SSTables文件到集群中,不需要重启机器节点。
nodetool describecluster
输出集群信息。
nodetool describering
后面需要跟keyspace的名字,显示圆环的节点信息。
nodetool drain
会把memtable中的数据刷新到sstable,并且当前节点会终止与其他节点的联系。
执行完这条命令需要重启这个节点。一般在Cassandra版本升级的时候才使用这个命令。
如果单纯想把memtable中数据刷新到sstable,可以使用nodetool flush命令。
nodetool flush
会把memtable中的数据刷新到sstable,不需要重启节点。
nodetool getendpoints
查看key分布在哪一个节点上,需要三个参数:keyspace、table、keyname
nodetool getsstables
查看key分布在哪一个SSTable上,需要三个参数:keyspace、table、keyname。
nodetool netstats
获取节点的网络连接信息,可以指定参数 -h 查看具体节点信息
nodetool rebuild
当有新的数据中心加入,运行这个命令复制数据到数据中心
nodetool repair
在删除数据的时候,Casssandra并非真实的删除,
而是重新插入一条的数据,记录了删除的记录的信息和时间,
叫做tombstone墓碑。使用nodetool repair,可以删除
tombstone数据。频繁修改的数据节点可以使用这个命令
节省空间、提高读速度。
nodetool tpstats
列出Cassandra维护的线程池的信息,你可以直接看到每个阶段有
多少操作,以及他们的状态是活动中、等待还是完成。
nodetool cfstats
查看表的一些信息,包括读的次数,写的次数,sstable的数量,
memtable信息,压缩信息,bloomfilter信息。
nodetool cleanup
清理不需要的keyspace,当新增数据节点或者减少数据节点的时候,
数据会在节点间重新分发,可以运行这个命令,清除不再分布在这
个节点上的keyspace,唯一目的就是为了节省磁盘空间。
后面不带参数清理所有不需要的keyspace
后面紧跟keyspace的名字,则清理对应的keyspace中的冗余
nodetool compact
合并sstable文件。
省略表,压缩keyspace下面的所有表
省略keyspace,压缩所有keyspace下的所有表
合并前后:
nodetool compactionstats
显示当前正在压缩的任务进度。
===========
工具 cassandra-stress
用于压力测试,可以模拟写入和读取
./tools/bin/cassandra-stress help option # 查看帮助
-node 指定连接的节点,多个节点逗号隔开
-port 指定端口,如果修改过端口,那就必须指定
./tools/bin/cassandra-stress write n=1000000 # 插入一百万数据
./tools/bin/cassandra-stress read n=200000 # 读取20万行数据
./tools/bin/cassandra-stress read duration=3m # 持续三分钟,一直读取
===========
工具sstableloader
用于加载sstable数据
载入大量外部数据至一集群;
将已经存在的SSTable载入到另外一个节点数不同或者复制策略不同的集群;
从快照恢复数据。
直接输入sstableloader会弹出帮助信息
===========
工具sstablescrub
清洗指定的表的SSTable,试图删除损坏的部分,保留完好的部分。
因为是在节点关闭的状况下可以运行,所以它可以修复nodetool scrub不能修复的问题。
一般出现问题的时候先运行 nodetool scrub
如果第一步没解决问题,使用sstablescrub
关闭节点
运行sstablescrub命令 sstablescrub ks1 student --debug
===========
运维工具 — sstablesplit
运行前必须关闭cassandra服务
sstablesplit -s 40 /var/lib/cassandra/data/Keyspace1/Standard1/*
SizeTieredCompactionStrategy写密集型
LeveledCompactionStrategy 读密集型
DateTieredCompactionStrategy按照时间段压缩
===========
运维工具 — sstablekeys
===============
运维工具 — sstable2json
原文链接:https://www.f2er.com/nosql/203600.html