sstablesplit
Splits SSTable files into multiple SSTables of a maximum designated size while offline.
For example, if SizeTieredCompactionStrategy was used for a major compaction and results in an excessively large SSTable, split the table to ensure that compaction occurs before the next huge compaction.
|
Stop DSE before you run this command. |
The default location of this SSTable tool depends on the type of installation:
-
Package installations:
/usr/share/dse/cassandra/tools -
Tarball installations:
INSTALL_DIRECTORY/resources/cassandra/bin
Synopsis
sstablessplit
[--debug] [-h] [--no_snapshot]
[-s <max_size_in_MB>]
<sstable_filepath> [<sstable_filepath> ...]
| Syntax conventions | Description |
|---|---|
Italic, bold, or |
Syntax diagrams and code samples use one or more of these styles to mark placeholders for variable values. Replace placeholders with a valid option or your own user-defined value. In CQL statements, angle brackets are required to enclose data types in a set, list, map, or tuple.
Separate the data types with a comma.
For example: In Search CQL statements, angle brackets are used to identify the entity and literal value to overwrite the XML element in the schema and |
|
Square brackets surround optional command arguments. Do not type the square brackets. |
|
Parentheses identify a group to choose from. Do not type the parentheses. |
|
A pipe separates alternative elements. Type any one of the elements. Do not type the pipe. |
|
Indicates that you can repeat the syntax element as often as required. |
|
Single quotation marks must surround literal strings in CQL statements. Use single quotation marks to preserve upper case. For Search CQL only: Single quotation marks surround an entire XML schema declaration, such as |
|
Map collection.
Curly braces enclose maps ( |
|
Ends a CQL statement. |
|
Separate command line options from command arguments with two hyphens. This syntax is useful when arguments might be mistaken for command line options. |
Options
If an option has a short and long form, both forms are given, separated by a comma.
- --debug
-
Display stack traces.
- -h, --help
-
Display the usage and listing of the commands.
- --no-snapshot
-
Do not snapshot SSTables before splitting.
- -s, --size max_size_in_MB
-
Maximum size in MB for output SSTables.
Default: 50
- sstable_filepath
-
Path to the SSTable file that you want to split.
Examples
-
Verify DataStax Enterprise is not running:
nodetool statusDatacenter: Graph ================================ Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN 10.200.177.92 265.04 KiB 1 ? 980cab6a-2e5d-44c6-b897-0733dde580ac rack1 DN 10.200.177.94 426.21 KiB 1 ? 7ecbbc0c-627d-403e-b8cc-a2daa93d9ad3 rack1 -
Split SSTables to 10 MB:
sstablesplit /var/lib/cassandra/data/cycling/cyclist_category-e1f76e21ce4311e8949e33016bf887c0/aa-1-bti-Statistics.db 10Skipping inexisting file 10 Skipping /var/lib/cassandra/data/cycling/cyclist_category-e1f76e21ce4311e8949e33016bf887c0/aa-1-bti-Data.db: it's size (0.000 MB) is less than the split size (50 MB) No sstables needed splitting.
Troubleshoot OutOfMemoryError
Some tools require a larger heap size.
If you get OutOfMemoryError exceptions, try increasing the heap size for sstablesplit.
To do this, edit the MAX_HEAP_SIZE variable in the tools/bin/sstablesplit shell script:
MAX_HEAP_SIZE="8G"