hadoop為何停止運行失敗?
1,啟動失敗
問題描述:在master上運行start-all.sh之后提示Caused by: java.net.URISyntaxException: Illegal character in authority at index 7: hdfs://master:9000,導致secondarynamenode無法啟動。
問題原因:core-site.xml中<value>hdfs://master:9000 </value>多了一個空格。
解決方法:去掉多余空格。記得更新到其他slave節點,否則slave節點的相關進程會無法啟動。
2,停止失敗
問題描述:運行stop-all.sh之后使用jps依然能查看到jobtracker、namenode等進程。
問題原因:/tmp目錄下有以前使用其他版本留下的文件沒有刪除。
解決方法:su到root用戶,刪除tmp目錄下的所有文件。
3,啟動失敗
問題描述:在master上運行start-all.sh之后提示java.net.BindException。
問題原因:端口被占。
解決方法:lsof -i:9000等在conf中配置的端口,如果找到相應的進程,用kill命令殺掉即可。
4,啟動失敗
問題描述:slave上的datanode和tasktracker無法成功啟動,日志中提示No route to host。
問題原因:master上的防火墻阻止連接。
解決辦法:
1. turn off the firewall
sudo service iptables stop
2. allow the traffic in port 9000
sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
sudo /etc/rc.d/init.d/iptables save
sudo service iptables restart
5,使用失敗
問題描述:用hadoop fs -put file命令時,提示could only be replicated to 0 nodes, instead of 1
問題原因:slave上的防火墻阻止連接
解決辦法:同4,注意:用sudo命令運行service時密碼是當前用戶的密碼。
6,使用失敗
問題描述:slave的reduce一直在copy數據,不能動。
問題原因:/etc/hosts配置中被系統自動加入一行192.168.100.134 slave1 # Added by NetworkManager,覆蓋了手動配置的映射。
解決辦法:注釋該配置即可