【问题标题】:Apache Kafka - kafka-server-start.sh is not getting startedApache Kafka - kafka-server-start.sh 没有开始
【发布时间】:2018-11-08 01:39:58
【问题描述】:

我目前正在学习 kafka 和 new ,我正在尝试启动 kafka-server-start.sh config/server.properties 但收到以下错误消息,我搜索了 stackoverflow 并且无法获得解决方案。谁能告诉我如何解决这个问题。

错误信息:

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
ERROR StatusLogger No log4j2 configuration file found. Using default 
configuration: logging only errors to the console.
21:48:52.090 [main] FATAL kafka.Kafka$ - null
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
at kafka.utils.CoreUtils$.parseCsvList(CoreUtils.scala:213) ~[kafka_2.11-0.9.0.0.jar:?]
at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:742) ~[kafka_2.11-0.9.0.0.jar:?]
at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:691) ~[kafka_2.11-0.9.0.0.jar:?]
at kafka.server.KafkaServerStartable$.fromProps(KafkaServerStartable.scala:28) ~[kafka_2.11-0.9.0.0.jar:?]
at kafka.Kafka$.main(Kafka.scala:58) [kafka_2.11-0.9.0.0.jar:?]
at kafka.Kafka.main(Kafka.scala) [kafka_2.11-0.9.0.0.jar:?]

我使用的是 Ubuntu 14.04、Java 1.8 build 101、zookeeper 版本 3.4 和 kafka 版本 2.11-0.9

动物园管理员属性(zoo.cfg):

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.10/data
clientPort=2181

kafka 属性(server.properties):

broker.id=0
listeners=PLAINTEXT://:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/usr/local/kafka/kafka-log-1
num.partitions=2
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000

【问题讨论】:

  • 你的系统中有java或scala吗?
  • 您是否尝试过使用更新版本的 Kafka?目前是 2.0,而您使用的是 0.9
  • 查看kafka属性listeners=PLAINTEXT://{{HOSTNAME}}:9092listeners=PLAINTEXT://localhost:9092
  • @Deadpool,是的,我有 java,我在我的问题中提到了版本,而 scala 我有 2.12 版本。
  • @KarthikRamachandran 我说的是 Kafka 的版本,而不是 Scala。从kafka.apache.org/downloads 你可以得到 kafka_2.11-2.0.0 这是 Apache Kafka 2.0

标签: apache-kafka


【解决方案1】:

这通常是 Scala 版本问题的标志;正在运行的软件正在尝试查找您安装的版本中不可用的 Scala 内部方法

NoSuchMethodError: scala.Predef$

根据你的评论

scala 我有 2.12 版本。

我认为 Kafka 0.9 发布时 Scala 2.12 还不存在,但如果您不打算降级 Scala,那么您必须使用 2.12 构建的 Kafka 版本。

在 Apache Kafka 网站上,您可以找到 Scala 2.12 - kafka_2.12-2.0.0.tgz 链接。

或者你可以使用apt-get通过Confluent Platform安装Kafka,然后你可以使用sudo service start confluent-kafka之类的东西

【讨论】:

  • 肯定会尝试为 scala 2.12 安装 kafka2.12-2.0.0 tar 球或通过 apt-get install ,我认为它应该像 spark 那样应该有它的 scala 版本.还有一件事我不确定kafka 在cloudera quickstart vm 5.8(从parcel 目录运行而不激活它)中如何正常工作,它有java 7 build 67,它没有scala,它有spark 1.6 scala 2.11.8 .任何方式都会尝试您的解决方案并在此处更新。
  • 您不需要预先安装 Scala,但如果您这样做,那么 JAVA_HOME 可以使用的库会导致问题。除此之外,Scala 2.11 版本的 Kafka 进行了更多测试(由 Kafka 的企业支持公司和主要开发人员 Confluent)
  • Scala 2.12 版 kafka 正在按照您共享的链接工作。还有 kafka docker 可通过 github landoop/fast-data-dev 获得,它适用于 2.11 kafka 版本 1.1.1。感谢您为我的学习提供解决方案。
  • confluentinc 图像通常比landoop 图像更新
猜你喜欢
  • 1970-01-01
  • 2022-01-13
  • 2021-03-28
  • 1970-01-01
  • 2019-01-02
  • 2016-08-27
  • 1970-01-01
  • 2018-02-19
  • 2021-10-24
相关资源
最近更新 更多