Hadoop集群分布在不同的子networking(Docker + Flannel)

我想在使用Docker的多裸机群集中安装Hadoop 2.3.0。 我有一个主容器和一个从容器(在第一个设置中)。 当Master和Slave容器在同一个主机(因此,相同的Flannel子网)时,Hadoop可以正常工作。 但是,如果主和从属于不同的裸机节点(因此,不同的绒布子网),它根本不起作用(我得到一个连接拒绝错误)。 这两个容器都可以ping通并相互通信,所以没有连接问题。 出于某种原因,hadoop似乎需要集群中的所有节点都在同一个子网中。 有没有办法避开这个?

谢谢

我认为有单独的绒布子网中的节点引入了一些NAT相关的规则,导致这样的问题。

看到下面的链接似乎已经解决了类似的问题。Re:networking在创buildHDFS集群时的问题。

Hadoop使用一堆其他端口进行节点之间的通信,上面假设这些端口是畅通的。

ssh和ping是不够的。 如果你有iptables或者其他的防火墙,你需要禁用或者打开端口。 只要主机可以相互通信并且端口是开放的,您就可以设置集群。 运行telnet <namenode> <port>以确保主机在所需的端口上通信。