Java 在单机版中启动cassandra失败,错误为FSWriteError

Java 在单机版中启动cassandra失败,错误为FSWriteError,java,cassandra,cassandra-2.0,Java,Cassandra,Cassandra 2.0,我将在Cassandra的独立服务器v2.1.1站点上学习教程。我正试图让它在一个流浪者的实例上运行。JDK版本是java版本“1.7.0_72”。即使我用sudo bin/Cassandra-f启动Cassandra,我也会遇到以下错误: DEBUG 22:14:34 Creating new commit log segment /vagrant/apache-cassandra-2.1.1/out/commitlog/CommitLog-4-1415657674222.log ERROR

我将在Cassandra的独立服务器v2.1.1站点上学习教程。我正试图让它在一个流浪者的实例上运行。JDK版本是java版本“1.7.0_72”。即使我用sudo bin/Cassandra-f启动Cassandra,我也会遇到以下错误:

DEBUG 22:14:34 Creating new commit log segment /vagrant/apache-cassandra-2.1.1/out/commitlog/CommitLog-4-1415657674222.log
ERROR 22:14:34 Failed managing commit log segments. Commit disk failure policy is stop; terminating thread
org.apache.cassandra.io.FSWriteError: java.io.IOException: Invalid argument
at org.apache.cassandra.db.commitlog.CommitLogSegment.<init>(CommitLogSegment.java:177) ~[apache-cassandra-2.1.1.jar:2.1.1]
at org.apache.cassandra.db.commitlog.CommitLogSegment.freshSegment(CommitLogSegment.java:119) ~[apache-cassandra-2.1.1.jar:2.1.1]
at org.apache.cassandra.db.commitlog.CommitLogSegmentManager$1.runMayThrow(CommitLogSegmentManager.java:119) ~[apache-cassandra-2.1.1.jar:2.1.1]
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) [apache-cassandra-2.1.1.jar:2.1.1]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_72]
Caused by: java.io.IOException: Invalid argument
at sun.nio.ch.FileChannelImpl.map0(Native Method) ~[na:1.7.0_72]
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:874) ~[na:1.7.0_72]
at org.apache.cassandra.db.commitlog.CommitLogSegment.<init>(CommitLogSegment.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1]
DEBUG 22:14:34创建新的提交日志段/vagrant/apache-cassandra-2.1.1/out/commitlog/commitlog-4-1415657674222.log
错误22:14:34管理提交日志段失败。提交磁盘故障策略为停止;终止线程
org.apache.cassandra.io.FSWriteError:java.io.IOException:参数无效
在org.apache.cassandra.db.commitlog.CommitLogSegment.(CommitLogSegment.java:177)~[apache-cassandra-2.1.1.jar:2.1.1]
在org.apache.cassandra.db.commitlog.CommitLogSegment.freshSegment(CommitLogSegment.java:119)~[apache-cassandra-2.1.1.jar:2.1.1]
在org.apache.cassandra.db.commitlog.CommitLogSegmentManager$1.runmaytrow(CommitLogSegmentManager.java:119)~[apache-cassandra-2.1.1.jar:2.1.1]
在org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)[apache-cassandra-2.1.1.jar:2.1.1]
在java.lang.Thread.run(Thread.java:745)[na:1.7.0_72]
原因:java.io.IOException:参数无效
在sun.nio.ch.FileChannelImpl.map0(本机方法)~[na:1.7.0_72]
在sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:874)~[na:1.7.072]
在org.apache.cassandra.db.commitlog.CommitLogSegment.(CommitLogSegment.java:166)~[apache-cassandra-2.1.1.jar:2.1.1]
CommitLog文件已创建,但服务器仍处于停止状态


如何让cassandra运行?

目录是与主机(Mac OSX 10.10)共享的文件系统。提交日志被写入该文件系统的一个目录中


当我将
conf/cassandra.yaml
中的变量
commitlog_directory
设置为不在/vagrant共享驱动器上的目录时,我能够启动cassandra。

这是Virtualbox上一个长期存在的错误。这是内存映射文件的问题;共享文件系统不支持它们


thx!后来我转到了一个不同的开发环境,但很高兴知道这一点。