單機版搭建Hadoop環境圖文教程詳解

y_keven發表於2014-01-05

前言:

年前,在老大的號召下,我們糾集了一幫人搞起了Hadoop,併為其取了個響亮的口號“雲在手,跟我走”。大家幾乎從零開始,中途不知遇到多少問題,但終於在回家之前搭起了一個擁有12臺伺服器的叢集,並用命令列在該叢集上執行了一些簡單的mapreduce程式。想借此總結我們的工作過程。

安裝過程: 

一、安裝Linux作業系統
二、在Ubuntu下建立hadoop使用者組和使用者
三、在Ubuntu下安裝JDK
四、修改機器名
五、安裝ssh服務
六、建立ssh無密碼登入本機
七、安裝hadoop
八、在單機上執行hadoop

一、安裝Linux作業系統 

我們是在windows中安裝linux系統的,選擇的是ubuntu 11.10,介於有些朋友是第一次安裝雙系統,下面我就介紹一種簡單的安裝方法:

1、下載ubuntu-11.10-desktop-i386.iso映象檔案,用虛擬光碟機開啟,執行裡面的wubi.exe程式,如圖(1)

 

 

2、選擇在widows中安裝,如圖(2)

 

 

3、在彈出的視窗中設定一些具體的引數,自動跟新完成後需要重啟。重啟時,就會出現ubuntu系統的選擇了,系統一般預設開機啟動windows系統,所以這裡要自己手動選擇哦~,進入ubuntu後,系統就自動下載,跟新、安裝了。

(注:安裝的過程中可能會卡在一個階段很長時間(我卡了半個小時),這時我選擇了強制關機,重啟時同樣選擇進入ubuntu。一般第二次就不會卡,具體原因我也不是很清楚,可能和wubi.exe程式有關吧。 在網上看到,有些人認為用wubi.exe安裝ubuntu不是很好,可能這就是它的不好之處吧。不過這是非常簡單的方法,所以我們還是選擇這種安裝方法吧。)


二、在Ubuntu下建立hadoop使用者組和使用者 

這裡考慮的是以後涉及到hadoop應用時,專門用該使用者操作。使用者組名和使用者名稱都設為:hadoop。可以理解為該hadoop使用者是屬於一個名為hadoop的使用者組,這是linux作業系統的知識,如果不清楚可以檢視linux相關的書籍。

1、建立hadoop使用者組,如圖(3)

 

 

2、建立hadoop使用者,如圖(4)

 

 

3、給hadoop使用者新增許可權,開啟/etc/sudoers檔案,如圖(5)

 

 

按Enter鍵後就會開啟/etc/sudoers檔案了,給hadoop使用者賦予root使用者同樣的許可權。在root  ALL=(ALL:ALL)  ALL下新增hadoop  ALL=(ALL:ALL)  ALL,如圖(6)

 

 

