我的錯誤是這樣的,我當時把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就可以在外面訪問了
