Cassandra Thrift Asked: 2023-02-10 01:47:08 +0800 CST2023-02-10 01:47:08 +0800 CST 2023-02-10 01:47:08 +0800 CST 摆脱大型 STCS sstable 的最佳方法是什么? 772 摆脱由 STCS 压缩创建的大型 sstables(大小为数百 GB)的最佳方法是什么。 会是sstablesplit还是nodetool compact -s? cassandra 2 个回答 Voted Best Answer Aaron 2023-02-10T09:41:32+08:002023-02-10T09:41:32+08:00 SSTABLESPLIT 绝对是最佳选择。 手动运行压缩往往会导致更多问题,这是值得的。 Erick Ramirez 2023-02-10T22:42:11+08:002023-02-10T22:42:11+08:00 这两个命令执行不同的操作,“最佳方式”取决于您想要实现的目标。 sstablesplit顾名思义,它将 SSTables 拆分成更小的文件,因此它们可以被SizeTieredCompactionStrategy. 但请注意,它是一个离线工具,因此需要关闭 Cassandra 才能运行该工具。 作为解决方法,您可以在另一台服务器上拆分大型 SSTable。我之前在如何在另一台服务器上拆分大型 SSTables?中记录了详细步骤。. “拆分”选项(-s或--split-output)nodetool compact将强制执行所谓的主要压缩,将 SSTable 拆分为原始表大小的 50%、25%、12.5% 的文件,直到最小文件为 50MB。但是请注意,此选项仅适用于 Cassandra 2.2 或更高版本。 运行手动压缩有一些缺点,我在为什么强制对表进行主要压缩并不理想?所以这是需要注意的事情。 回到你原来的问题,什么是“最好的”取决于你的情况,并将归结为你是否有能力让一个节点宕机。希望我上面提出的要点能帮助您做出决定。干杯!
SSTABLESPLIT 绝对是最佳选择。
手动运行压缩往往会导致更多问题,这是值得的。
这两个命令执行不同的操作,“最佳方式”取决于您想要实现的目标。
sstablesplit
顾名思义,它将 SSTables 拆分成更小的文件,因此它们可以被SizeTieredCompactionStrategy
. 但请注意,它是一个离线工具,因此需要关闭 Cassandra 才能运行该工具。作为解决方法,您可以在另一台服务器上拆分大型 SSTable。我之前在如何在另一台服务器上拆分大型 SSTables?中记录了详细步骤。.
“拆分”选项(
-s
或--split-output
)nodetool compact
将强制执行所谓的主要压缩,将 SSTable 拆分为原始表大小的 50%、25%、12.5% 的文件,直到最小文件为 50MB。但是请注意,此选项仅适用于 Cassandra 2.2 或更高版本。运行手动压缩有一些缺点,我在为什么强制对表进行主要压缩并不理想?所以这是需要注意的事情。
回到你原来的问题,什么是“最好的”取决于你的情况,并将归结为你是否有能力让一个节点宕机。希望我上面提出的要点能帮助您做出决定。干杯!