主机名解析失败

时间:2015-02-04 07:33:43

标签: 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的My / 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/

它说连接异常时调用从7ab4ffb30dc0 / 1.2.3.4到7ab4ffb30dc0:8020失败:java.net.ConnectException:连接被拒绝;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您确定hadoop实例正在运行hadoop服务,来自您的link,它表明服务器正在响应,但没有可用的服务。检查日志以确保它正在运行(假设hadoop是实例名称):

docker logs hadoop

如果服务实际上正在运行,那么暴露的端口可能不是您期望的端口,这取决于您启动hadoop实例的方式,如果您运行的类似于:

docker run -P --name=hadoop hadoop 这会将公开的端口映射到随机端口,如果实例链接为名称hadoop,则必须使用为您提供端口的环境变量:

HADOOP_PORT_8020_TCP_PORT#format PORT __ PORT

设置了几个环境变量,请参阅Docker User Guide使用这些变量,您可以像这样运行命令:

hadoop fs -ls hdfs://${HADOOP_PORT_8020_TCP_ADDR}:${HADOOP_PORT_8020_TCP_PORT}