hadoop - 主机名解析失败

标签 hadoop docker

我正在运行两个 docker 容器,一个用于 hadoop 基本服务,另一个用于水槽。服务正在成功运行。我链接了两个容器 env 变量由 docker 自动设置成功。

1.2.3.4    7ab4ffb30dc0
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

这是我的 hadoop 的/etc/hosts 文件。当我运行时
hadoop fs -ls /
hadoop fs -ls hdfs://127.0.0.1:8020/

工作正常。但如果我跑
hostname

它返回 7ab4ffb30dc0

所以我尝试了
hadoop fs -ls hdfs://1.2.3.4:8020/

它说 Call From 7ab4ffb30dc0/1.2.3.4 to 7ab4ffb30dc0:8020 failed on connection exception: java.net.ConnectException: Connection denied;更多详情见:http://wiki.apache.org/hadoop/ConnectionRefused

有什么建议么?

最佳答案

您确定 hadoop 实例正在运行 hadoop 服务吗,来自您的 link ,它表明服务器正在响应,但没有可用的服务。检查日志以确保它正在运行(假设 hadoop 是实例名称):
docker logs hadoop
如果服务实际上正在运行,那么暴露的端口可能不是您期望的端口,这取决于您如何启动 hadoop 实例,如果您运行类似于:
docker run -P --name=hadoop hadoop这会将暴露的端口映射到随机端口,如果实例链接为名称 hadoop,您必须使用为您提供端口的环境变量:

HADOOP_PORT_8020_TCP_PORT # 格式 PORT__PORT

设置了几个环境变量,见Docker User Guide使用这些变量,您可以像这样运行命令:
hadoop fs -ls hdfs://${HADOOP_PORT_8020_TCP_ADDR}:${HADOOP_PORT_8020_TCP_PORT}

关于hadoop - 主机名解析失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28315859/

相关文章:

hadoop - 如何理解文件读写过程中的 "hdfs client"?

hadoop - Google Compute 引擎中的职位跟踪 URL 不起作用

mysql - Docker-compose mysql 似乎无法识别环境变量 MYSQL_RANDOM_ROOT_PASSWORD

mysql - Docker - 使用环境变量启动容器

ruby-on-rails - 在特定端口上运行Docker容器

hadoop - 完成设置后未在单节点 hadoop 集群中运行 Wordcount 作业

从元数据备份中恢复 Hadoop NameNode

docker - 创建一个允许容器之间通信但不能访问Internet的网络

windows - 在 Docker for Windows 中运行正常的 Win32 应用程序

hadoop - 使用命令行(CDH 5)启动Hadoop服务