Kafka - 发送中的NullPointerException

时间:2015-09-08 04:07:43

标签: apache-kafka

我使用Spark应用程序中的Kafka向主题发送一些通知。我在Spark日志中看到了以下异常的负载,并且消息未传递给主题。

15/09/08 03:29:24错误发件人:kafka生产者I / O线程中未捕获的错误:

java.lang.NullPointerException
    at org.apache.kafka.common.network.NetworkReceive.complete(NetworkReceive.java:48)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:249)
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192)
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191)
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122)
    at java.lang.Thread.run(Thread.java:745)

我不确定导致此错误的原因并查看源代码,似乎NetworkReceive.java中的大小或缓冲区变量都为null。

扫描日志,我看到在此日志条目之前,出现以下消息:

15/09/08 03:29:24 ERROR Sender: Uncaught error in kafka producer I/O thread: 
java.lang.IllegalStateException: Invalid request (size = -2097152000)
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:68)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:248)
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192)
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191)
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122)
    at java.lang.Thread.run(Thread.java:745)
15

2 个答案:

答案 0 :(得分:1)

我错误地改变了我的Spark应用程序的参数顺序,而Kafka试图连接到9042而不是它应该连接到的9092端口。我让Cassandra在9042上运行并建立了与它的连接,但是之后就失败了,因为这个消息不是Kafka所期望的。

因此,如果其他人面临同样的问题,请仔细检查您的Kafka经纪人IP和端口:)

答案 1 :(得分:0)

这与您的主机名和端口有关。请验证您的端口,您的进程是否在同一端口上运行。