You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cassandra 4.1 sstableloader从Azure文件共享加载失败,本地正常

Cassandra 4.1 sstableloader加载Azure文件共享SSTable失败的解决方案

问题现象

执行sstableloader从Azure文件共享挂载目录加载SSTable时出现报错,本地磁盘加载相同文件则正常运行。核心报错信息如下:

$ sudo sstableloader -d 172.168.11.42,172.168.11.41 /mnt/cassandra/kairosdb/row_keys/
# 省略参数弃用警告信息
ERROR 13:06:42,492 [Stream #7caa25a0-fd84-11ee-8a7a-9be902713f6b] Streaming error occurred on session with peer 172.168.11.42:7000
org.apache.cassandra.io.FSWriteError: java.nio.file.FileSystemException: /mnt/cassandra/kairosdb/row_keys/me-453-big-Statistics.db.804797b0-fd84-11ee-8a7a-9be902713f6b.tmp -> /mnt/cassandra/kairosdb/row_keys/me-453-big-Statistics.db: Operation not supported
        at org.apache.cassandra.io.util.FileUtils.createHardLink(FileUtils.java:186)
# 省略后续堆栈追踪信息

原因分析

报错堆栈明确指向FileUtils.createHardLink操作失败,本质原因是Azure文件共享(通常通过SMB协议挂载)不支持Unix硬链接,而sstableloader在处理SSTable时会尝试创建硬链接生成临时统计文件,触发了文件系统的功能限制。

解决方案

方案1:临时绕开限制——复制到本地磁盘后加载

将Azure文件共享中的SSTable复制到本地临时目录,再执行sstableloader加载本地文件:

# 复制SSTable到本地临时目录
cp -r /mnt/cassandra/kairosdb/row_keys/ /tmp/local_cassandra_sstables/

# 执行sstableloader加载本地文件
sudo sstableloader -d 172.168.11.42,172.168.11.41 /tmp/local_cassandra_sstables/

方案2:长期优化——使用Azure磁盘替代文件共享

如果需要频繁执行SSTable加载操作,建议将SSTable存储在Azure Managed Disk等支持Unix硬链接的存储介质中,直接配合sstableloader使用,省去文件复制的额外步骤。

内容的提问来源于stack exchange,提问作者Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 20:12:34