【发布时间】:2016-08-02 06:22:13
【问题描述】:
我试图从 apache nutch 索引到单节点 ES 集群并得到这个错误。
org.elasticsearch.transport.RemoteTransportException: 失败 反序列化来自流的异常响应原因: org.elasticsearch.transport.TransportSerializationException: 失败 反序列化来自流的异常响应 org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:173) 在 org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:125) 在 org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 在 org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 在 org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 在 org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:296) 在 org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) 在 org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) 在 org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) 在 org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 在 org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 在 org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) 在 org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268) 在 org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:255) 在 org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) 在 org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) 在 org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) 在 org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 在 org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 在 org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 在 org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 引起: java.io.StreamCorruptedException:不支持的版本:1 在 org.elasticsearch.common.io.ThrowableObjectInputStream.readStreamHeader(ThrowableObjectInputStream.java:46) 在 java.io.ObjectInputStream.(ObjectInputStream.java:301) 在 org.elasticsearch.common.io.ThrowableObjectInputStream.(ThrowableObjectInputStream.java:38) 在 org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:170) ... 23 更多
通过进一步的研究,我知道我应该在客户端和 ES 服务器上拥有相同的 jvm 版本。参考:http://jontai.me/blog/2013/06/elasticsearch-remotetransportexception-failed-to-deserialize-exception-response-from-stream/
我使用的是 ES 版本 2.3.2,我的 JVM 版本是 "1.8.0_91"。 当我检查 /plugins/indexer-elastic/plugin.xml 时,指定的版本是 1.4.1。我想知道这可能是问题和可能的解决方案,而不是降级 ES 集群版本。我想继续使用 ES 2.3.2。请帮我解决这个问题。
PS : 我用于索引的命令是 bin/nutch index crawl/crawldb/ -linkdb crawl/linkdb/ crawl/segments/20160801174223/
【问题讨论】:
标签: elasticsearch nutch