我要从RF为1的三节点集群把数据迁移到新集群,原节点每个大概4T多数据
我通过快照把文件迁移到了新集群的data目录下
原节点A----->新节点/data1
原节点B----->新节点/data2
原节点C----->新节点/data3
如图,现在磁盘123都比较满了
是直接nodetool refresh比较好呢
还是通过sstableloader导入比较好
不知道nodetool refresh后新写入数据会不会重点往磁盘4 磁盘5写
又或者sstableloader会不会因为123已经快满了 中途报错
还有sstableloder可不可以在单节点上并发
比如同时把data1、data2、data3的数据导入本地
目前采用nodetool refresh
查看日志有告警,需要处理吗,要怎么处理? WARN [CompactionExecutor:8] 2023-05-06 12:31:50,946 CompactionTask.java:94 - insufficient space to compact all requested files. 8369637.0MB required, BigTableReader(path='/data2/cassandra/data/kairosdb/data_points-fad89980eb5511edbd61e5db630eb6be/mc-10-big-Data.db'), BigTableReader(path='/data2/cassandra/data/kairosdb/data_points-fad89980eb5511edbd61e5db630eb6be/mc-23-big-Data.db'), BigTableReader(path='/data1/cassandra/data/kairosdb/data_points-fad89980eb5511edbd61e5db630eb6be/mc-40-big-Data.db'), BigTableReader(path='/data3/cassandra/data/kairosdb/data_points-fad89980eb5511edbd61e5db630eb6be/mc-19-big-Data.db'), BigTableReader(path='/data3/cassandra/data/kairosdb/data_points-fad89980eb5511edbd61e5db630eb6be/mc-41-big-Data.db'), BigTableReader(path='/data1/cassandra/data/kairosdb/data_points-fad89980eb5511edbd61e5db630eb6be/mc-49-big-Data.db')
首先,nodetool refresh 命令不会影响新写入数据的磁盘分布,因为它只是重新加载 SSTable 元数据信息,不会移动数据块。而 sstableloader 命令会在新节点上创建新的 SSTable 文件,因此可以避免数据重点写入磁盘4和磁盘5。
在使用 sstableloader 命令时,可以同时在单节点上并发导入 data1、data2、data3 的数据,这样可以提高导入速度。
关于日志中的告警,可以考虑增加节点的磁盘空间,或者调整 compaction 的策略,以减少需要合并的 SSTable 文件数量。如果出现这种告警,可以先手动运行 nodetool compact 命令,以减少需要合并的 SSTable 文件数量。如果还是无法解决问题,可以考虑增加节点的磁盘空间。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云NoSQL数据库提供了一种灵活的数据存储方式,可以支持各种数据模型,包括文档型、图型、列型和键值型。此外,它还提供了一种分布式的数据处理方式,可以支持高可用性和容灾备份。包含Redis社区版和Tair、多模数据库 Lindorm、MongoDB 版。