【发布时间】:2018-07-24 16:24:31
【问题描述】:
获取 NullPointerException:
java.lang.NullPointerException
at org.elasticsearch.action.bulk.BulkRequest.validate(BulkRequest.java:604)
at org.elasticsearch.action.TransportActionNodeProxy.execute(TransportActionNodeProxy.java:46)
at org.elasticsearch.client.transport.TransportProxyClient.lambda$execute$0(TransportProxyClient.java:59)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:250)
at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:59)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:363)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:408)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:54)
我有一个场景,多个并发任务在 Spark Streaming Application 的 4 个执行程序中运行,每个执行程序都从 Kafka 读取数据,准备批量并摄取 ES 索引中的批量记录。我第一次收到这些奇怪的 NullPointerException 与其中一些记录,但它们在第二次运行中被成功处理。
谁能告诉我为什么会这样。
【问题讨论】:
-
您是否考虑过仅使用 Kafka Connect(它是 Apache Kafka 的一部分)将数据从 Kafka 流式传输到 Elasticsearch?看看:speakerdeck.com/rmoff/…
-
到目前为止,我们正在使用 Spark Kafka Streaming 作为我们当前工具堆栈的一部分。但这确实是您分享的内容,将看看它。谢谢!
标签: scala apache-spark elasticsearch apache-kafka