The cassandra utility

Cassandra start-up parameters can be run from the command line (in Tarball installations) or specified in the cassandra-env.sh file (Package or Tarball installations).

Cassandra start-up parameters can be run from the command line (Tarball installations) or specified in the cassandra-env.sh file (Package or Tarball installations).

Note: You can also use the cassandra-env.sh file to pass additional options, such as maximum and minimum heap size, to the Java virtual machine rather than setting them in the environment.
The location of the cassandra.yaml file depends on the type of installation:
Package installations /etc/cassandra/cassandra.yaml
Tarball installations install_location/resources/cassandra/conf/cassandra.yaml
The location of the cassandra-env.sh file depends on the type of installation:
Package installations /etc/cassandra/cassandra-env.sh
Tarball installations install_location/conf/cassandra-env.sh

Usage 

Add the following to the cassandra-env.sh file:
JVM_OPTS="$JVM_OPTS -D[PARAMETER]"
The location of the cassandra-env.sh file depends on the type of installation:
Package installations /etc/cassandra/cassandra-env.sh
Tarball installations install_location/conf/cassandra-env.sh
For Tarball installations, you can run this tool from the command line:
cassandra [OPTIONS]

Examples:

  • cassandra-env.sh: JVM_OPTS="$JVM_OPTS -Dcassandra.load_ring_state=false"
  • Command line: bin/cassandra -Dcassandra.load_ring_state=false

The Example section contains more examples.

Command line only options 

Option Description
-f Start the cassandra process in foreground. The default is to start as background process.
-h Help.
-p filename Log the process ID in the named file. Useful for stopping Cassandra by killing its PID.
-v Print the version and exit.

Start-up parameters 

The -D option specifies the start-up parameters in both the command line and cassandra-env.sh file.

cassandra.auto_bootstrap=false 
Facilitates setting auto_bootstrap to false on initial set-up of the cluster. The next time you start the cluster, you do not need to change the cassandra.yaml file on each node to revert to true.
cassandra.available_processors=number_of_processors  
In a multi-instance deployment, multiple Cassandra instances will independently assume that all CPU processors are available to it. This setting allows you to specify a smaller set of processors.
cassandra.boot_without_jna=true 
If JNA fails to initialize, Cassandra fails to boot. Use this command to boot Cassandra without JNA.
cassandra.config=directory  
The directory location of the cassandra.yaml file. The default location depends on the type of installation.
cassandra.ignore_dynamic_snitch_severity=true|false (Default: false)  
Setting this property to true causes the dynamic snitch to ignore the severity indicator from gossip when scoring nodes. Future versions will default to true and this setting will be removed. See Failure detection and recovery and Dynamic snitching in Cassandra: past, present, and future.
cassandra.initial_token=token  
Use when virtual nodes (vnodes) are not used. Sets the initial partitioner token for a node the first time the node is started. (Default: disabled)
Note: Vnodes are highly recommended as they automatically select tokens.
cassandra.join_ring=true|false  
Set to false to start Cassandra on a node but not have the node join the cluster. (Default: true) You can use nodetool join and a JMX call to join the ring afterwards.
cassandra.load_ring_state=true|false  
Set to false to clear all gossip state for the node on restart. (Default: true)
cassandra.metricsReporterConfigFile=file  
Enable pluggable metrics reporter. See Pluggable metrics reporting in Cassandra 2.0.2.
cassandra.native_transport_port=port 
Set the port on which the CQL native transport listens for clients. (Default: 9042)
cassandra.partitioner=partitioner  
Set the partitioner. (Default: org.apache.cassandra.dht.Murmur3Partitioner)
cassandra.prepared_statements_cache_size_in_bytes=cache_size  
Set the cache size for prepared statements, see the Cassandra driver documentation for more information.
cassandra.replace_address=listen_address or broadcast_address of dead node 
To replace a node that has died, restart a new node in its place specifying the listen_address or broadcast_address that the new node is assuming. The new node must not have any data in its data directory, that is, it must be in the same state as before bootstrapping.
Note: The broadcast_address defaults to the listen_address except when using the Ec2MultiRegionSnitch.
cassandra.replayList=table  
Allow restoring specific tables from an archived commit log.
cassandra.ring_delay_ms=ms  
Defines the amount of time a node waits to hear from other nodes before formally joining the ring. (Default: 1000ms)
cassandra.rpc_port=port  
Set the port for the Thrift RPC service, which is used for client connections. (Default: 9160).
cassandra.ssl_storage_port=port  
Set the SSL port for encrypted communication. (Default: 7001)
cassandra.start_native_transport=true|false  
Enable or disable the native transport server. See start_native_transport in cassandra.yaml. (Default: true)
cassandra.start_rpc=true/false  
Enable or disable the Thrift RPC server. (Default: true)
cassandra.storage_port=port  
Set the port for inter-node communication. (Default: 7000)
cassandra.triggers_dir=directory  
Set the default location for the trigger JARs. (Default: conf/triggers)
cassandra.write_survey=true 
For testing new compaction and compression strategies. It allows you to experiment with different strategies and benchmark write performance differences without affecting the production workload. See Testing compaction and compression.
consistent.rangemovement=true 
True makes Cassandra 2.1 bootstrapping behavior effective. False makes Cassandra 2.0 behavior effective.

Example

Clear gossip state when starting a node:
  • Command line: bin/cassandra -Dcassandra.load_ring_state=false
  • cassandra-env.sh: JVM_OPTS="$JVM_OPTS -Dcassandra.load_ring_state=false"
Start Cassandra on a node and do not join the cluster:
  • Command line: bin/cassandra -Dcassandra.join_ring=false
  • cassandra-env.sh: JVM_OPTS="$JVM_OPTS -Dcassandra.join_ring=false"
Replacing a dead node:
  • Command line: bin/cassandra -Dcassandra.replace_address=10.91.176.160
  • cassandra-env.sh: JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=10.91.176.160"