尝试从最新的稳定版本开始在linux上安装cassandra - http://cassandra.apache.org/download/ - 1.2.6
我已将cassndra.yaml修改为指向自定义目录而不是/ var,因为我没有/ var
上的写访问权限我在启动时看到此错误。由于发布似乎相对较新,因此无法在谷歌上找到任何答案。只是将它发布在这里以防万一我身上有一个愚蠢的错误。
相同的分发文件在我的macos x86_64机器上运行正常。
INFO 19:24:35,513 Not using multi-threaded compaction
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:322)
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:229)
at org.xerial.snappy.Snappy.<clinit>(Snappy.java:48)
at org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45)
at org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55)
at org.apache.cassandra.io.compress.SnappyCompressor.<clinit>(SnappyCompressor.java:37)
at org.apache.cassandra.config.CFMetaData.<clinit>(CFMetaData.java:82)
at org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:81)
at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:468)
at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:123)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:211)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:441)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:484)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/snappy-1.0.5-libsnappyjava.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /tmp/snappy-1.0.5-libsnappyjava.so)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at org.xerial.snappy.SnappyNativeLoader.load(SnappyNativeLoader.java:39)
... 17 more
请提出可能存在的问题。当我发现任何新内容时,我还会在此页面中添加更多结果。
看着这样的话题 - cassandra 1.2 fails to init snappy in freebsd
然而仍然看到问题。
我尝试过设置
internode_compression: none
但是在日志中仍然会看到相同的错误。
答案 0 :(得分:7)
看起来你是(a)在一个系统上运行,该系统具有与snappy 1.0.5不兼容的glibc,以及(b)从早期版本升级后运行。
如果你在非兼容Snappy的系统上启动Cassandra,它将检测问题并跳过压缩。但是当你升级并且压缩了系统表时,Cassandra就无法做到。
你可以降级,你可以升级glibc,或者你可以降级,切换到lz4并运行升级,然后再次升级。
编辑:您也可以放弃旧的1.0.4 snappy,而不是删除1.0.5。
编辑2:这是RHEL 5吗?现代的任何东西都应该与snappy-1.0.5兼容。
答案 1 :(得分:0)
以防万一有人看到我发布的配置文章:
我遇到了启动问题 - 找不到版本`GLIBCXX_3.4.9'
建议的解决方案:
看来这个问题就好了。
希望未来的cassandra版本将有处理各种操作系统版本的说明。理论上这应该有用......
INFO 23:49:07,006 Enqueuing flush of Memtable-local@926294408(43/430 serialized/live bytes, 2 ops)
INFO 23:49:07,006 Writing Memtable-local@926294408(43/430 serialized/live bytes, 2 ops)
INFO 23:49:07,019 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-10-Data.db (70 bytes) for commitlog position ReplayPosition(segmentId=1383810511586, position=220516)
INFO 23:49:07,030 Enqueuing flush of Memtable-local@1880462876(10086/100860 serialized/live bytes, 257 ops)
INFO 23:49:07,030 Writing Memtable-local@1880462876(10086/100860 serialized/live bytes, 257 ops)
INFO 23:49:07,042 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-11-Data.db (5280 bytes) for commitlog position ReplayPosition(segmentId=1383810511586, position=232503)
INFO 23:49:07,064 Node myeng11.mycompany.com/10.65.0.201 state jump to normal
INFO 23:49:07,067 Startup completed! Now serving reads.