我想使用spark-streaming获取kafka数据并写入Es。我使用 5.4 java API。我的环境是spark_2.1.1(独立),kafka是0.10.0.1,es是5.4.1。我可以正确获取kafka数据。但是当我尝试向 Es 写入数据时,它显示一些错误:
WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, xxx): java.lang.NoSuchMethodError: io.netty.util.internal.ObjectUtil.checkPositive(ILjava/lang/String;)I at io.netty.util.NettyRuntime$AvailableProcessorsHolder.setAvailableProcessors(NettyRuntime.java:44) at io.netty.util.NettyRuntime$AvailableProcessorsHolder.availableProcessors(NettyRuntime.java:70) at io.netty.util.NettyRuntime.availableProcessors(NettyRuntime.java:98) at org.elasticsearch.transport.netty4.Netty4Utils.setAvailableProcessors(Netty4Utils.java:83) at org.elasticsearch.transport.netty4.Netty4Transport.(Netty4Transport.java:138) at org.elasticsearch.xpack.security.transport.netty4.SecurityNetty4Transport.(SecurityNetty4Transport.java:65) at org.elasticsearch.xpack.security.Security.lambda$getTransports$13(Security.java:779) at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:176) at org.elasticsearch.client.transport.TransportClient.(TransportClient.java:268) at org.elasticsearch.transport.client.PreBuiltTransportClient.(PreBuiltTransportClient.java:127) at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:55) at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:50) at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:46)
但是我发现我有这个方法,就像这样:
Maven:io.netty:netty-all:4.1.11.Final 和 Maven:io.netty:netty-common:4.1.11.Final
,它们都有正确的方法。
出于安全原因,我的代码如下,xxx:
val esc = new PreBuiltXPackTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("xxx"), xxx))
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("xxx"), xxx))
最佳答案
您有两个具有 ObjectUtil 类的 jar。 JVM 在运行时决定类,通常会选择它获得的第一个类。我相信另一个来自 netty-all jar。你能检查一下依赖树吗?
关于java - 关于elasticsearch java api错误的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44557167/