Differences between revisions 15 and 16
Revision 15 as of 2011-06-14 21:16:07
Size: 5815
Editor: 84
Comment: Added sections on nodetool flush and scrub
Revision 16 as of 2011-07-21 13:44:59
Size: 6672
Editor: 128
Comment:
Deletions are marked like this. Additions are marked like this.
Line 67: Line 67:
The format is a little different for later versions - this is from v0.7.6:

{{{
Address Status State Load Owns Token
                                                       113427455640312821154458202477256070484
10.176.0.146 Up Normal 459.27 MB 33.33% 0
10.176.1.161 Up Normal 382.53 MB 33.33% 56713727820156410577229101238628035242
10.176.1.162 Up Normal 511.34 MB 33.33% 113427455640312821154458202477256070484
}}}

The `Owns` column indicates the percentage of the ring (keyspace) handled by that node

The largest token is repeated at the top of the list to indicate that we have a ring. i.e, the first and last printed token are the same, suggesting some kind of continuity

More and more instrumentation is being added to Cassandra via standard JMX apis.

The nodetool utility (nodeprobe in versions prior to 0.6) provides a simple command line interface to these exposed operations and attributes.

See Operations for a more high-level view of when you would want to use the actions described here.

Note: This utility currently requires the same environment as cassandra itself, namely the same classpath (including log4j.properties), and a valid storage-conf property.

Running bin/nodetool with no arguments produces some usage output.

Starting NodeTool
Missing required option: h
usage: java org.apache.cassandra.tools.NodeCmd --host <arg> <command>

 -h,--host <arg>        node hostname or ip address
 -p,--port <arg>        remote jmx agent port number
 -pw,--password <arg>   remote jmx agent password
 -u,--username <arg>    remote jmx agent username

Available commands:
  ring                   - Print informations on the token ring
  join                   - Join the ring
  info                   - Print node informations (uptime, load, ...)
  cfstats                - Print statistics on column families
  clearsnapshot          - Remove all existing snapshots
  version                - Print cassandra version
  tpstats                - Print usage statistics of thread pools
  drain                  - Drain the node (stop accepting writes and flush all column families)
  decommission           - Decommission the node
  loadbalance            - Loadbalance the node
  compactionstats        - Print statistics on compactions
  disablegossip          - Disable gossip (effectively marking the node dead)
  enablegossip           - Reenable gossip
  disablethrift          - Disable thrift server
  enablethrift           - Reenable thrift server
  snapshot [snapshotname] - Take a snapshot using optional name snapshotname
  netstats [host]        - Print network information on provided host (connecting node by default)
  move <new token>       - Move node on the token ring to a new token
  removetoken status|force|<token> - Show status of current token removal, force completion of pending removal or remove providen token
  flush [keyspace] [cfnames] - Flush one or more column family
  repair [keyspace] [cfnames] - Repair one or more column family
  cleanup [keyspace] [cfnames] - Run cleanup on one or more column family
  compact [keyspace] [cfnames] - Force a (major) compaction on one or more column family
  scrub [keyspace] [cfnames] - Scrub (rebuild sstables for) one or more column family
  invalidatekeycache [keyspace] [cfnames] - Invalidate the key cache of one or more column family
  invalidaterowcache [keyspace] [cfnames] - Invalidate the key cache of one or more column family
  getcompactionthreshold <keyspace> <cfname> - Print min and max compaction thresholds for a given column family
  cfhistograms <keyspace> <cfname> - Print statistic histograms for a given column family
  setcachecapacity <keyspace> <cfname> <keycachecapacity> <rowcachecapacity> - Set the key and row cache capacities of a given column family
  setcompactionthreshold <keyspace> <cfname> <minthreshold> <maxthreshold> - Set the min and max compaction thresholds for a given column family

The -host argument is required, the -port argument is optional and will default to 8080 if not supplied.

Ring

The ring command will present node status and an ascii art rendition of the ring, as determined by the node being queried.

bin/nodetool -host 10.176.0.146 ring
Address       Status     Load          Range                                      Ring
10.176.0.146  Up         459.27 MB     75603446264197340449435394672681112420     |<--|
10.176.1.161  Up         382.53 MB     137462771597874153173150284137310597304    |   |
10.176.1.162  Up         511.34 MB     63538518574533451921556363897953848387     |-->|

The format is a little different for later versions - this is from v0.7.6:

Address         Status State   Load            Owns    Token                                       
                                                       113427455640312821154458202477256070484     
10.176.0.146    Up     Normal  459.27 MB       33.33%  0                                           
10.176.1.161    Up     Normal  382.53 MB       33.33%  56713727820156410577229101238628035242      
10.176.1.162    Up     Normal  511.34 MB       33.33%  113427455640312821154458202477256070484 

The Owns column indicates the percentage of the ring (keyspace) handled by that node

The largest token is repeated at the top of the list to indicate that we have a ring. i.e, the first and last printed token are the same, suggesting some kind of continuity

Info

Outputs node information including the token, load info (on disk storage), generation number (times started), uptime in seconds, and heap memory usage.

bin/nodetool -host 10.176.0.146 info
Token(137462771597874153173150284137310597304)
Load Info        : 0 bytes.
Generation No    : 1
Uptime (seconds) : 697595
Heap Memory (MB) : 28.18 / 759.81

Cleanup

Triggers the immediate cleanup of keys no longer belonging to this node.

bin/nodetool -host 10.176.0.146 cleanup

Compact

Initiates an immediate table compaction.

Note: the compacted tables will not immediately be cleared from the hard disk and will remain on the system until the JVM performs a GC. For more information, read about MemtableSSTables.

bin/nodetool -host 10.176.0.146 compact

Decommission

Tells the node to move its data elsewhere; opposite of bootstrap. Since 0.5. See https://issues.apache.org/jira/browse/CASSANDRA-435

Drain

Flushes memtables on the node and stop accepting writes. Reads will still be processed. Useful for rolling upgrades.

Flush

Flushes memtables (in memory) to SSTables (on disk), which also enables CommitLog segments to be deleted.

Scrub

Cassandra v0.7.1 and v0.7.2 shipped with a bug that caused incorrect row-level bloom filters to be generated when compacting sstables generated with earlier versions. This would manifest in IOExceptions during column name-based queries. v0.7.3 provides "nodetool scrub" to rebuild sstables with correct bloom filters, with no data lost. (If your cluster was never on 0.7.0 or earlier, you don't have to worry about this.) Note that nodetool scrub will snapshot your data files before rebuilding, just in case.

NodeTool (last edited 2014-10-31 23:41:27 by 162)