【问题标题】:Cassandra Startup Error 1.2.6 on Linux x86_64Linux x86_64 上的 Cassandra 启动错误 1.2.6
【发布时间】:2013-11-07 15:56:34
【问题描述】:

尝试从最新的稳定版本 - http://cassandra.apache.org/download/ - 1.2.6 在 linux 上安装 cassandra

我已将 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

但是在日志中仍然看到同样的错误。

【问题讨论】:

    标签: java linux cassandra x86-64 snappy


    【解决方案1】:

    您似乎 (a) 在一个系统上运行了一个与 snappy 1.0.5 不兼容的 glibc 并且 (b) 从可以工作的早期版本升级的系统。

    如果您在不兼容 Snappy 的系统上重新启动 Cassandra,它将检测到问题并跳过压缩。但是当您升级并且您拥有压缩的系统表时,Cassandra 无能为力。

    可以降级,可以升级glibc,也可以降级,切换到lz4运行upgradesstables,然后再升级。

    编辑:您也可以直接删除旧的 1.0.4 snappy,然后删除 1.0.5。

    编辑 2:这是 RHEL 5 吗?几乎任何现代的东西都应该兼容 snappy-1.0.5。

    【讨论】:

    • 感谢您的回答。这有帮助。我尝试了 cassandra 1.1.12 版本并且成功了!感谢您的时间和帮助。是的,它的 RHEL 5,不过我没有尝试过 snappy 的 1.0.4 版本。
    • 顺便说一句,我尝试了完全新鲜数据库的无压缩选项。还是有问题。不知道为什么。
    • 我通过使用 snappy 1.0.4 中静态编译的 .so 构建一个新的 snappy-java jar 来解决这个问题,然后替换 Cassandra 的 lib 目录中的另一个 jar。
    【解决方案2】:

    以防万一有人用我的配置看到这篇文章:

    • rhel 5
    • 卡桑德拉 2.0.2

    我遇到了启动问题 - 找不到版本 `GLIBCXX_3.4.9'

    建议的解决方案:

    1. 在 rhel 5 上编译 snappy 1.1.0(我猜可能是 1.0.5)。
    2. 将原始 cassandra 2.0.2 发行版中的 snappy 1.0.5 替换为上述版本
    3. 按顺序重启(先播种,再加入其他节点)

    似乎绕过了这个问题。

    希望未来的 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.
    

    【讨论】:

      猜你喜欢
      • 2022-10-31
      • 2011-09-07
      • 2018-07-28
      • 1970-01-01
      • 2012-03-05
      • 2019-11-12
      • 2023-01-05
      • 1970-01-01
      • 2013-07-05
      相关资源
      最近更新 更多