三、在Ubuntu下安裝JDK( http://www.linuxidc.com/Linux/2012-06/62078.htm )

四、修改機器名 

每當Ubuntu安裝成功時,我們的機器名都預設為:ubuntu ,但為了以後叢集中能夠容易分辨各臺伺服器,需要給每臺機器取個不同的名字。機器名由 /etc/hostname檔案決定。

1、開啟/etc/hostname檔案,如圖(7)

 


2、回車後就開啟/etc/hostname檔案了,將/etc/hostname檔案中的ubuntu改為你想取的機器名。這裡我取“s15“。重啟系統後才會生效。

五、安裝ssh服務 

這裡的ssh和三大框架:spring,struts,hibernate沒有什麼關係,ssh可以實現遠端登入和管理,具體可以參考其他相關資料。

1、安裝openssh-server,如圖(8)

 

 

(注:自動安裝openssh-server時,可能會進行不下去,可以先進行如下操作:)

 

 

2、更新的快慢取決於您的網速了,如果中途因為時間過長您中斷了更新(Ctrl+z),當您再次更新時,會更新不了,報錯為:“Ubuntu無法鎖定管理目錄(/var/lib/dpkg/),是否有其他程式佔用它?“需要如下操作,如圖(10)

 

 

操作完成後繼續執行第1步。

這時假設您已經安裝好了ssh,您就可以進行第六步了哦~

六、 建立ssh無密碼登入本機 

ssh生成金鑰有rsa和dsa兩種生成方式,預設情況下采用rsa方式。
1、建立ssh-key,,這裡我們採用rsa方式,如圖(11)

 

(注:回車後會在~/.ssh/下生成兩個檔案:id_rsa和id_rsa.pub這兩個檔案是成對出現的)

2、進入~/.ssh/目錄下,將id_rsa.pub追加到authorized_keys授權檔案中,開始是沒有authorized_keys檔案的,如圖(12)

 

 

(完成後就可以無密碼登入本機了。)

3、登入localhost,如圖(13)

 

 

( 注:當ssh遠端登入到其它機器後,現在你控制的是遠端的機器,需要執行退出命令才能重新控制本地主機。)

4、執行退出命令,如圖(14)

 

七、安裝Hadoop 

我們採用的hadoop版本是:hadoop-0.20.203(http://apache.etoak.com/hadoop/common/hadoop-0.20.203.0/),因為該版本比較穩定。

1、假設hadoop-0.20.203.tar.gz在桌面,將它複製到安裝目錄 /usr/local/下,如圖(15)

 

 

2、解壓hadoop-0.20.203.tar.gz,如圖(16)

 

 

3、將解壓出的資料夾改名為hadoop,如圖(17)

 

 

4、將該hadoop資料夾的屬主使用者設為hadoop,如圖(18)

 

 

5、開啟hadoop/conf/hadoop-env.sh檔案,如圖(19)

 

 

6、配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然後加上本機jdk的路徑)

 

 

7、開啟conf/core-site.xml檔案,編輯如下:

  1. <?xml version="1.0"?>   
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>   
  3.   
  4. <!-- Put site-specific property overrides in this file. -->   
  5.   
  6. <configuration>   
  7. <property>     
  8.   <name>fs.default.name</name>     
  9.   <value>hdfs://localhost:9000</value>      
  10.  </property>     
  11. </configuration>     

8、開啟conf/mapred-site.xml檔案,編輯如下:

  1. <?xml version="1.0"?>   
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>   
  3.   
  4. <!-- Put site-specific property overrides in this file. -->   
  5.   
  6.     <configuration>     
  7.      <property>      
  8.       <name>mapred.job.tracker</name>     
  9.       <value>localhost:9001</value>      
  10.      </property>     
  11.     </configuration>    

9、開啟conf/hdfs-site.xml檔案,編輯如下:

  1. <configuration>   
  2. <property>   
  3. <name>dfs.name.dir</name>   
  4. <value>/usr/local/Hadoop/datalog1,/usr/local/hadoop/datalog2</value>   
  5. </property>   
  6. <property>   
  7. <name>dfs.data.dir</name>   
  8. <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>   
  9. </property>   
  10. <property>   
  11. <name>dfs.replication</name>   
  12. <value>2</value>   
  13. </property>   
  14. </configuration>  

10、開啟conf/masters檔案,新增作為secondarynamenode的主機名,作為單機版環境,這裡只需填寫localhost就Ok了。

11、開啟conf/slaves檔案,新增作為slave的主機名,一行一個。作為單機版,這裡也只需填寫localhost就Ok了。

八、在單機上執行hadoop 

1、進入hadoop目錄下,格式化hdfs檔案系統,初次執行hadoop時一定要有該操作,如圖(21)

 

 

當你看到下圖時,就說明你的hdfs檔案系統格式化成功了。

 

 

3、啟動bin/start-all.sh,如圖(23)

 

 

4、檢測hadoop是否啟動成功,如圖(24)

 

 

如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五個程式,就說明你的hadoop單機

版環境配置好了,呵呵,多麼巨集偉的工程呀!

九、 Linux下的快捷鍵: 
Ctrl+Alt+t:彈出終端
Ctrl+空格:中英文輸入法切換

十、Hadoop執行WordCount程式,見 http://www.linuxidc.com/Linux/2012-02/54529.htm


相關文章