如何在 (M1) Macbook 上启动 Cassandra?

时间:2021-07-09 11:19:54

标签: cassandra apple-m1

我无法让 Cassandra (3.11.10) 在我的带有 M1 芯片的 Macbook 上启动。它给出了以下错误消息:

ERROR [main] 2021-07-09 13:12:46,807 NativeLibraryDarwin.java:64 - Failed to link the C library against JNA. Native methods will be unavailable.
java.lang.UnsatisfiedLinkError: /Users/tom/apache-cassandra-3.11.10/tmp/jna8890560385007025439.tmp: dlopen(/Users/tom/apache-cassandra-3.11.10/tmp/jna8890560385007025439.tmp, 1): no suitable image found.  Did find:
        /Users/tom/apache-cassandra-3.11.10/tmp/jna8890560385007025439.tmp: no matching architecture in universal wrapper
        /Users/tom/apache-cassandra-3.11.10/tmp/jna8890560385007025439.tmp: no matching architecture in universal wrapper

我使用的是 OpenJDK 1.8.0_292 (Azul Zulu)。

2 个答案:

答案 0 :(得分:1)

我发现将 Cassandra 的 lib 目录(例如 apache-cassandra-3.11.10/lib/jna-4.2.12.jar)中的 JNA jar 替换为最新的(5.8.0,来自 https://search.maven.org/artifact/net.java.dev.jna/jna/5.8.0/jar)可以解决该问题。至少只是为了让开发环境运行起来。

答案 1 :(得分:0)

遗憾的是,随 Cassandra 3.11(以及即将发布的 4.0)一起提供的 JNA (v4.2.2) JAR 不包含允许构建 Apple M1 的 Darwin arm64 的补丁(请参阅 JNA PR #1238)。

在撰写本文时,还没有可用的解决方法,但如果您只想尝试使用 Cassandra,您可以在免费层的 Astra 上启动 Cassandra 数据库,并且不需要信用卡。它与 Stargate.io 捆绑在一起——一个数据访问平台,允许您使用 REST API、GraphQL API 或 JSON/Doc API 连接到 Cassandra 集群,因此您可以立即构建应用程序,而无需下载/安装/配置卡桑德拉。

或者,您可以尝试 K8ssandra.io -- Cassandra 的云原生发行版,它在 Kubernetes 上运行,其中捆绑了所有工具,用于自动修复、备份、使用 Prometheus + Grafana 进行监控,以及 Stargate.io .干杯!