5

我正在尝试在我的 OS X macbook 上设置 apache cassandra。我正在尝试测试 NoSql 数据库,我已经设置了 memcached 和 redis。但是对于 cassandra,我正在使用来自 oracle 的 jdk 1.7.0_09 我已按照安装说明进行操作,但是当我尝试启动服务器时,我从控制台得到了这个问题:

MacBook-Air-Urij:bin urijvoskresenskij$ ./cassandra -f xss = -ea -javaagent:./../lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1024M -Xmx1024M -Xmn200M -XX:+HeapDumpOnOutOfMemoryError log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /var/log/cassandra/system.log (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:212) at java.io.FileOutputStream.<init>(FileOutputStream.java:136) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:207) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:809) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735) at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:395) at org.apache.log4j.PropertyWatchdog.doOnChange(PropertyConfigurator.java:922) at org.apache.log4j.helpers.FileWatchdog.checkAndConfigure(FileWatchdog.java:89) at org.apache.log4j.helpers.FileWatchdog.<init>(FileWatchdog.java:58) at org.apache.log4j.PropertyWatchdog.<init>(PropertyConfigurator.java:914) at org.apache.log4j.PropertyConfigurator.configureAndWatch(PropertyConfigurator.java:461) at org.apache.cassandra.service.AbstractCassandraDaemon.initLog4j(AbstractCassandraDaemon.java:100) at org.apache.cassandra.thrift.CassandraDaemon.<clinit>(CassandraDaemon.java:61) INFO 17:40:17,717 Logging initialized INFO 17:40:17,720 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0_09 INFO 17:40:17,720 Heap size: 1052770304/1052770304 INFO 17:40:17,721 Classpath: ./../conf:./../build/classes/main:./../build/classes/thrift:./../lib/antlr-3.2.jar:./../lib/apache-cassandra-1.1.7.jar:./../lib/apache-cassandra-clientutil-1.1.7.jar:./../lib/apache-cassandra-thrift-1.1.7.jar:./../lib/avro-1.4.0-fixes.jar:./../lib/avro-1.4.0-sources-fixes.jar:./../lib/commons-cli-1.1.jar:./../lib/commons-codec-1.2.jar:./../lib/commons-lang-2.4.jar:./../lib/compress-lzf-0.8.4.jar:./../lib/concurrentlinkedhashmap-lru-1.3.jar:./../lib/guava-r08.jar:./../lib/high-scale-lib-1.1.2.jar:./../lib/jackson-core-asl-1.9.2.jar:./../lib/jackson-mapper-asl-1.9.2.jar:./../lib/jamm-0.2.5.jar:./../lib/jline-0.9.94.jar:./../lib/json-simple-1.1.jar:./../lib/libthrift-0.7.0.jar:./../lib/log4j-1.2.16.jar:./../lib/metrics-core-2.0.3.jar:./../lib/servlet-api-2.5-20081211.jar:./../lib/slf4j-api-1.6.1.jar:./../lib/slf4j-log4j12-1.6.1.jar:./../lib/snakeyaml-1.6.jar:./../lib/snappy-java-1.0.4.1.jar:./../lib/snaptree-0.1.jar:./../lib/jamm-0.2.5.jar INFO 17:40:17,722 JNA not found. Native methods will be disabled. INFO 17:40:17,734 Loading settings from file:/Users/urijvoskresenskij/apache-cassandra-1.1.7/conf/cassandra.yaml INFO 17:40:17,924 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap INFO 17:40:18,149 Global memtable threshold is enabled at 334MB java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:317) at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:219) at org.xerial.snappy.Snappy.<clinit>(Snappy.java:44) at org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:46) at org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:56) at org.apache.cassandra.io.compress.SnappyCompressor.<clinit>(SnappyCompressor.java:38) at org.apache.cassandra.config.CFMetaData.<clinit>(CFMetaData.java:76) at org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:84) at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:438) at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:114) at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:127) at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:389) at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106) Caused by: java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) at java.lang.Runtime.loadLibrary0(Runtime.java:845) at java.lang.System.loadLibrary(System.java:1084) at org.xerial.snappy.SnappyNativeLoader.loadLibrary(SnappyNativeLoader.java:52) ... 17 more WARN 17:40:18,269 Cannot initialize native Snappy library. Compression on new tables will be disabled. ERROR 17:40:18,317 Exception encountered during startup java.lang.AssertionError: Directory /var/lib/cassandra/data is not accessible. at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:155) at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:389) at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106) java.lang.AssertionError: Directory /var/lib/cassandra/data is not accessible. at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:155) at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:389) at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106) Exception encountered during startup: Directory /var/lib/cassandra/data is not accessible. </pre></code>

我不知道如何解决这个问题。请帮帮我,伙计们:)

4

3 回答 3

7

您没有写入 /var/log 的权限,这是意料之中的。您需要以 sudo 身份运行 Cassandra 或使用适当的权限自行创建目录。

于 2012-12-13T14:36:19.653 回答
4

config/cassandra.yaml - 包含 Cassandra 所需的所有文件夹的路径。将这些路径更改为您的用户具有写入权限的位置,这样您就不需要将其作为 sudo 运行。

于 2012-12-15T11:23:08.757 回答
1

我认为在本地开发机器上工作的一个潜在的侵入性较小的解决方案是根本不弄乱 root 权限。只需通过编辑目录中的 log4j 属性文件将日志位置更改为您想要的任何位置<cassandra_install_dir>/conf

于 2013-06-09T21:03:44.970 回答