Ubuntu下 Hadoop 1.2.1 配置安裝

嘗試進入大數據領域開發,從目前最火的Hadoop入手是必須的,本文一步步記錄了 Ubuntu 環境安裝Hadoop 1.2.1 ,搭建單機模式以及僞分佈式模式,希望對各位和我一樣的菜鳥有所幫助,共同學習進步,歡迎交流。嘗試2.1安裝失敗,由於文件結構不太一樣缺乏相關資料,也非做運維的,遂放棄改用成熟的hadoop 1.2.1版本。

----------------------------------------單機模式-----------------------------------------

下載:hadoop-1.2.1.tar.gz

解壓:

[plain] view plaincopy
  1. tar -xzvf hadoop-1.2.1.tar.gz   
轉移:

[plain] view plaincopy
  1. mv hadoop-1.2.1/ /opt  
進入conf文件配置環境變量


讓環境變量配置生效source,是source,不是sh,補充下sh和.的區別,參考

[plain] view plaincopy
  1. source hadoop-env.sh   

檢測是否安裝成功

[html] view plaincopy
  1.   

單機版hadoop安裝成功,測試一下

[html] view plaincopy
  1. mkdir input  
[html] view plaincopy
  1. cp -R conf input/  

運行wordcount程序並將結果保存到output

hadoop hadoop-examples-1.2.1.jar 

錯誤: 找不到或無法加載主類 hadoop-examples-1.2.1.jar

hadoop jar hadoop-examples-1.2.1.jar wordcount input output   發現錯誤,粗心害死貓....修改後運行,OK!


單機模式成功, 接下來搭建僞分佈式

-------------------------------------------華麗的分割線 僞分佈式-----------------------------------------

hadoop目錄下創建以下目錄:

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1$ mkdir tmp  
  2. dat@dat-HP:/opt/hadoop-1.2.1$ mkdir hdfs  
  3. dat@dat-HP:/opt/hadoop-1.2.1$ mkdir hdfs/name  
  4. dat@dat-HP:/opt/hadoop-1.2.1$ mkdir hafs/data  

編輯core-site.xml

[plain] view plaincopy
  1. <configuration>  
  2.    <property>  
  3.         <name>fs.default.name</name>  
  4.         <value>hdfs://localhost:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>hadoop.tmp.dir</name>  
  8.         <value>/opt/hadoop-1.2.1/tmp</value>  
  9.     </property>  
  10. </configuration>  

hdfs-site.xml:

[plain] view plaincopy
  1. <configuration>  
  2.   <property>  
  3.         <name>dfs.replication</name>  
  4.         <value>1</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>dfs.name.dir</name>  
  8.         <value>/opt/hadoop-1.2.1/hdfs/name</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>dfs.data.dir</name>  
  12.         <value>/opt/hadoop-1.2.1/hdfs/data</value>  
  13.     </property>  
  14. </configuration>  

mapred-site.xml:

[plain] view plaincopy
  1. <configuration>  
  2.   <property>  
  3.         <name>mapred.job.tracker</name>  
  4.         <value>localhost:9001</value>  
  5.     </property>  
  6. </configuration>  

格式化HDFS(建議只格式化一次,多次格式化據傳後邊會引起問題,本人沒有嘗試...):

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/conf$ source hadoop-env.sh   
  2. dat@dat-HP:/opt/hadoop-1.2.1/conf$ hadoop namenode -format  


啓動Hadoop:

執行執行bin/start-all.sh來啓動所有服務,包括namenode,datanode,start-all.sh腳本用來裝載守護進程

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/bin$ start-all.sh   


用java的jps命令驗證是否安裝成功:

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1$ jps  


少一個DataNode進程沒有啓動,通過查看上邊現實的路徑下的日誌發現:


很明顯,data文件夾的權限不對,修改權限:

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/hdfs$ chmod 755 data  

關閉hadoop,重新啓動:

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/bin$ stop-all.sh  
[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/bin$ start-all.sh   
[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/bin$ jps  


6個進程全部啓動了,此時安裝正常,可以進行Hadoop的相關操作了。


檢查運行狀態:可以通過下面的操作來查看服務是否正常,在Hadoop中用於監控集羣健康狀態的Web界面

http://localhost:50030/     - Hadoop 管理介面
http://localhost:50060/     - Hadoop Task Tracker 狀態
http://localhost:50070/     - Hadoop DFS 狀態


hadoop的僞分佈模式已經安裝成功,再次在僞分佈模式下運行一下WordCount來感受MapReduce過程:

這時注意程序是在文件系統dfs運行的,創建的文件也都基於文件系統:


首先在dfs中創建input目錄

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/conf$ hadoop dfs -mkdir input  
  2. Warning: $HADOOP_HOME is deprecated.  

將conf中的文件拷貝到dfs中的input

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1$ hadoop dfs -copyFromLocal conf/* input  

在僞分佈式模式下運行WordCount

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1$ hadoop jar hadoop-examples-1.2.1.jar wordcount input output  


INFO mapred.JobClient:  map 100% reduce 0% 到這裏卡死不動了。

解決辦法:查詢鳥文論壇帖子(http://stackoverflow.com/questions/10165549/hadoop-wordcount-example-stuck-at-map-100-reduce-0)發現,修改/etc/hosts文件,加入主機名和IP地址的映射。

檢查主機名:

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1/conf$ hostname  


修改/etc/hosts文件:


重新來過:

[plain] view plaincopy
  1. hadoop dfs -rmr output/  
  2. hadoop jar hadoop-examples-1.2.1.jar wordcount input output  
依舊不起作用...........重啓,再重新來過.................ok!!!

oK!!看見沒有,你成功了!!!!!!

檢測一下輸出信息:

[plain] view plaincopy
  1. dat@dat-HP:/opt/hadoop-1.2.1$ hadoop dfs -cat output/*  

ok!!此時僞分佈式系統環境已可以正常使用~~~!

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