Windows下启动Cassandra报JVM无法预留2097152KB堆内存错误如何解决
Windows 平台 Cassandra 启动报错解决方案
一、PowerShell 执行策略警告修复
原警告输出:
WARNING! Powershell script execution unavailable. Please use 'powershell Set-ExecutionPolicy Unrestricted' on this user-account to run cassandra with fully featured functionality on this platform.
- 按下
Win+X组合键,选择「Windows PowerShell(管理员)」启动高权限终端 - 执行配置命令:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,弹出确认提示时输入Y回车即可
提示:相较于Unrestricted,RemoteSigned策略仅允许执行本地未签名脚本,安全性更高,完全满足Cassandra的启动需求 - 验证配置生效:执行
Get-ExecutionPolicy,返回RemoteSigned即为配置完成
二、JVM 堆内存初始化错误修复
原错误输出:
Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap
该报错的核心原因是你修改的全局Java运行参数不会被Cassandra读取,Cassandra有独立的JVM参数配置文件,按以下步骤修改即可:
- 打开Cassandra安装目录下的
conf文件夹,找到jvm.options配置文件 - 定位到默认的堆内存配置行,默认配置为:
-Xms2G -Xmx2G
- 根据你实际的可用内存修改为对应值,注意
-Xms和-Xmx必须保持一致,例如要设置3G堆内存就修改为:
-Xms3G -Xmx3G
- 前置检查项:
- 确认你安装的是64位JDK 8:Cassandra 3.11.x版本仅兼容JDK 8,32位JDK最大仅支持2G左右的堆内存,会直接触发该报错
- 打开任务管理器查看当前系统可用内存,确保可用内存≥你设置的堆内存大小+1G(预留操作系统和其他进程的运行资源)
- 所有配置修改完成后,重新进入Cassandra的
bin目录,执行cassandra命令启动即可
内容的提问来源于stack exchange,提问作者Jyotibrata Haldar
相关产品推荐
相关产品推荐

