我使用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
答案 0 :(得分:1)
我错误地改变了我的Spark应用程序的参数顺序,而Kafka试图连接到9042而不是它应该连接到的9092端口。我让Cassandra在9042上运行并建立了与它的连接,但是之后就失败了,因为这个消息不是Kafka所期望的。
因此,如果其他人面临同样的问题,请仔细检查您的Kafka经纪人IP和端口:)
答案 1 :(得分:0)
这与您的主机名和端口有关。请验证您的端口,您的进程是否在同一端口上运行。