adoop 0.20.2僞分佈式安裝詳解java
hadoop有三種運行模式:node
僞分佈式不須要安裝虛擬機,在同一臺機器上同時啓動5個進程,模擬分佈式。算法
徹底分佈式至少有3個節點,其中一個作master,運行名稱節點(namenode)、做業跟蹤器(jobtracker)等主要進程,另外兩個作datanode,運行tasktracker,最好有兩個,不然沒有冗餘,談不上集羣。apache
下載hadoop 0.20.2安裝包:vim
http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz服務器
解壓後,放置在合適的位置,如/opt/Hadoop-0.20.2,執行如下命令:ssh
tar -zxvf /opt/haddop-0.20.2分佈式
x表示展開文件,-x | --extract | --get 從存檔展開文件工具
z表示用gzip對文檔進行壓縮或解壓,-z | --gzip | --ungzip 用gzip對存檔壓縮或解壓oop
-v | --verbose 詳細顯示處理的文件
-f | --file [HOSTNAME:]F 指定存檔或設備(缺省爲 /dev/rmt0)
若是指定解壓目錄,則最一個字符應當是「/」,不然就是文件了
進入Hadoop-0.20.2目錄
vim conf/Hadoop-env.sh
其中的conf目錄是config的縮寫,一般是用來放置配置文件的目錄,不少開源軟件習慣於使用這個目錄名稱。Hadoop版本不一樣,配置文件可能也不一樣,要根據實際狀況有所調整。
解壓後,進入Hadoop-0.20.2目錄,進行配置
本文配置這四個文件。
修改hadoop-env.sh文件
進入conf目錄,找到圖中的三個文件
vim hadoop-env.sh
找到JAVA_HOME那一項,或修改,或增長,由你選擇,最後使
export JAVA_HOME=你的java目錄
這一行生效。
此文件暫時僅配置這一項便可。
修改core-site.xml文件
而後
vim core-site.xml
最初的<configuration>項是空的,僞分佈式徹底按照圖中的<property>部分添加便可。
徹底分佈式要把hdfs:項的主機名部分換成對應的IP或主機名,無論是什麼,不會是localhost,此處要注意。
其中的fs.default.name用來指定namenode的IP地址和端口,用於和對應的節點聯繫。
修改hdfs-site.xml文件
vim hdfs-site.xml
與core-site相同,第一次進入時<configuration>項是空的,僞分佈式徹底按照紅圈部分添加便可。徹底分佈式要修改dfs.replication部分的value,由於hadoop會往多個節點中複製數據用於備份,此處設置的是最大份數,也就是數據節點的數量,也就是小弟的數量,僞分佈式只有一個節點,因此是1,寫多了也沒用。dfs.data.dir是數據節點的數據的存放位置。
其它參數很少講。
修改mapred-site.xml
vim mapred-site.xml
做業跟蹤器的位置,端口默認,無須修改。做業跟蹤器是整個mapreduce系統調度的核心。
僞分佈式照搬上圖,徹底分佈式修改主機名。
其它參數,暫時不動。
生成SSH密鑰對
- 輸入su,切換到root用戶
- cd /root,進入root目錄
- 運行ssh-kengen -t rsa
給root用戶建立一對密鑰,公鑰和私鑰,不對稱(不同),公鑰可公開,別人拿到公鑰後,可對文件須要加密的內容進行加密,而後傳給服務器,服務器可用私鑰解密。公鑰加密的,只有私鑰才能解密。反之亦然,能夠用私鑰加密,用公鑰能夠解密,私鑰自己沒法解密,但這樣作沒有意義。
拿到公鑰,反推私鑰,基本上不可能,以目前的計算能力,須要幾百年。
RSA算法,產生密鑰過程時間很短,但反推消耗時間很是長。例如,兩個上千位的素數相乘,所獲得的結果,若是反推,可能性太多,只能逐一嘗試,這樣就會消耗很是長的時間。
Enter file in which to save the key,這一句是問把生成的公鑰和私鑰存放在哪一個文件,若是輸入a,則生成a.pub和a兩個文件。若是不輸入,直接回車,則生成默認文件名id_rsa.pub和id_rsa。
可使用任何編輯工具查看它們的內容,好比cat id_rsa.pub,裏面是人類沒法理解的字符串。
而後執行命令:
cp id_isa.pub authorized_keys
authorized_keys中存在id_rsa.pub公鑰,就能夠免密碼連入
至此,hadoop0.20.2的僞分佈式就配完了。
格式化分佈式文件系統
hadoop目錄下執行bin/hadoop namenode -format
此操做的目的在於,在「名稱節點」上創建一系列結構,用來存放整個HDFS的元數據,
出現綠圈的提示has been successfully formatted便是配置成功。
下面在hadoop目錄下執行如下命令:
bin/start-all.sh
(若是進入bin目錄,而後執行start-all.sh,會報「未找到命令」)
若是沒有看到denied之類的提示,就是啓動成功了。
檢測守護進程啓動狀況
在root用戶下,使用java的jps,會看到相似如下的提示:
同樣的規則,不能進入到java的bin目錄下執行jps,而是java目錄下執行bin/jps
表示僞分佈式hadoop0.20.2配置成功。