nodetool rebuild

Rebuilds data on a node by streaming from another datacenter.

Rebuilds data on a node by streaming from another datacenter.

This command operates on a single node where the command is run. It streams data from multiple nodes in the specified datacenter. Use this command on each node after adding a datacenter to stream data to that node.

Note: If nodetool rebuild is interrupted before completion, restart it by re-entering the command. The process resumes from the point at which it was interrupted.


nodetool [connection_options] rebuild 
[-c num_connections] 
[-m mode] [-s source_ip_address] 
[-ts (start_token_1,end_token_1],(start_token_2,end_token_2], ...]
[-x exclude_source_IPs] [-xdc exclude_dc_names] [--] src-dc-name
Table 1. Legend
Syntax conventions Description
UPPERCASE Literal keyword.
Lowercase Not literal.
Italics Variable value. Replace with a valid option or user-defined value.
[ ] Optional. Square brackets ( [ ] ) surround optional command arguments. Do not type the square brackets.
( ) Group. Parentheses ( ( ) ) identify a group to choose from. Do not type the parentheses.
| Or. A vertical bar ( | ) separates alternative elements. Type any one of the elements. Do not type the vertical bar.
... Repeatable. An ellipsis ( ... ) indicates that you can repeat the syntax element as often as required.
'Literal string' Single quotation ( ' ) marks must surround literal strings in CQL statements. Use single quotation marks to preserve upper case.
{ key:value } Map collection. Braces ( { } ) enclose map collections or key value pairs. A colon separates the key and the value.
<datatype1,datatype2> Set, list, map, or tuple. Angle brackets ( < > ) enclose data types in a set, list, map, or tuple. Separate the data types with a comma.
cql_statement; End CQL statement. A semicolon ( ; ) terminates all CQL statements.
[ -- ] Separate the command line options from the command arguments with two hyphens ( -- ). This syntax is useful when arguments might be mistaken for command line options.
' <schema> ... </schema> ' Search CQL only: Single quotation marks ( ' ) surround an entire XML schema declaration.
@xml_entity='xml_entity_type' Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrconfig files.


The short form and long form parameters are comma-separated.

Connection options

-h, --host hostname
The hostname or IP address of a remote node or nodes. When omitted, the default is the local machine.
-p, --port jmx_port
The JMX port number.
-pw, --password jmxpassword
The JMX password for authenticating with secure JMX. If a password is not provided, you are prompted to enter one.
-pwf, --password-file jmx_password_filepath
The filepath to the file that stores JMX authentication credentials.
-u, --username jmx_username
The user name for authenticating with secure JMX.

Command arguments

Separates an option from an argument that could be mistaken for a option.
-c, --connections-per-host num_connections
Maximum number of connections per host for streaming. Overrides value of streaming_connections_per_host in cassandra.yaml.
-ks, --keyspace keyspace_name, ...
Comma-separated list of one or more keyspaces. List only the keyspaces to include in the rebuild.
Tip: Do not include keyspaces that are not replicated across datacenters (for example, dsefs keyspaces, and keyspaces with local strategy).
-m, --mode mode
  • normal - conventional behavior, streams only ranges that are not already locally available
  • refetch - resets locally available ranges, streams all ranges but leaves current data untouched
  • reset - resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges
  • reset-no-snapshot - (like reset) resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges but prevents a snapshot even if auto_snapshot is enabled
When not specified, the default is normal.
-s, --sources source_ip_address
Comma-separated list of IP addresses from which to stream.
-ts, --tokens (start_token_1,end_token_1], (start_token_2,end_token_2], ...
Comma-separated list of token ranges, in this format (start_token_1,end_token_1],(start_token_2,end_token_2],(start_token_n,end_token_n]
-x, --exclude-sources exclude_source_IPs
Comma-separated list of IP addresses to exclude from streaming.
-xdc, --exclude-dcs exclude_dc_name
Comma-separated list of datacenters to exclude from streaming. For example, dc-a,dc-b. To include a rack name in the list, separate datacenter and rack name with a colon (:). For example, dc-a:rack1,dc-a:rack2.


Rebuild from any datacenter

nodetool rebuild 

Rebuild from DC2

nodetool rebuild -dc DC2

Rebuild from DC2 and DC3

nodetool rebuild -dc DC2, DC3