【问题标题】:elasticsearch RemoteTransportException on dedicated server专用服务器上的 elasticsearch RemoteTransportException
【发布时间】:2015-01-13 05:55:34
【问题描述】:

我正在尝试将 elasticsearch 与生产集成,但出现以下异常。 我在两个服务器 1.7.0_40 中都使用 jvm

2015-01-12 21:29:06 DEBUG netty:94 - [Whitemane, Aelfyre] 连接到 节点 [[#transport#-1][inet[/xxx.xxx.xx.xxx:9300]]] 2015-01-12 21:29:06 WARN netty:114 - [Whitemane, Aelfyre] 消息未完全阅读 [63] 处理程序的(响应) 未来(org.elasticsearch.client.transport.TransportClientNodesService$SimpleNodeSampler$1@4e70a141), 错误 [true],重置 2015-01-12 21:29:06 INFO transport:109 - [Whitemane, Aelfyre] 无法获取节点信息 [#transport#-1][inet[/xxx.xxx.xx.xxx:9300]],正在断开连接... org.elasticsearch.transport.RemoteTransportException:未能 反序列化来自流的异常响应原因: org.elasticsearch.transport.TransportSerializationException: 失败 反序列化来自流的异常响应 org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:171) 在 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:560) 在 org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787) 在 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:560) 在 org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555) 在 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:107) 在 org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) 在 org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88) 在 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:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:724) 引起: java.io.InvalidClassException:未能读取类描述符 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) 在 org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:169) ... 23 更多原因:java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.elasticsearch.common.io.ThrowableObjectInputStream.loadClass(ThrowableObjectInputStream.java:93) 在 org.elasticsearch.common.io.ThrowableObjectInputStream.readClassDescriptor(ThrowableObjectInputStream.java:67) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1599) ... 34 更多

【问题讨论】:

  • 您介意提供有关此方案的更多详细信息吗?一个没有细节的句子的简单堆栈跟踪对于stackoverflow来说并不是一个很好的帖子。 “将elasticsearch与生产集成”你是什么意思?这是什么ES版本?
  • 我有服务器 A 和所有服务和弹性搜索,现在我想将弹性搜索分离到另一台服务器 B。我在两台服务器上都有 jdk 1.7.0_40,弹性搜索 0.20.5 安装在服务器 A 和服务器 B 上的 elasticseacrh 1.4.2。现在,当我尝试从服务器 B 调用 A 上的索引创建服务时,在服务器 A 上显示上面的异常。
  • 在下面查看我的答案。你有不同版本的 Elasticsearch,更何况你有巨大的版本差异。这很可能是您得到该异常的原因。

标签: java exception elasticsearch


【解决方案1】:

从根异常 java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException 以及您将 Elasticsearch 与(将 elasticsearch 与生产集成)集成的任何内容来看,我猜测:

  • 您的“生产”系统的类路径中缺少 elasticsearch.jar,或者您认为它在类路径中,但实际上并非如此
  • 您正在使用不同的 Elasticsearch 版本(服务器有一个版本,您的“生产”系统使用另一个版本的 ES jar

在 Elasticsearch 0.20.5 中,这是有问题的类:https://github.com/elasticsearch/elasticsearch/blob/v0.20.5/src/main/java/org/elasticsearch/ElasticSearchException.java。注意类的名称 - ElasticSearchException(大写字母“S”)。

在 Elasticsearch 1.4.2 中,类名已更改:https://github.com/elasticsearch/elasticsearch/blob/v1.4.2/src/main/java/org/elasticsearch/ElasticsearchException.java。注意类的名称 - ElasticsearchException(小写“s”)。

因此,您确实需要在两台服务器上使用相同的 Elasticsearch 版本。

【讨论】:

    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 2016-06-17
    • 2020-03-09
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    相关资源
    最近更新 更多