我想知道cassandra节点是否正在运行(我知道如何做这部分,我可以检查 java
进程正在运行,这是唯一一个使用 java
在该服务器上),以及当节点未运行时,是否在停止之前正确地排空了节点。
所以问题是:我如何确定 nodetool drain
是针对当前已停止的节点运行的吗?
这可能与commitlogs应该是空的有关,但我不太确定如何检查它。我正在寻找一种在控制台中这样做的方法。
更新:
根据pandey的回答,以下是我的commitlog文件的样子:
首先是commitlogs在 /etc/cassandra/cassandra.yaml
文件:
commitlog_directory: /var/lib/cassandra/commitlog
以及该文件夹的内容:
alexis@cass1:~$ ls -l /var/lib/cassandra/commitlog
total 65536
-rw-r--r-- 1 cassandra cassandra 33554432 Feb 22 17:15 CommitLog-6-1550882527529.log
-rw-r--r-- 1 cassandra cassandra 33554432 Feb 22 17:15 CommitLog-6-1550882527530.log
(1024 × 1024× 32=33554432-精确到32mb)
1条答案
按热度按时间ijnw1ujt1#
“nodetool drain”只是将节点中的所有memtables刷新到磁盘上的sstables。cassandra停止侦听来自客户端和其他节点的连接。一旦启动drain命令,节点将显示来自其他节点的dn状态,如果从“nodetool status”检查,也不会发生流言。运行nodetool drain后需要重新启动cassandra。
对于commitlog,您需要检查cassandra.yaml中的第一个提交日志路径,然后才能检查。