开发者社区 > 数据库 > NoSQL数据库 > 正文

磁盘分布问题

我要从RF为1的三节点集群把数据迁移到新集群,原节点每个大概4T多数据

我通过快照把文件迁移到了新集群的data目录下
磁盘分布.png

原节点A----->新节点/data1
原节点B----->新节点/data2
原节点C----->新节点/data3
如图,现在磁盘123都比较满了
是直接nodetool refresh比较好呢
还是通过sstableloader导入比较好

不知道nodetool refresh后新写入数据会不会重点往磁盘4 磁盘5写
又或者sstableloader会不会因为123已经快满了 中途报错
还有sstableloder可不可以在单节点上并发
比如同时把data1、data2、data3的数据导入本地


目前采用nodetool refresh 磁盘分布2.png

查看日志有告警,需要处理吗,要怎么处理? 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')

展开
收起
游客n67wbod3jsomi 2023-05-06 11:25:25 177 0
1 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    首先,nodetool refresh 命令不会影响新写入数据的磁盘分布,因为它只是重新加载 SSTable 元数据信息,不会移动数据块。而 sstableloader 命令会在新节点上创建新的 SSTable 文件,因此可以避免数据重点写入磁盘4和磁盘5。

    在使用 sstableloader 命令时,可以同时在单节点上并发导入 data1、data2、data3 的数据,这样可以提高导入速度。

    关于日志中的告警,可以考虑增加节点的磁盘空间,或者调整 compaction 的策略,以减少需要合并的 SSTable 文件数量。如果出现这种告警,可以先手动运行 nodetool compact 命令,以减少需要合并的 SSTable 文件数量。如果还是无法解决问题,可以考虑增加节点的磁盘空间。

    2023-05-06 16:42:05
    赞同 展开评论 打赏
问答分类:

阿里云NoSQL数据库提供了一种灵活的数据存储方式,可以支持各种数据模型,包括文档型、图型、列型和键值型。此外,它还提供了一种分布式的数据处理方式,可以支持高可用性和容灾备份。包含Redis社区版和Tair、多模数据库 Lindorm、MongoDB 版。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载