參考劉鵬的《實戰Hadoop》一書,按照hadoop 0.20.2幾個注意的地方。數據庫
第一,首先理解Hadoop中的幾個後臺進程。服務器
NameNode,Secondary NameNode,JobTracker,TaskTracker,DataNode這幾個角色。ssh
NameNode:負責如何切分數據塊,和切完放哪一個節點。它對內存和I/O集中管理。ide
這個進程部署在Master節點上,是一個單點,它掛了整個系統都掛了。oop
Secondary NameNode:和NameNode同樣,輔助程序。每一個集羣都有一個,它與NameNode進行通信,按期保存HDFS元數據快照,當NameNode故障能夠做爲備用NameNode使用。它也是部署在Master節點上。blog
JobTracker負責調度做業,它決定哪些文件由哪些節點運行,而且監聽TaskTracker發送來的心跳。當收不到心跳,即認爲某個task失敗,就會決定重啓task。每一個集羣只有一個JobTracker。它是部署在Master節點上的。進程
上述三個進程都是部署在Master節點上的,而TaskTracker和DataNode進程進程是集羣中各個幾點都須要部署的。ip
DataNode負責將HDFS數據塊讀寫到本地文件系統。當客戶端讀寫某個數據庫的時候,由NameNode告訴客戶端去那個DataNode進行,而後客戶端直接與這個DataNode的服務器通訊,並操做相關的數據塊。內存
TaskTracker也是位於從節點的,它負責獨立執行具體的Task,每一個從節點只能有一個TaskTracker,可是每一個TaskTracker能夠產生多個Java虛擬機,用於並行處理多個map和reduce認爲。TaskTracker還會和JobTracker交互,JobTasker負責分配Task,而且檢測TaskTracker的心跳,若是沒有心跳,就認爲已經崩潰,並將認爲分配給其餘的TaskTracker。hadoop
各個進程的部署圖以下:
具體的安裝環節,能夠參考書中的步驟,可是有幾個點須要注意。
主機和從機統一建立專門的運行hadoop的用戶grid, 設置SSH的免密碼登錄機制,能夠參考http://chenlb.iteye.com/blog/211809。將全部的機器上的公鑰文件上裏的內容,都統一整合到一個authorized_keys文件,以此實現互相免密碼登錄ssh。
啓動hadoop的時候,注意要以grid用戶登陸,在grid用戶的主目錄下進行操做,有時權限的問題,此時要注意將主機和從機的hadoop文件夾的owner設置爲grid用戶和組。執行 chown -R grid:grid /home/grid/hadoop-1.2.1 (此處爲hadoop的放置目錄,這裏要使用root用戶修改)
而後能夠到hadoop的文件夾中的bin目錄下啓動start-all.sh,能夠看到以下的信息,說明啓動成功。
此時還能夠經過運行命令查看進程的啓動狀況,在主機上運行jdk中的jps文件,能夠看到以下:
在從節點運行相同的命令,能夠看到
至此,說明安裝Hadoop已經成功了。