我有一个 CDH4.3 一体机启动并运行,我正在尝试远程安装一个 hadoop 客户端。我注意到,在不更改任何默认设置的情况下,我的 hadoop 集群正在监听 127.0.0.1:8020
。
[cloudera@localhost ~]$ netstat -lent | grep 8020
tcp 0 0 127.0.0.1:8020 0.0.0.0:* LISTEN 492 100202
[cloudera@localhost ~]$ telnet ${all-in-one vm external IP} 8020
Trying ${all-in-one vm external IP}...
telnet: connect to address ${all-in-one vm external IP} Connection refused
[cloudera@localhost ~]$ telnet 127.0.0.1 8020
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'
我的远程机器有所有配置(core-site.xml, hdfs-site.xml
)指向${all-in-one vm external IP}
。当我从远程客户端运行某些东西时,我得到了这个:
└ $ ./bin/hdfs --config /home/${myself}/hadoop-2.0.0-cdh4.3.0/etc/hadoop dfs -ls
13/10/27 05:27:53 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: Call From ubuntu/127.0.1.1 to ${all-in-one vm external IP}:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
我更改了我的 hadoop 一体机 vm:
/etc/hadoop/conf
下的 core-site.xml 和 hdfs-site.xml
from:localhost.localdomain
-> $ {all-in-one vm external IP},
但是重启 hdfs 后,它仍然监听 localhost 8020。有什么想法吗?我怎样才能让它在 8020 而不是本地主机上收听 ${external IP}。
最佳答案
您应该能够直接将属性 dfs.namenode.rpc-address
调整为 0.0.0.0:8020
以使 NameNode Client IPC 服务监听所有接口(interface),或将其设置为您的特定 IP 以使其仅在那里收听。
也就是说,多合一虚拟机外部 IP
更改您所说的应该有效,但由于问题没有您的确切配置和日志,我无法说明原因。
关于hadoop - fs.defaultFS 只监听localhost的8020端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19618242/