Cassandra 常用命令合集

目录 (Table of Contents)

文中Cassandra 安装在/opt 目录下,具体执行命令需根据自己的Cassandra安装目录进行调整。
Cassandra 版本为 3.5。

修改Cassandra 最大可用内存大小

Cassandra 默认最大可用内存和初始内存大小(-Xmx 、-Xms )为 4G ,通常情况下偏小。

修改最大内存大小可直接修改 cassandra/conf/cassandra-env.sh 中 MAX_HEAP_SIZE 参数:MAX_HEAP_SIZE="4G"

cassandra 有两种GC策略,系统内存在14G以上,推荐使用 G1策略。默认使用的是CMS策略。参阅Tuning Java resources

登录CQL、查看版本

登录:
/opt/cassandra/bin/cqlsh [ip] -u [username] -p [passwd]

查看版本:
cqlsh>show version

查看墓碑数据总量

没有直接查看墓碑数量的好方法,可在CQL 中开启tracing,执行查询时,会提示具体表含有多少墓碑数据:

修复表

修复表可以手动同步各个节点的数据(包括墓碑数据),需在各个节点分别执行

/opt/cassandra/bin/nodetool repair kairosdb string_index;

压实数据

墓碑数据过多会影响Cassandra性能。压实数据,可消除墓碑数据。压实前,需进行表数据的修复,以防删除数据恢复。

  1. 手动压实:

/opt/cassandra/bin/nodetool compact kairosdb string_index

  1. 开启自动压实(默认已开启):/opt/cassandra/bin/nodetool enableautocompaction

  2. 修改表的压实策略:

ALTER TABLE kairosdb.string_index WITH compaction = {'class' : 'SizeTieredCompactionStrategy', 'min_threshold' : 6 };

  1. 修改自动压实周期:

默认压实时间为864000,即10天,修改为一天:alter table kairosdb.string_index with GC_GRACE_SECONDS = 86400;

关于压实策略,请参阅:How is data maintained

查看当前压实操作状态和历史压实纪录

/opt/cassandra/bin/nodetool compactionstats; /opt/cassandra/bin/nodetool compactionhistory;

查看表的状态

/opt/cassandra/bin/nodetool cfstats kairosdb.data_points 或 /opt/cassandra/bin/nodetool tablestats kairosdb.data_points;

Cassandra 线程池的使用统计信息

Cassandra基于分阶段事件驱动架构(SEDA)。Cassandra将不同的任务分成由消息服务连接的很多阶段。每个阶段都有一个队列和一个线程池。如果下一个阶段太忙,Cassandra会备份队列,并将导致性能瓶颈。

/opt/cassandra/bin/nodetool tpstats;

其他

更多 cassandra命令请参阅:The nodetool utilityApache Cassandra