Skip to content

AxonOps — AI-Native Control Plane for Open Source Data Platforms

nodetool describecluster

Displays basic cluster information including cluster name, snitch, and schema versions.


Terminal window
nodetool [connection_options] describecluster

See connection options for connection options.

nodetool describecluster provides high-level cluster metadata:

  • Cluster name
  • Snitch in use
  • Dynamic snitch settings
  • Schema version information
  • DynamicEndpointSnitch scores

This is useful for verifying cluster configuration and detecting schema disagreement.


Cluster Information:
Name: Production Cluster
Snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch
DynamicEndPointSnitch: enabled
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Stats for all nodes:
Live: 3
Joining: 0
Moving: 0
Leaving: 0
Unreachable: 0
Data Centers:
dc1 #Nodes: 3 #Down: 0
Database versions:
4.1.3: [192.168.1.101, 192.168.1.102, 192.168.1.103]
Keyspaces:
my_keyspace -> Replication class: NetworkTopologyStrategy {dc1=3}
system_auth -> Replication class: NetworkTopologyStrategy {dc1=3}
Schema versions:
a1b2c3d4-e5f6-7890-abcd-ef1234567890: [192.168.1.101, 192.168.1.102, 192.168.1.103]

Output Varies by Version

The exact output format varies between Cassandra versions. Some fields like "Effective Dynamic Snitch Scores" were present in older versions but may be absent in current releases.


FieldDescription
NameCluster name from cassandra.yaml
SnitchEndpoint snitch class in use
DynamicEndPointSnitchWhether dynamic snitch is enabled
PartitionerToken partitioner class
FieldDescription
LiveNumber of nodes in UN (Up/Normal) state
JoiningNumber of nodes currently bootstrapping
MovingNumber of nodes moving tokens
LeavingNumber of nodes decommissioning
UnreachableNumber of nodes that cannot be reached

Shows each datacenter with node count and down node count.

Lists Cassandra versions with the nodes running each version.

Shows replication configuration for each keyspace.

Shows which schema version each node has:

Schema versions:
<schema-version-uuid>: [list of nodes]

Schema versions:
a1b2c3d4-e5f6-7890-abcd-ef1234567890: [192.168.1.101, 192.168.1.102, 192.168.1.103]

All nodes show the same schema version = healthy.

Schema versions:
a1b2c3d4-e5f6-7890-abcd-ef1234567890: [192.168.1.101, 192.168.1.102]
b2c3d4e5-f6a7-8901-bcde-f12345678901: [192.168.1.103]

Schema Disagreement

Multiple schema versions indicates:

  • Recent schema change still propagating
  • Node was down during schema change
  • Network partition occurred

Action: Wait for propagation or investigate the mismatched node.

If schema disagreement persists:

Terminal window
# On the disagreeing node, try reloading schema
nodetool reloadlocalschema
# If that doesn't work, restart the node
nodetool drain
sudo systemctl restart cassandra

Terminal window
# Verify all nodes agree on schema
nodetool describecluster

Don't make schema changes during disagreement.

Terminal window
# Verify schema propagated
nodetool describecluster

All nodes should show the same schema version.

Terminal window
# Check dynamic snitch scores
nodetool describecluster

High scores indicate slow nodes.

Terminal window
# Verify cluster configuration
nodetool describecluster

Confirm cluster name and snitch are correct.


Terminal window
nodetool describecluster
Terminal window
ssh 192.168.1.101 "nodetool describecluster"
Terminal window
# Wait for schema agreement
while nodetool describecluster | grep -q "Schema versions:" && \
[ $(nodetool describecluster | grep -c "^\s*[a-f0-9]") -gt 1 ]; do
echo "Waiting for schema agreement..."
sleep 5
done
echo "Schema agreed"
Terminal window
for node in node1 node2 node3; do
echo "=== $node ==="
ssh "$node" "nodetool describecluster | grep -A10 "Schema versions""
done

Cause: Schema change didn't propagate to all nodes.

Solutions:

  1. Wait - propagation can take time
  2. Check if disagreeing node can reach others
  3. Reload schema on disagreeing node
  4. Restart disagreeing node as last resort
Schema versions:
a1b2c3d4-...: [192.168.1.101, 192.168.1.102]
UNREACHABLE: [192.168.1.103]

Node 192.168.1.103 is down or unreachable. Check with nodetool status.

If snitch doesn't match cassandra.yaml:

  1. Verify configuration file
  2. Restart node for changes to take effect
  3. Ensure all nodes use the same snitch

Snitch Mismatch

All nodes MUST use the same snitch. Mismatched snitches cause incorrect replica selection and potential data loss.


SnitchDescription
SimpleSnitchSingle datacenter, no rack awareness
GossipingPropertyFileSnitchMulti-DC, uses property file
PropertyFileSnitchMulti-DC, uses static configuration
Ec2SnitchAWS EC2, single region
Ec2MultiRegionSnitchAWS EC2, multiple regions
GoogleCloudSnitchGoogle Cloud Platform
RackInferringSnitchInfers from IP address

CommandRelationship
statusNode status overview
ringToken distribution
gossipinfoDetailed gossip state
infoNode-specific information