I'm having some problems setting up a 1.2.1 ES cluster. I have two nodes, each one in a different data center/network.
One of the nodes is behind a NAT address, so I set network.publish_host to de NAT address.
Both nodes connect to each other without problems. The issue is when the node behind the NAT address tries to connect to himself. In my network, he doesn't know his NAT address and can't solve it. So I get the exception:
[2014-06-17 12:58:19,681][WARN ][cluster.service ] [vm-motisqaapp02] failed to reconnect to node [vm-motisqaapp02][4oSfsIaBTSyQWdnxiTt7Cw][vm-motisqaapp02.***][inet[/10.10.1.135:9300]]{master=true}
org.elasticsearch.transport.ConnectTransportException: [vm-motisqaapp02][inet[/10.10.1.135:9300]] connect_timeout[30s]
at org.elasticsearch.transport.netty.NettyTransport.connectToChannels(NettyTransport.java:727)
at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:656)
at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:624)
at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:146)
at org.elasticsearch.cluster.service.InternalClusterService$ReconnectToNodes.run(InternalClusterService.java:518)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.elasticsearch.common.netty.channel.ConnectTimeoutException: connection timed out: /10.10.1.135:9300
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:137)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83)
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)
... 3 more
vm-motisqaapp02 NAT address is 10.10.1.135, but locally it can't solve this address. Is there any way that I can setup other IP to comunicate locally?
The firewall on the node is off, and he can't comunicate with himself. The problem is:
vm-motisqaapp02 has the local address 172.16.3.81 with the NAT 10.10.1.135. But, with the current data center definitions, it can't solve the 10.10.1.135 doesn't recognizing itself.
Can I configure different adresses for network.publish host ? One for comunicating with outside nodes and another with itself?
The firewall on the node is off, and he can't comunicate with himself. The
problem is:
vm-motisqaapp02 has the local address 172.16.3.81 with the NAT 10.10.1.135.
But, with the current data center definitions, it can't solve the
10.10.1.135 doesn't recognizing itself.
Can I configure different adresses for network.publish host ? One for
comunicating with outside nodes and another with itself?
If we have a ES cluster in two different networks and a node doesn't "know" his foreign address (NAT), there's no way to configure the transport layer on cluster to comunicate without problems?
If we have a ES cluster in two different networks and a node doesn't "know"
his foreign address (NAT), there's no way to configure the transport layer
on cluster to comunicate without problems?
OK, that means that ES clusters don't work with nodes in different networks, when at least one of them has a NAT address to comunicate with the other, right?
If so, I need to change the architecture of my solution.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.