2013-10-11 68 views
4

我試圖在Windows上啓動兩個ElasticSearch節點。如果我使用多播,那麼節點啓動正確。但是,嘗試使用單播時出現異常。無法在Windows上使用單播啓動兩個ElasticSearch節點

我的設置是:

cluster.name: mycluster 
name.name: NODE1 
node.master: true 
node.data: true 
index.number_of_shards: 5 
index.number_of_replicas: 1 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["node2:9200"] 

cluster.name: mycluster 
name.name: NODE2 
node.master: false # tried true as well 
node.data: true 
index.number_of_shards: 5 
index.number_of_replicas: 1 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["node1:9200"] 

我可以成功啓動ES上的節點1,但是當我試圖在節點2開始ES,我得到的節點1以下異常:

[2013-10-11 15:04:02,307][WARN ][http.netty    ] [NODE1] Caught exception while handling client http traffic, closing connection [id: 0x4061b93e, /10.241.2.96:58768 :> /10.241.1.70:9200] 
java.lang.IllegalArgumentException: empty text 
at org.elasticsearch.common.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:97) 
    at org.elasticsearch.common.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:62) 
    at org.elasticsearch.common.netty.handler.codec.http.HttpRequestDecoder.createMessage(HttpRequestDecoder.java:75) 
    at org.elasticsearch.common.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:189) 
    at org.elasticsearch.common.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:101) 
    at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) 
    at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.cleanup(ReplayingDecoder.java:554) 
    at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.channelDisconnected(FrameDecoder.java:365) 
    at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:102) 
    at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
    at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:74) 
    at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) 
... 

我的環境:

Elastic Search Version on both node1 and node2: 0.90.3 
Java version: 
    java version "1.7.0" 
    Java(TM) SE Runtime Environment (build 1.7.0-b147) 
    Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode) 

任何想法這裏發生了什麼?

感謝, 埃裏克

+0

你開始他們都在同一臺機器上?或不同的機器? – mconlin

+1

另外,unicast.host中的主機名不應該是機器的主機名或IP,而不是其他es節點的名稱? – mconlin

+0

我在不同的機器上啓動實例。我相信主機名應該用於其他節點,因爲這是使節點能夠彼此發現的。 – Eric

回答

3

我做了其他節點的端口設置爲9200的錯誤,我沒有這方面的專家(你可以通過我的問題說),但我認爲9200是端口客戶應該用它來與搜索引擎交互;但其他ES實例默認使用不同的端口(可能是9300)。通過改變:

discovery.zen.ping.unicast.hosts: ["node1:9200"] 

到:

discovery.zen.ping.unicast.hosts: ["node1"] 

工作的事情對我罰款。

+0

你在哪裏改變這個參數? – darkomen

相關問題