hadoop - fs.defaultFS 只监听localhost的8020端口

标签 hadoop hdfs cloudera

我有一个 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/

相关文章:

hadoop - 在 Hive 中执行复杂转换的函数

scala - 在给定时间戳下以星火打开文件

python - 为什么配置单元试图在 hdfs 中写入/用户?

hadoop - 建议hadoop架构

java - 如何在 Cloudera hadoop 中使用外部 jar?

hadoop - pig : is it possible to write a loop over variables in a list?

hadoop - 为什么 Raid 不在 Hadoop 2.x 中?

sql-server - 如何使用 Nifi/HDF 从 MS SQL 读取增量记录

hadoop - webhdfs 创建文件异常

rest - Apache Atlas 休息 API