2016-11-30 140 views
0

我正在尝试使用弹性搜索,并且难以尝试在具有3个弹性搜索实例的单台机器上创建群集。我已经在instanses以下变化:弹性搜索群集

  1. 改变集群名称{cluster.name:ES-栈}上的所有实例
  2. 变化节点名称{node.name:节点-1,node.name :node-2,node.name:node-3}
  3. 更改了http端口{http.port:9203,http.port:9202,http.port:9201}
  4. 更改了ping单播{discovery.zen.ping.unicast.hosts:[“127.0.0.1:9201”,“127.0.0.1:9202”]}

对实例的elasticsearch.yml样子:

# Instance 1 
cluster.name: es-stack 
node.name: node-1 
http.port: 9201 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9202", "127.0.0.1:9203"] 

# Instance 2 
cluster.name: es-stack 
node.name: node-2 
http.port: 9202 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9201", "127.0.0.1:9203"] 

# Instance 3 
cluster.name: es-stack 
node.name: node-3 
http.port: 9203 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9201", "127.0.0.1:9202"] 

这些配置,当我试图启动实例后,我没能获得一个集群环境。在启动弹性搜索实例时,日志文件中的错误跟踪说:

[2016-11-30T23:25:59,320][INFO ][o.e.t.TransportService ] [node-2] publish_address {127.0.0.1:9301}, bound_addresses {[fe80::1]:9301}, {[::1]:9301}, {127.0.0.1:9301} 
[2016-11-30T23:26:02,493][WARN ][o.e.d.z.p.u.UnicastZenPing] [node-2] [1] failed send ping to {#zen_unicast_2#}{_V9wDP7mRBWfMT35KqH63w}{::1}{[::1]:9201} 
java.lang.IllegalStateException: handshake failed with {#zen_unicast_2#}{_V9wDP7mRBWfMT35KqH63w}{::1}{[::1]:9201} 
    at org.elasticsearch.transport.TransportService.handshake(TransportService.java:364) ~[elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.transport.TransportService.connectToNodeLightAndHandshake(TransportService.java:339) ~[elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.transport.TransportService.connectToNodeLightAndHandshake(TransportService.java:313) ~[elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing$2.run(UnicastZenPing.java:419) [elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:444) [elasticsearch-5.0.0.jar:5.0.0] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111] 
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] 
Caused by: org.elasticsearch.transport.ReceiveTimeoutTransportException: [][[::1]:9201][internal:transport/handshake] request_id [1] timed out after [3010ms] 
    at org.elasticsearch.transport.TransportService$TimeoutHandler.run(TransportService.java:840) ~[elasticsearch-5.0.0.jar:5.0.0] 
    ... 4 more 
[2016-11-30T23:26:02,493][WARN ][o.e.d.z.p.u.UnicastZenPing] [node-2] [1] failed send ping to {#zen_unicast_1#}{AZZtXAfATv2xSWaYo9hCWQ}{127.0.0.1}{127.0.0.1:9201} 
java.lang.IllegalStateException: handshake failed with {#zen_unicast_1#}{AZZtXAfATv2xSWaYo9hCWQ}{127.0.0.1}{127.0.0.1:9201} 
    at org.elasticsearch.transport.TransportService.handshake(TransportService.java:364) ~[elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.transport.TransportService.connectToNodeLightAndHandshake(TransportService.java:339) ~[elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.transport.TransportService.connectToNodeLightAndHandshake(TransportService.java:313) ~[elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing$2.run(UnicastZenPing.java:419) [elasticsearch-5.0.0.jar:5.0.0] 
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:444) [elasticsearch-5.0.0.jar:5.0.0] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111] 
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] 
Caused by: org.elasticsearch.transport.ReceiveTimeoutTransportException: [][127.0.0.1:9201][internal:transport/handshake] request_id [2] timed out after [3009ms] 
    at org.elasticsearch.transport.TransportService$TimeoutHandler.run(TransportService.java:840) ~[elasticsearch-5.0.0.jar:5.0.0] 
    ... 4 more 
[2016-11-30T23:26:02,527][INFO ][o.e.c.s.ClusterService ] [node-2] new_master {node-2}{nx5b5yr6TWqxznjXv62wEA}{JC3v2euLRSerB4T7GL0Fyg}{127.0.0.1}{127.0.0.1:9301}, reason: zen-disco-elected-as-master ([0] nodes joined) 
[2016-11-30T23:26:02,588][INFO ][o.e.h.HttpServer   ] [node-2] publish_address {127.0.0.1:9202}, bound_addresses {[fe80::1]:9202}, {[::1]:9202}, {127.0.0.1:9202} 
[2016-11-30T23:26:02,588][INFO ][o.e.n.Node    ] [node-2] started 
[2016-11-30T23:26:02,605][INFO ][o.e.g.GatewayService  ] [node-2] recovered [0] indices into cluster_state 

我无法确定哪些部分我错过了? 如何将所有实例获取到单个集群?

+0

当您运行每个实例时,您是否可以粘贴每个实例的日志文件跟踪 – user3775217

+0

我已经在问题本身的实例中添加了错误日志。 –

回答

2

discovery.zen.ping.unicast.hosts需要数组host:port,这里的端口代表transport.tcp.port而不是http.port。所以,你的设置应该是这样的:

discovery.zen.ping.unicast.hosts: ["127.0.0.1:9302", "127.0.0.1:9303"] 
//note: 9202 became 9302 and so on 

你可以阅读更多有关此设置here

希望这会有所帮助!

+0

这工作。谢谢! http端口用于通过HTTP连接到弹性搜索。在实例之间进行通信弹性搜索使用传输tcp端口。 –

+0

是:)确实! – avr