我的错误是这样的,我当时把hdfs配置完成之后呢,通过主机访问的hdfs的50070端口也就是它的web ui是可以访问的,但是当我使用java程序往hdfs中写文件的时候,无法访问,日志的报错信息显示是因为hdfs权限的问题,我当时以为是文件夹没有权限,然后chmod 777给权限,发现还是无法上传文件,然后我又检查了自己虚拟机的防火墙以及网络配置,没有问题,最后就把问题归结到了hdfs本身的配置上来了
我输入命令netstat -tpnl
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1752/master tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 83828/java tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 83828/java tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 83828/java tcp 0 0 127.0.0.1:37383 0.0.0.0:* LISTEN 83828/java tcp 0 0 0.0.0.0:50090 0.0.0.0:* LISTEN 84038/java tcp 0 0 127.0.0.1:8020 0.0.0.0:* LISTEN 83674/java tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 83674/java tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1346/sshd tcp6 0 0 ::1:25 :::* LISTEN 1752/master tcp6 0 0 :::3306 :::* LISTEN 13527/mysqld tcp6 0 0 :::22 :::* LISTEN 1346/sshd
然后发现我的8020端口只能本机访问。
最后解决办法是:
我打开core-site.xml文件
配置如下:
<property> <name>fs.defaultFS</name> <value>hdfs://localhost:8020/</value> </property>
最后我把localhost改成了我的主机名,然后重启hdfs就可以在外面访问了