1

因为洗牌时空间不足,我不得不在我的 Cassandra 节点上添加多个磁盘。

当我完成压缩、清理和修复后,我想删除它们并返回到每个节点一个磁盘。

进行切换的程序是什么?
我可以杀死 cassandra,将数据从一个磁盘移动到另一个磁盘,删除第二个磁盘的配置,然后重新启动 cassandra 吗?

我假设文件不会具有相同的名称,因此不会被覆盖,是这样吗?

4

1 回答 1

2
  • 从 nodetool运行disablegossipdisablethrift,这样这个节点就会被其他节点视为 DOWN。
  • 刷新/排空memtables,运行压缩以合并 SSTables,如果有的话
  • [可选,拍摄快照以防万一]
  • 这会阻止所有其他节点/客户端写入此节点,并且因为内存表已刷新到磁盘
  • 停止 Cassandra(虽然此节点已关闭,但集群可用于写入/读取,因此停机时间为零)
  • 将数据/日志内容从其他磁盘移动到您想要的磁盘
  • 在 cassandra.yaml 中进行更改以更改以下路径: commitlog_directory saved_caches_directory data_file_directories log_directory
  • 重新启动卡桑德拉

对所有节点执行此操作。

于 2013-09-16T12:56:24.640 回答