2015-11-13 99 views
0

我升級並將舊的配置目錄複製到新版本。我不關心那些新開始的舊索引。我從默認配置中更改的唯一東西是主機IP和羣集名稱。將Elasticsearch 1.4.1升級到2.0相同的配置失敗

network.host: 127.0.0.1 
cluster.name: elasticsearch_pat 

我在我的開發機器上用自定義集羣名稱運行單個節點,所以我沒有衝突。現在,當我啓動ES時,我得到連續的cluster/nodes/info錯誤,它會拋出java.lang.IllegalStateException。

[2015-11-13 10:13:59,347][WARN ][transport.netty   ] [Entropic Man] exception caught on transport layer [[id: 0x6c3170dc, /127.0.0.1:61104 => /127.0.0.1:9300]], closing connection 
java.lang.IllegalStateException: Message not fully read (request) for requestId [109], action [cluster/nodes/info], readerIndex [39] vs expected [57]; resetting 
    at org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:120) 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) 
    at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) 
    at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) 
    at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
    at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:75) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) 
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) 
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) 
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337) 
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

當我檢查與檢測_health,它是綠色的一個節點和一個數據節點,因爲我是一個dev的機器上的本地主機上運行這是正確的。

Elasticsearch現在是否需要驗證?這是非常簡單的配置現在不知何故不足夠?

更新:由於另一個進程試圖訪問Elasticsearch,此錯誤即將到來。當我停止另一個進程時,錯誤停止。該過程可能使用JDBC或1.4.1中提供的其他驅動程序,並從2.0中的二進制工件中刪除。

+0

通常這是某個進程與您的ES羣集通過TCP進行通信並使用與ES運行的不同的Java版本的標誌。 – Val

回答

2

@Val是正確的。當我從1.7.3升級到2.0時,還有其他客戶端節點連接到此羣集。這是生成的確切的錯誤日誌。

對我來說,似乎你正在運行你的應用程序(在localhost中查看你的端口),它仍然使用舊的elasticsearch API版本並創建一個1.4.1版本的客戶端節點,並且它與升級的節點發生衝突,這就是爲什麼你'出錯了。