您好,登錄后才能下訂單哦!
參考劉鵬的《實戰(zhàn)Hadoop》一書,按照hadoop 0.20.2幾個注意的地方。
第一,首先理解Hadoop中的幾個后臺進程。
NameNode,Secondary NameNode,JobTracker,TaskTracker,DataNode這幾個角色。
NameNode:負(fù)責(zé)如何切分?jǐn)?shù)據(jù)塊,和切完放哪個節(jié)點。它對內(nèi)存和I/O集中管理。
這個進程部署在Master節(jié)點上,是一個單點,它掛了整個系統(tǒng)都掛了。
Secondary NameNode:和NameNode一樣,輔助程序。每個集群都有一個,它與NameNode進行通訊,定期保存HDFS元數(shù)據(jù)快照,當(dāng)NameNode故障可以作為備用NameNode使用。它也是部署在Master節(jié)點上。
JobTracker負(fù)責(zé)調(diào)度作業(yè),它決定哪些文件由哪些節(jié)點運行,并且監(jiān)聽TaskTracker發(fā)送來的心跳。當(dāng)收不到心跳,即認(rèn)為某個task失敗,就會決定重啟task。每個集群只有一個JobTracker。它是部署在Master節(jié)點上的。
上述三個進程都是部署在Master節(jié)點上的,而TaskTracker和DataNode進程進程是集群中各個幾點都需要部署的。
DataNode負(fù)責(zé)將HDFS數(shù)據(jù)塊讀寫到本地文件系統(tǒng)。當(dāng)客戶端讀寫某個數(shù)據(jù)庫的時候,由NameNode告訴客戶端去那個DataNode進行,然后客戶端直接與這個DataNode的服務(wù)器通信,并操作相關(guān)的數(shù)據(jù)塊。
TaskTracker也是位于從節(jié)點的,它負(fù)責(zé)獨立執(zhí)行具體的Task,每個從節(jié)點只能有一個TaskTracker,但是每個TaskTracker可以產(chǎn)生多個Java虛擬機,用于并行處理多個map和reduce認(rèn)為。TaskTracker還會和JobTracker交互,JobTasker負(fù)責(zé)分配Task,并且檢測TaskTracker的心跳,如果沒有心跳,就認(rèn)為已經(jīng)崩潰,并將認(rèn)為分配給其他的TaskTracker。
各個進程的部署圖如下:
具體的安裝環(huán)節(jié),可以參考書中的步驟,但是有幾個點需要注意。
主機和從機統(tǒng)一創(chuàng)建專門的運行hadoop的用戶grid, 設(shè)置SSH的免密碼登陸機制,可以參考http://chenlb.iteye.com/blog/211809。將所有的機器上的公鑰文件上里的內(nèi)容,都統(tǒng)一整合到一個authorized_keys文件,以此實現(xiàn)互相免密碼登陸ssh。
啟動hadoop的時候,注意要以grid用戶登錄,在grid用戶的主目錄下進行操作,有時權(quán)限的問題,此時要注意將主機和從機的hadoop文件夾的owner設(shè)置為grid用戶和組。執(zhí)行 chown -R grid:grid /home/grid/hadoop-1.2.1 (此處為hadoop的放置目錄,這里要使用root用戶修改)
然后可以到hadoop的文件夾中的bin目錄下啟動start-all.sh,可以看到如下的信息,說明啟動成功。
此時還可以通過運行命令查看進程的啟動情況,在主機上運行jdk中的jps文件,可以看到如下:
在從節(jié)點運行相同的命令,可以看到
至此,說明安裝Hadoop已經(jīng)成功了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。