Linux CentOS下Hadoop分佈式安裝筆記2

      上一次在一臺服務器成功完成了Linux Cent OS 5.0下 Hadoop僞分佈式的安裝。本次用3臺服務器進行進一步測試,其中一臺服務器做爲master,namenode,jobtracker,其它兩臺做slave,datanode,tasktracker。

      此次環境搭建的方法與僞分佈式基本一致,有幾處不同:1. master namenode的/usr/local/hadoop/hadoop-0.20.2/conf目錄下編輯slaves文件,加入兩個datanode節點的ip;2. master 與slave1、slave2之間建立ssh無密碼登錄:首先在這三臺服務器上用root 賬戶登錄,在家目錄下執行如下命令[root@master ~]# ssh-keygen  -t  rsa 自動在.ssh目錄下生成私鑰 id_rsa 和公鑰 id_rsa.pub。將slave1與slave2生成的公鑰copy到master的.ssh目錄下並重命名爲id_rsa.pub_slave1 和 id_rsa.pub_slave2 ,再將master自身生成的公鑰 id_rsa.pub以及id_rsa.pub_slave1 和 id_rsa.pub_slave2 全部追加給authorized_keys: [root@master .ssh]# cat id_rsa.pub_slave1 >> authorized_keys ;cat id_rsa.pub_slave2 >> authorized_keys ;cat id_rsa.pub >> authorized_keys ;完成後,master通過ssh登錄slave1和slave2就無需密碼錄了,這樣做的好處是,當你在master上啓動/bin/start-all.sh進程時,就不會提示讓你輸入datanode節點的密碼,比較方便。

       其它的配置都無需做太多修改,在master namenode上搭建好環境後,可以將hadoop-0.20.2文件夾全部copy到slave1和slave2 的 /usr/local/hadoop/目錄下。

       全部完成後,格式化文件系統 [root@master bin]# hadoop namenode -format,並在master節點/usr/local/hadoop/hadoop-0.20.2/bin啓動進程start-all.sh。這裏出現了兩個小問題:1. 就是進程啓動後不久,50070端口會自動關閉,且namenode進程也會關閉;2.在slave1和slave2上jps查看進程,datanode節點無法正常啓動。多次嘗試無果,諮詢了博友崢狼,在此要感謝博友崢狼的無私幫助。

      下面說下這兩個小問題的具體解決方法:1. 在master節點/usr/local/hadoop/hadoop-0.20.2/logs目錄下查看了一下namenode的日誌,發現報錯17:14:43,330 ERROR
org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.IOException:
Incomplete HDFS URI, no host: hdfs://master_namenode:54310。
按照崢狼說的方法,將原服務器名稱master_namenode去掉下劃線,統一改爲純字母。再重新格式化文件系統,重啓進程,namenode正常啓動。  2 . 關於slave節點datanode進程無法啓動的問題,和僞分佈式採用的解決方法一樣,將/usr/local/hadoop/hdfs/data目錄下的文件全部清空。再在master節點格式化文件系統,重啓進程。在Web界面登錄,可正常訪問Hadoop運行界面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章