Hadoop本地开发,9000端口拒绝访问


最近在学习Hadoop,忙了好几天,终于学会了Hadoop的分布式部署。可是在MyEclipse开发中,总是无法远程连接到Hadoop集群的9000端口。今天终于明白哪里配置错误了,在这分享给大家。希望对大家有用。

一、环境说明

  • hadoop-2.7.3
  • jdk1.8.0_112
  • 阿里云 Ubuntu 14.04 64位

二、配置端口

在配置文件是我配置的是9000端口。

配置

三、连接

MyEclipse连接9000代码(需要dfs相关jar包)

连接9000

四、端口访问

之前在网上查了许多相关资料,无外乎是设置防火墙,开放9000端口;关闭防火墙;配置文件换成IP地址;等等。我不能说这些方法不对,至少有些问题确实是防火墙的限制。或者其他,毕竟同一个错误,会有许多引发原因。我的这个方法也只是解决一小部分的问题。首先,利用netstat -tpnl查看的端口开放情况(之前一直没留意是这的问题)。

查看端口

而与之相对于的hosts配置文件为

hosts

通过查看端口发现,9000端口只允许本机访问,我远程连接当然会提示拒绝访问了。可能是Hadoop为了保证集群的安全性,默认的是本集群之间的访问,只允许配置的某一个IP访问吧。于是我想能不能把这个端口放开,允许所以IP访问。于是我把hosts中的文件做了下面的修改。

修改hosts

hadoop-master指向的IP地址指向0.0.0.0,然后重启hadoop查看端口占用。

端口占用

再用MyEclipse-hadoop插件,测试连接成功。

连接成功

注:本人刚开始学习Hadoop,说的不对的地方希望大家指正。同时也希望这个方法对大家有用。另外,这种方法不建议大家在生产环境使用,毕竟任何一个IP地址都可以访问到你的Hadoop文件系统。


  目录