我正在运行两个docker容器,一个用于hadoop基本服务,另一个用于flume。服务正在成功运行。我链接了两个容器,环境变量由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/
它说从7ab4ffb30dc0/1.2.3.4到7ab4ffb30dc0:8020的调用在连接异常上失败:java.net.connectexception:连接被拒绝;有关详细信息,请参阅:http://wiki.apache.org/hadoop/connectionrefused
有什么建议吗?
1条答案
按热度按时间myzjeezk1#
您确定hadoop示例正在运行hadoop服务吗?从您的链接,它显示服务器正在响应,但是没有可用的服务。检查日志以确保它正在运行(假设hadoop是示例名):
docker logs hadoop
如果服务实际上正在运行,那么公开的端口可能不是您期望的端口,这取决于您如何启动hadoop示例,如果您运行了类似于以下内容的操作:docker run -P --name=hadoop hadoop
这会将公开的端口Map到随机端口,如果示例链接为名称hadoop:hadoop_端口_8020_tcp_端口#格式端口u端口
设置了多个环境变量,请参阅docker用户指南使用这些变量,您可以这样运行命令:
hadoop fs -ls hdfs://${HADOOP_PORT_8020_TCP_ADDR}:${HADOOP_PORT_8020_TCP_PORT}