4

Windows で 2 つの 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"]

node1 で ES を正常に開始できますが、node2 で ES を開始しようとすると、node1 で次の例外が発生します。

[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)

ここで何が起こっているのか、何か考えはありますか?

ありがとう、エリック

4

2 に答える 2

4

9200 はデータ ポートです。

ユニキャスト検出は、制御ポート 9300 から行われます....

http://people.mozilla.org/~wkahngreene/elastic/guide/reference/modules/transport.html

于 2014-03-19T13:26:07.870 に答える
3

私が犯した間違いは、他のノードのポートを 9200 に設定することでした。私はこれについて専門家ではありませんが (私の質問でわかるように)、クライアントが検索エンジンと対話するために使用するポートは 9200 だと思います。ただし、他の ES インスタンスはデフォルトで別のポート (おそらく 9300) を使用します。変更することにより:

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

に:

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

私にとってはうまくいきます。

于 2013-10-14T22:52:32.737 に答える