我正遇到此错误流
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
时,我遇到了这个问题。该如何解决?
答案 0 :(得分:13)
在hazelcast和dopio等其他服务中对此进行了解释,这是由从jdk 9到jdk 8的向后兼容性问题引起的。
有两个明显的选择,要么您:
将您的jdk更新为9
将您的动物园管理员降级为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.html或https://mirrors.cnnic.cn/apache/zookeeper下载链接