hadoop - 在 docker swarm 外部访问 hdfs

标签 hadoop docker docker-swarm

我创建了一个 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/

相关文章:

docker - 让 NGINX 与 Gunicorn Web 应用程序一起使用

docker - 通过minikube搭建docker多阶段镜像报错: file not found

docker - 无法从不同的docker容器连接到redis

amazon-web-services - 如何使用IAM角色权限让Docker Swarm管理器从AWS ECR中提取图像?

git - 如何从正在运行的 docker 镜像中找到提交哈希

hadoop - 仅限Hadoop map 作业

mysql - 将数据从 Hadoop Cascading Source 加载到 MySQL Sink

hadoop - 在一列上选择不同但返回所有列

docker - 集群Docker Swarm主机

用于大图像处理的 Hadoop