Hadoop學習篇 2 初識 Hadoop

在一個全配置的集羣上,運行Hadoop意味着在網絡分佈的不一樣服務器上運行一組守護進程 (daemons),這些守護進程或運行在單個服務器上,或運行與多個服務器上,他們包括:
node

(1) NameNode(名字節點)服務器

(2) DataNode(數據節點)網絡

(3) Secondary NameNode (次名節點) 分佈式

(4) JobTracker  (做業跟蹤節點)oop

(5) TaskTracker (任務跟蹤節點)spa

NameNodeblog

被認爲是Hadoop守護進程中最重要的一個,能夠說,NameNode就是一個大腦。進程

運行NameNode會消耗掉大量的內存和I/O資源,所以,爲了減輕機器的負載,駐留NameNode的服務器通常不會負責MapReduce的計算、存儲用戶數據。這也意味着,NameNode不會和JobTracker\TashTracker存在於同一臺服務器上。一旦NameNode服務器出現宕機,形成的影響通常會比較嚴重。內存

DataNode資源

 

每一個集羣的從節點上都會駐留一個DataNode的守護進程,來執行分佈式文件系統的繁重工做——將HDFS數據快讀取或寫入到本地文件系統的實際文件中。當但願對HDFS文件進行讀寫時,文件被分割爲多個塊,有NameNode告知客戶端每一個數據塊駐留在那個DataNode。客戶端直接與DataNode守護進程進行通訊,來處理與數據塊對相對應的本地文件。DataNode與DataNode節點直接也能夠直接進行通訊,用於完成數據的複製。

上圖解釋了NameNode和DataNode節點的做用,NameNode指明瞭數據存放的名稱和位置,分別爲/user/chuck/data1 下的一、二、3文件和存儲在 /user/james/data2下的

四、5文件。四個DataNode實現了一、二、三、四、5文件的複製。確保了任何一個DataNode節點失敗後任然能夠正常工做。DataNode會不斷的向NameNode節點報告,將當前節點存儲的數據塊告知NameNode,爲之提供本地修改的相關信息,同時接受指令的建立、移動或刪除本地磁盤上的數據塊。

 

Secondary NameNode

 

JobTracker

jobtracker守護進程是Hadoop和應用程序之間的紐帶,一旦代碼提交到集羣上,JobTracker就會執行肯定的任務,包括決定處理哪些文件,爲不一樣的任務分配節點以及監控全部任務的運行,若是任務失敗,jobTracker將會自動重啓任務,可是所分配的節點可能會不一樣。

每一個Hadoop集羣只有一個JobTracker守護進程,他一般運行在服務器的主節點上。

TaskTracker

 

 

 

下面的圖形描述了一個Hadoop集羣的拓撲結構,這是一個主/從結構,特色是主節點上運行NameNode和JobTracker,而從節點上運行DataNode和TaskTracker。並使用獨立的節點運行SSN,以防止主節點運行失敗。


 


瞭解了以上信息,咱們來關注一下Hadoop的NameNode和JobTracker究竟分別執行什麼樣的功能?

一、從存儲角度來理解:集羣是由一個Namenode和若干datanode組成,而secondary做爲Namenode的一個備份

二、從應用的角度來理解:集羣中的節點是由jobtracker和若干tasktracker組成,jobtracker負責任務的調度,而tasktracker則是負責任務的執行。所以,tasktracker是運行在datanode的,而Namenode和jobtracker則無需在同一機器上面
相關文章
相關標籤/搜索