卡夫卡与Zookeeper 3.5.7崩溃NoSuchMethodError:java.nio.ByteBuffer.flip()

时间:2020-03-10 07:17:18

标签: java macos apache-kafka homebrew apache-zookeeper

我正遇到此错误流

2020-03-10 13:43:33 NIOServerCnxnFactory [ERROR] Thread Thread[NIOWorkerThread-7,5,main] died
java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
    at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:331)
    at org.apache.zookeeper.server.NIOServerCnxnFactory$IOWorkRequest.doWork(NIOServerCnxnFactory.java:530)
    at org.apache.zookeeper.server.WorkerService$ScheduledWorkRequest.run(WorkerService.java:155)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
...

使用Java版本

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)

在本地Mac Os Catalina上安装了自制软件的Zookeeper 2.4.0中启动kafka 3.5.7时,我遇到了这个问题。该如何解决?

2 个答案:

答案 0 :(得分:13)

hazelcastdopio等其他服务中对此进行了解释,这是由从jdk 9到jdk 8的向后兼容性问题引起的。

有两个明显的选择,要么您:

  1. 将您的jdk更新为9

  2. 将您的动物园管理员降级为3.4.x

我选择使用以下方法将动物园管理员降级为3.4.14

# force install zookeeper first
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6d8197bbb5f77e62d51041a3ae552ce2f8ff1344/Formula/zookeeper.rb

# then force install kafka compatible with zookeeper 3.4.14
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/6d8197bbb5f77e62d51041a3ae552ce2f8ff1344/Formula/kafka.rb

答案 1 :(得分:0)

使用brew uninstall zookeeper用brew卸载3.5.7的zookeeper,然后安装3.4.14的zookeeper

https://zookeeper.apache.org/releases.htmlhttps://mirrors.cnnic.cn/apache/zookeeper下载链接