因此 telnet 实际上是在工作,我的意思是 telnet localhost 25 正在连接;但是 telnet localhost 或 telnet localhost 9000 得到了这样的结果:
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
nmap 结果:
$ nmap localhost
Starting Nmap 6.00 ( http://nmap.org ) at 2013-10-03 00:54 MSK
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00030s latency).
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 992 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
587/tcp open submission
631/tcp open ipp
3306/tcp open mysql
5432/tcp open postgresql
6566/tcp open sane-port
9000端口上的nmap:
$ nmap -p 9000 localhost
Starting Nmap 6.00 ( http://nmap.org ) at 2013-10-03 00:55 MSK
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000040s latency).
rDNS record for 127.0.0.1: localhost.localdomain
PORT STATE SERVICE
9000/tcp closed cslistener
所以问题是如何打开必要的端口,我使用的是 Ubuntu 13.04;尝试禁用 ufw,尝试使用 iptables;但没有任何帮助。甚至不知道该怎么做...
我需要 9000 端口用于 Hadoop;如果不打开 9000 端口,我就无法访问 fs
答案1
原因connection refused
很简单 - 端口 9000 未被使用(未打开)。
使用命令 =>lsof -i :9000
查看哪个应用程序正在使用该端口。如果结果为空(返回值 1),则表示未打开。
您甚至可以使用 netcat 进一步测试。
在终端会话 1 中列出端口 9000
nc -l -p 9000
在另一个会话中,连接到它
$ lsof -i :9000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nc 12679 terry 3u IPv4 7518676 0t0 TCP *:9000 (LISTEN)
$ nc -vz localhost 9000
Connection to localhost 9000 port [tcp/*] succeeded!
因此,您需要修复您的 Hadoop 设置,并确保所有必要的守护进程/服务都已正确启动,然后才能连接使用 HDFS。
注意:这不是 telnet 或 iptables 问题,基本上是 TCP/IP 基础知识。请将问题更改为“连接到端口 9000 问题”。
更新
i need 9000 port for hadoop; I can't access fs without opened 9000 port
因此根据上下文,我的理解是 HDFS 的名称节点应该使用端口 9000。因此请检查您的 Hadoop/HDFS 配置文件并启动服务。
在这个阶段 iptables 是不相关的,因为该端口根本没有使用。
您可以运行iptables -L -vn
以确保没有规则生效。您可以刷新过滤表 INPUT 链以确保sudo iptables -P INPUT ACCEPT && sudo iptables -F -t filter
答案2
如果它对任何人有帮助,我通过再次格式化名称节点解决了类似的问题:
hdfs namenode -format
答案3
我也遇到过同样的问题。起初,使用“hdfs namenode -format”时一切正常,尽管只有一次。我使用“/usr/hadoop-2.9.0/sbin/start-dfs.sh”(和 stop-dfs.sh)启动 Hadoop。就在我开始使用“/usr/hadoop-2.9.0/sbin/start-all.sh”(在应用“hdfs namenode -format”之后)时,Hadoop 开始使用 9000 端口。“奇怪的事情!”