adoop 0.20.2偽分散式安裝詳解
hadoop有三種執行模式:
偽分散式不需要安裝虛擬機器,在同一臺機器上同時啟動5個程式,模擬分散式。
完全分散式至少有3個節點,其中一個做master,執行名稱節點(namenode)、作業跟蹤器(jobtracker)等主要程式,另外兩個做datanode,執行tasktracker,最好有兩個,否則沒有冗餘,談不上叢集。
下載hadoop 0.20.2安裝包:
http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
解壓後,放置在合適的位置,如/opt/Hadoop-0.20.2,執行以下命令:
tar -zxvf /opt/haddop-0.20.2
x表示展開檔案,-x | --extract | --get 從存檔展開檔案
z表示用gzip對文件進行壓縮或解壓,-z | --gzip | --ungzip 用gzip對存檔壓縮或解壓
-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配置成功。