Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Storm Trident和Kafka集成的喷口错误_Java_Nullpointerexception_Apache Kafka_Apache Storm_Trident - Fatal编程技术网

Java Apache Storm Trident和Kafka集成的喷口错误

Java Apache Storm Trident和Kafka集成的喷口错误,java,nullpointerexception,apache-kafka,apache-storm,trident,Java,Nullpointerexception,Apache Kafka,Apache Storm,Trident,我正在使用OpaqueTridentKafkaSpout来使用来自Kafka的消息。下面是代码。我忽略了最大喷口挂起配置,因为这会导致同一卡夫卡消息以多个批次到达 TridentKafkaConfig tridentKafkaConfig = new TridentKafkaConfig(hosts,properties.getProperty("topic", "mytopic")); tridentKafkaConfig.scheme = new SchemeAsMultiScheme(ne

我正在使用OpaqueTridentKafkaSpout来使用来自Kafka的消息。下面是代码。我忽略了最大喷口挂起配置,因为这会导致同一卡夫卡消息以多个批次到达

TridentKafkaConfig tridentKafkaConfig = new TridentKafkaConfig(hosts,properties.getProperty("topic", "mytopic"));
tridentKafkaConfig.scheme = new SchemeAsMultiScheme(new StringScheme());
OpaqueTridentKafkaSpout kafkaSpout = new OpaqueTridentKafkaSpout(tridentKafkaConfig);
当卡夫卡喷口开始时,我得到了以下错误,但之后运行平稳

2018-05-29 09:47:21.703 o.a.s.util Thread-9-spout-myspout-spout-executor[33][ERROR]异步循环死机! java.lang.RuntimeException:java.lang.NullPointerException 位于org.apache.storm.utils.DisruptorQueue.ConsumerBatchToCursor(DisruptorQueue.java:522) ~[storm-core-1.2.1.jar:1.2.1] 位于org.apache.storm.utils.DisruptorQueue.ConsumerBatchWhenAvailable(DisruptorQueue.java:487) ~[storm-core-1.2.1.jar:1.2.1] 在org.apache.storm.disruptor$consume\u batch\u当可用时调用(disruptor.clj:74) ~[storm-core-1.2.1.jar:1.2.1] 在org.apache.storm.daemon.executor$fn_uu5043$fn_u5056$fn_u5109.invoke(executor.clj:861) ~[storm-core-1.2.1.jar:1.2.1] 在org.apache.storm.util$async_循环$fn__557.invoke(util.clj:484) [storm-core-1.2.1.jar:1.2.1] 在clojure.lang.AFn.run(AFn.java:22)[clojure-1.7.0.jar:?] 在java.lang.Thread.run(Thread.java:748)[?:1.8.0_171]处,由以下原因引起:java.lang.NullPointerException 在org.apache.storm.kafka.spout.trident.KafkaTridentSpoutEmitter.seek上(KafkaTridentSpoutEmitter.java:193) ~[stormjar.jar:?] 在org.apache.storm.kafka.spout.trident.KafkaTridentSpoutEmitter.emitPartitionBatch上(KafkaTridentSpoutEmitter.java:127) ~[stormjar.jar:?] 在org.apache.storm.kafka.spout.trident.kafkatridentSpoutItemitter.emitPartitionBatch上(kafkatridentSpoutItemitter.java:51) ~[stormjar.jar:?] 在org.apache.storm.trident.spout.opaquepartitionedtrientspoutextecutor$Emitter.emitBatch(opaquepartitionedtrientspoutextecutor.java:141) ~[storm-core-1.2.1.jar:1.2.1] 位于org.apache.storm.trident.spout.tridentSpouteTexecutor.execute(tridentSpouteTexecutor.java:82) ~[storm-core-1.2.1.jar:1.2.1] 位于org.apache.storm.trident.topology.TridentBoltExecutor.execute(TridentBoltExecutor.java:383) ~[storm-core-1.2.1.jar:1.2.1] 在org.apache.storm.daemon.executor$fn\u 5043$tuple\u action\u fn\u 5045.invoke(executor.clj:739) ~[storm-core-1.2.1.jar:1.2.1] 位于org.apache.storm.daemon.executor$mk_task_receiver$fn_u4964.invoke(executor.clj:468) ~[storm-core-1.2.1.jar:1.2.1] 在org.apache.storm.disruptor$clojure_handler$reify_4475.onEvent(disruptor.clj:41) ~[storm-core-1.2.1.jar:1.2.1] 位于org.apache.storm.utils.DisruptorQueue.ConsumerBatchToCursor(DisruptorQueue.java:509) ~[storm-core-1.2.1.jar:1.2.1] ... 还有6个


对此有什么建议吗?

您的堆栈跟踪表明您正在点击。

您可以发布整个堆栈跟踪吗?您发布的内容下面可能有一行“起因”,它将告诉您NPE的来源。@StigRohdeDøssing我已经更新了整个堆栈跟踪。Thanks@StigRohdeD我想我的问题与此密切相关,您发布的代码片段与堆栈跟踪不匹配。代码段使用的是storm kafka Trident spout,而堆栈跟踪似乎使用的是storm kafka客户端Trident spout。你在用哪个?@StigRohdeDøssing我在用Storm Kafka客户端。谢谢你有什么建议来解决这个问题?试试固定风暴卡夫卡客户端,来源在这里