我创建了一个 docker swarm 配置,它由 namenode、datanode、资源管理器和 yarn worker 组成。这些都可以很好地协同工作,我可以从 swarm 中的任何容器运行 hdfs dfs 命令。我还使用 yaml 的端口部分公开了端口 9000。在我的 core-site.xml 中,我使用了 swarm 配置中的 namenode 的主机名。
我无法让集群之外的客户端使用 hdfs dfs 命令访问集群。我有一个不同的 core-site.xml,其中包含 swarm 的主机地址。当我运行命令时,我得到一个 java.io.EOFException。
有没有办法让外部客户端连接到在 docker swarm 中运行的 hadoop 集群?
最佳答案
原来这是通过遵循 multihomed network instructions 来解决的。 .在namenode看来,它似乎有两个网络接口(interface)可供使用。一个用于跨群的覆盖网络,另一个用于暴露端口。
关于hadoop - 在 docker swarm 外部访问 hdfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48450292/