Cassandra-windows 10
Posted
技术标签:
【中文标题】Cassandra-windows 10【英文标题】: 【发布时间】:2021-10-12 15:45:28 【问题描述】:我已经安装了 apache-cassandra-3-11-11 和 DATASTAX-DDC。但它们不适用于 Windows 10。
它在 cmd 中给出了一个错误,如图所示。我尝试在 powershell 上编写 cassandra.bat -f 命令,但又没有。(它们处于管理员模式)
当我尝试打开 Cassandra CQL Shell 时,它会打开,但会在几秒钟内自行关闭。 当我尝试在 datastax 文件夹中打开 cassandra.bat 文件时,同样的事情发生了。
(顺便说一下,我在环境设置中添加了 CASSANDRA_HOME 目录)
有人可以帮我吗...我该怎么办?问题出在哪里?
【问题讨论】:
在 Windows 上运行 Cassandra 最简单的方法是使用 Docker 尝试在超级用户上询问,不知道您是否会在编程网站上获得很多运气。 @AlexOtt 是的,我的电脑里有 Docker,docker 自己的命令终结器工作正常。我猜 Cassandra CQL Shell 不工作的原因与 powershell 权限有关。但是我找不到我将如何授予权限 纯粹看错误消息(我不知道 Cassandra):看起来批处理文件错误地将非 PowerShell 脚本 (.ps1
) 传递给 powershell.exe -f
,而且,奇怪的是,这似乎是一个目录。
这不是 Cassandra 的问题。这是你机器的问题。
【参考方案1】:
您不使用 cassandra.bat
脚本启动 Cassandra。只需使用cassandra
:
C:\> cd C:\Program Files\apache-cassandra-3.11.11\bin
C:\Program Files\apache-cassandra-3.11.11\bin> cassandra
Powershell 权限
您需要向运行 Cassandra 脚本的 Windows 帐户授予 Powershell 权限。
您可以通过以下方式向计算机上的所有 Windows 帐户授予权限:
C:\> powershell Set-ExecutionPolicy Unrestricted
警告:您需要以管理员身份运行命令提示符才能运行上述命令。
作为替代方案,您可以仅为当前用户授予不受限制的访问权限:
C:\> powershell Set-ExecutionPolicy -Scope CurrentUser Unrestricted
堆大小
如果您的笔记本电脑/台式机只有 8GB 内存,您将在启动时收到此错误:
Error occurred during initialization of VM
Could not reserve enough space for object heap
默认情况下,Cassandra 将尝试在 8GB 机器上分配给堆的 2GB 内存开始。但是如果没有足够的空闲内存,Java 将无法为 JVM 堆保留它。
您需要通过在conf/jvm.options
的“堆设置”部分取消注释以下行来启动 Cassandra,并为最大堆大小分配更保守的 1GB,为 NewGen 分配 400MB:
-Xms1G
-Xmx1G
-Xmn400M
Windows 支持
我还想让您知道,Cassandra 3.11 对 Windows 的支持非常有限,并且由于操作系统的限制,有几个已知问题无法修复。
此外,由于缺乏维护人员和测试 (CASSANDRA-16171),Cassandra 4.0 中完全放弃了 Windows 支持。
作为一种解决方法,我们推荐以下方法:
Deploy Cassandra in Docker 使用 VirtualBox 等软件在 VM 中部署 Cassandra 部署K8ssandra.io如果您只是想以 Cassandra 作为后端来构建应用程序,Astra DB 提供免费套餐,让您只需点击几下即可启动 Cassandra 集群,而无需信用卡。干杯!
【讨论】:
【参考方案2】:伙计们,我从各处删除了 Docker(也包括隐藏文件)并重新安装。
并对datastax
做了同样的事情。
问题现在解决了。
【讨论】:
以上是关于Cassandra-windows 10的主要内容,如果未能解决你的问题,请参考以下文章