簡體   English   中英

專用服務器上的elasticsearch RemoteTransportException

[英]elasticsearch RemoteTransportException on dedicated server

我正在嘗試將Elasticsearch與生產集成,但遇到以下異常。 我在兩個服務器1.7.0_40中都使用的jvm

2015-01-12 21:29:06調試凈值:94-[Whitemane,Aelfyre]已連接到節點[[#transport#-1] [inet [/xxx.xxx.xx.xxx:9300]]] 2015-01 -12 21:29:06 WARN凈值:114-[Whitemane,Aelfyre]消息未完全讀取(響應)[63]處理程序的未來(org.elasticsearch.client.transport.TransportClientNodesService$SimpleNodeSampler$1@4e70a141),錯誤[true ],重置2015-01-12 21:29:06信息傳輸:109-[Whitemane,Aelfyre]無法獲取[#transport#-1] [inet [/xxx.xxx.xx.xxx:9300]的節點信息],正在斷開連接。org.elasticsearch.transport.RemoteTransportException:無法反序列化來自流的異常響應原因:org.elasticsearch.transport.TransportSerializationException:無法反序列化來自org.elasticsearch.transport.netty.MessageChannelHandler的流的異常響應。 org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:125)上的handlerResponseError(MessageChannelHandler.java:171)在org.elasticsearch.common.netty.channel上 org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)上的.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)在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.elastics的org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)的org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268)上的earch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)在org.elasticsearch.common.netty.channel上。 org.elasticsearch.common.netty.channel.socket.nio的Channels.fireMessageReceived(Channels.java:255)在org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)在org.elasticsearch.common.netty.channel.socket.nio。 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.util.ThreadRenamingRunnable.run(的org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)的AbstractNioWorker.run(AbstractNioWorker.java:88) org.elasticsearch.common.netty.util.internal.DeadLockProofWorker的ThreadRenamingRunnable.java:108)java.util.concurrent.ThreadPo的$ 1.run(DeadLockProofWorker.java:42) olExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:724)原因:java.io .InvalidClassException:無法讀取java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java的java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)處的java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)的類描述符:1620)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)at java .io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)at java.io.ObjectInputStream。 java.io.Objec上的readObject0(ObjectInputStream.java:1348) org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:169)處的tInputStream.readObject(ObjectInputStream.java:370)... 23更多原因:java.lang.ClassNotFoundException:org.elasticsearch.ElasticsearchException at java .net.URLClassLoader $ 1.run(URLClassLoader.java:366)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(本機方法)at 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。 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個

從根異常java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException和任何與Elasticsearch 集成 java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchExceptionjava.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException集成)的java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException來看,我猜測是:

  • 您在“生產”系統的類路徑中缺少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版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM