1.集羣搭建時,配置master無密碼登錄slave時,須要注意幾個目錄的權限。java
http://www.linuxidc.com/Linux/2012-07/65253.htmnode
2.hadoop集羣啓動遇到的相關問題linux
(1)一直報錯property標籤缺乏/,修改三個配置文件後也沒用,此時須要重啓節點web
(2)使用start-all.sh啓動整個集羣之後,DataNode節點的DataNode和TaskTracker進程過幾秒鐘之後就關閉,節點死亡。
日誌中報java.net.NoRouteToHostException.這是因爲防火牆的緣由,須要關閉NameNode的防火牆。
見:http://www.linuxidc.com/Linux/2012-05/59747p2.htmoop
關閉防火牆第一種方式:service iptables stop 當即生效,重啓後失效spa
關閉防火牆第二種方式:cfkconfig iptables off 重啓後永久生效(很明顯咱們應該選第二種).net
(3)NameNode啓動失敗,日誌報錯:java.io.FileNotFoundException:/home/node1/name/current/VERSION(Permission
denied),這是current權限不對,通常是因爲中途切換到root嘗試啓動,致使root更改了此文件夾。用chmod修改回來便可
。見:http://hi.baidu.com/kqogje/item/417f8eab8496fb258819d371
(4)使用start-all.sh命令時,提示 HADOOP_HOME is deprecated.
解決辦法:在/etc/profile中設置Hadoop環境變量時,不要用HADOOP_HOME,改用HADOOP_INSTALL
爲了使node1用戶能在任意目錄下運行start-all.sh等,須要在/etc/sudoers中添加 node1 ALL(ALL) ALL,同時要
添加HADOOP環境變量
(5)若是DataNode沒法啓動並且報錯namespaceID不一致,則是由於頻繁的格式化NameNode致使的。
NameNode的/home/node1/name/current/VERSION中的namespaceID必須與
DataNode的/home/node1/data/current/VERSION中的namespaceID一致。
解決辦法:刪掉namenode的name與tmp目錄,刪掉datanode的data和另外一個目錄。從新格式化namenode
(6)爲了在hadoop的web端能正常訪問全部的頁面,datanode也要關閉防火牆,
用root賬戶執行命令:service iptables stop日誌