【问题标题】:Issue when indexing to elasticsearch from apache nutch从 apache nutch 索引到 elasticsearch 时的问题
【发布时间】: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


    【解决方案1】:

    通过进一步的研究,我得到了解决方案。由于 nutch 的索引器插件(ES 1.4.1)中的版本不匹配而出现错误。

    解决方案之一是从 https://github.com/apache/nutch/blob/master/ 下载源代码,然后按照 src/plugin/ 中给出的说明使用您的弹性服务器版本自定义插件版本indexer-elastic/howto_upgrade_es.txt.

    1. 升级 src/plugin/indexer-elastic/ivy.xml 中的 elasticsearch 依赖

    2. 在 src/plugin/indexer-elastic/plugin.xml 中升级 Elasticsearch 特定的依赖来获取列表 依赖项及其版本执行: $ ant -f ./build-ivy.xml
      $ ls lib/

    3. 使用 ant 或任何其他构建工具从 nutch 源文件夹构建。

    然后我们可以索引到 ElasticSearch 而不会出现这个问题。 干杯:)

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 2021-03-02
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      相关资源
      最近更新 更多