2014-11-11 2 views
2

독립 실행 형 서버 v2.1.1에 대한 카산드라 사이트의 자습서를 따르고 있습니다. 방랑자 인스턴스에서 실행되도록하려고합니다. JDK 버전은 java version "1.7.0_72"입니다. 내가 sudo bin/cassandra -f와 카산드라를 시작 경우에도이 오류가 얻을 :FSWriteError로 독립 실행 형 카스 산드라가 실패했습니다.

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] 

이 CommitLog 파일이 만들어집니다하지만 서버는 여전히 중지됩니다.

카산드라를 실행하려면 어떻게해야합니까?

답변

4

/vagrant 디렉토리는 호스트 (Mac OSX 10.10)가있는 공유 파일 시스템입니다. 커밋 로그는이 파일 시스템의 디렉토리에 기록되었습니다.

에 변수 commitlog_directory을/wagrant 공유 드라이브에없는 디렉토리로 설정하면 Cassandra를 부팅 할 수있었습니다.

0

이것은 Virtualbox의 오래된 버그입니다. 그것은 메모리 매핑 된 파일의 문제입니다. 공유 파일 시스템에서는 지원되지 않습니다.

https://www.virtualbox.org/ticket/819

+0

thx! 이후로 다른 개발 환경으로 옮겼습니다. 그러나 이것은 잘 알고 있습니다. –