I am currently setting up a Hadoop Cluster on four machines. I have one namenode and four datanodes running and they communicate via a docker swarm overlay network.
Now to the problem: When trying to write to HDFS from outside the namenode delegates to the datanodes so the HDFS client tries to access those. But the addresses of the datanodes that the namenode supplies are from the interface of the docker swarm overlay network (in my case 10.0.7.0/24) and for that reason they cannot be reached from outside.
Is there a way to make the namenode return addresses of the datanodes that are reachable from outside? For example use the public IPs of the servers the datanodes are running on?
Thanks in advance!