MacOS M1芯片Ventura系统Embedded Cassandra启动失败求助
解决Embedded Cassandra在M1 Mac Ventura上启动时缺失bin目录的问题
问题详情
- 环境:M1芯片MacOS Ventura系统,Cassandra版本3.11.14,Embedded Cassandra版本4.0.7
- 启动报错:
Exception in thread "main" com.github.nosan.embedded.cassandra.CassandraException: Unable to start DefaultCassandra{name='cassandra-0', version='3.11.14'}. Caused by: java.io.FileNotFoundException: /var/folders/50/fwdzhkdd4zz_yn53s0szx2vw0000gq/T/apache-cassandra-6267611957967446273/bin/cassandra does not exist.
排查发现临时目录下已创建apache-cassandra-6267611957967446273文件夹,但未生成bin子目录。
解决办法
1. 修正版本兼容性
Embedded Cassandra 4.0.7与Cassandra 3.11.14存在版本适配问题,4.x系列的Embedded Cassandra主要针对Cassandra 4.x版本优化。建议:
- 降级Embedded Cassandra到3.x分支(选择与Cassandra 3.11.14主版本匹配的Embedded版本,如对应3.11.x系列的Embedded Cassandra版本)
- 或升级Cassandra到4.x版本,与Embedded Cassandra 4.0.7保持版本一致
2. 手动指定本地Cassandra压缩包
自动下载的压缩包可能因网络或架构问题解压失败,手动下载官方的apache-cassandra-3.11.14-bin.tar.gz包,通过配置让Embedded Cassandra使用本地文件:
Cassandra cassandra = Cassandra.builder() .version("3.11.14") .distribution(Distribution.of(new File("/本地路径/apache-cassandra-3.11.14-bin.tar.gz"))) .build();
3. 检查临时目录权限与解压日志
- 确认临时目录
/var/folders/50/fwdzhkdd4zz_yn53s0szx2vw0000gq/T/具备读写权限,避免解压过程因权限不足中断 - 查看Embedded Cassandra的调试日志,确认下载的压缩包是否完整,解压步骤是否出现异常(比如压缩包损坏导致文件缺失)
4. 适配M1 ARM64架构
Cassandra 3.11.x官方未提供ARM64预编译包,可能导致解压或启动异常:
- 在Rosetta 2模式下运行你的Java应用,模拟x86_64环境
- 手动编译Cassandra 3.11.14的ARM64版本,再指定给Embedded Cassandra使用
内容的提问来源于stack exchange,提问作者Bhavya Bordia
相关产品推荐
相关产品推荐

