我无法连接到 Hadoop 端口 9000

我无法连接到 Hadoop 端口 9000

因此 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 端口。“奇怪的事情!”

相关内容