我创建了一个docker swarm配置,它由namenode,datanode,资源管理器和yarn worker组成。这些都可以很好地协同工作,我可以从群中的任何容器运行hdfs dfs命令。我还使用yaml的ports部分暴露了端口9000。在我的core-site.xml中,我使用swarm配置中namenode的主机名。
我无法让swarm之外的客户端使用hdfs dfs命令访问集群。我有一个不同的core-site.xml,它具有swarm主机的地址。当我运行命令时,我得到一个java.io.EOFException。
有没有办法让外部客户端连接到docker swarm中运行的hadoop集群?
答案 0 :(得分:0)
结果证明这是通过multihomed network instructions来解决的。似乎namenode似乎有两个网络接口可供使用。一个用于跨越群集的覆盖网络,另一个用于暴露端口。