打开elasticsearch时,出现以下configuration错误:
[2015-04-21 20:49:45,635][INFO ][discovery.zen ] [Blackwulf] failed to send join request to master [[Conquistador][HzGNMjroRCuoHsoTyI3zag][elastic02][inet[/10.70.121.114:9300]]], reason [RemoteTransportException[[Conquistador][inet[/10.70.121.114:9300]][internal:discovery/zen/join]]; nested: NotSerializableTransportException[[org.elasticsearch.transport.ConnectTransportException] [Blackwulf][inet[/10.70.112.23:9300]] connect_timeout[30s]; No route to host; ]; ]
即使主机可以通过telnet访问:
[root@elastic05 ~]# telnet 10.70.121.114 9300 Trying 10.70.121.114... Connected to 10.70.121.114. Escape character is '^]'. ^] telnet> quit Connection closed. [root@elastic05 ~]# telnet 10.70.121.114 9200 Trying 10.70.121.114... Connected to 10.70.121.114. Escape character is '^]'. ^] telnet> quit Connection closed.
我也得到甚至本地主机无法find启动时的路由:
[2015-04-21 20:24:18,291][INFO ][node ] [Ezekiel Stane] version[1.4.1], pid[1347], build[89d3241/2014-11-26T15:49:29Z] [2015-04-21 20:24:18,292][INFO ][node ] [Ezekiel Stane] initializing ... [2015-04-21 20:24:18,306][INFO ][plugins ] [Ezekiel Stane] loaded [cloud-aws], sites [] [2015-04-21 20:24:21,558][INFO ][node ] [Ezekiel Stane] initialized [2015-04-21 20:24:21,558][INFO ][node ] [Ezekiel Stane] starting ... [2015-04-21 20:24:21,684][INFO ][transport ] [Ezekiel Stane] bound_address {inet[/0.0.0.0:9300]}, publish_address {inet[/10.70.112.23:9300]} [2015-04-21 20:24:21,696][INFO ][discovery ] [Ezekiel Stane] elasticsearch/f5p3lsxyTfukHZ2E8_G4vQ [2015-04-21 20:24:21,737][WARN ][transport.netty ] [Ezekiel Stane] exception caught on transport layer [[id: 0x3d524f37]], closing connection java.net.NoRouteToHostException: No route to host at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152) at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105) at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79) at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42) at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
我有在elasticsearch.yml列出的主机通过单播而不是组播(我禁用)连接。
给你的群集命名,问题就解决了。
在你的elasticsearch目录下编辑config/elasticsearch.yml 。
取消注释cluster.name: elasticsearch并将其更改为类似于cluster.name: your_hostname
然后尝试再次启动elasticsearch。
No route to host经常意味着你得到一个ICMP行政禁止的消息 – 即。 你正被防火墙拒绝。
在我看到的红帽系统中,它们特别常见,但我希望你也能在别处看到它们。
这样可以更容易区分Connection Refused(这意味着没有任何监听,或者连接被重置 – 可能通过防火墙)。
您可以使用tcpdump -p -nn icmp或类似软件进行validation,并在连接时查找ICMP Administratively Prohibited(ICMPpipe理禁止)消息。
为什么它的价值,你得到非常愚蠢的原因No route to host而不是更容易理解的东西是双重的:
因此,我发现自己必须教育每一位顾客。