Hadoop體系結構

  在前面的博文中,我已經介紹過Hadoop的基本概念了(見博文初識Hadoop),今天來介紹一下Hadoop的體系結構。html

  Hadoop的兩大核心是HDFS和MapReduce,而整個Hadoop的體系結構主要是經過HDFS來實現分佈式存儲的底層支持的,而且它會經過MapReduce來實現分佈式並行任務處理的程序支持。下面我就分別介紹一下HDFS和MapReduce的體系結構。node

1. HDFS體系結構編程

  HDFS採用了主從(Master/Slave)結構模型,一個HDFS集羣是由一個NameNode和若干個DataNode組成的。其中Namenode做爲主服務器,管理文件系統的命名空間和客戶端對文件的訪問操做;而集羣中的DataNode主要承擔管理存儲的數據的任務。服務器

  HDFS容許用戶已文件的形式存儲數據。從內部來看,文件被分紅若干個數據塊,並且這若干個數據塊存放在一組DataNode上。Namenode執行文件系統的命名空間操做,好比打開、關閉、重命名等,同時它也負責數據塊到具體DataNode的映射。DataNode負責處理文件系統客戶端的文件讀寫請求,並在Namenode的統一調度下進行數據塊的建立、刪除和複製操做。其體系結構圖以下所示。架構

  一個典型的部署場景是集羣中的一臺機器運行一個Namenode實例,其餘機器分別運行DataNode實例。固然,並不排除一臺機器運行多個DataNode實例的狀況。集羣中單一Namenode的設計大大簡化了系統的架構,Namenode是全部HDFS元數據的管理者,用戶須要保存的數據不會通過Namenode,而是直接流向存儲數據的DataNode。框架

2. MapReduce體系結構  分佈式

  MapReduce是一種並行編程模式,利用這種模式軟件開發者能夠輕鬆地開發出分佈式並行程序。在Hadoop體系結構中MapReduce是一個簡單易用的軟件框架,基於它能夠將任務分發到上千臺商用機器組成的集羣上,並以一種可靠容錯的方式並行處理大量的數據集,實現Hadoop的並行任務處理功能。oop

  MapReduce框架是由一個單獨運行在主節點的JobTracker和運行在每一個集羣從節點的TaskTracker共同組成。主節點負責調度構成一個做業的全部任務,這些任務分部在不一樣的從節點上。主節點監控它們的運行狀況,而且負責從新執行以前失敗的任務;從節點僅負責由主節點指派的任務。當一個Job被提交的時候,JobTracker接受到提交的做業和其配置信息以後,就會將配置信息等分發給從節點,同時調度任務並監控TaskTracker的執行。學習

  從上面的介紹能夠看出,HDFS和MapReduce共同組成了Hadoop分佈式系統結構體系的核心。HDFS在集羣上實現了分佈式文件系統,MapReduce在集羣上實現了分佈式計算和任務處理。HDFS在MapReduce任務處理過程當中提供了對文件的操做和存儲等操做,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工做,並收集結果,兩者相互協調。共同完成了Hadoop分佈式集羣的任務。spa

以上就是博主爲你們介紹的這一板塊的主要內容,這都是博主本身的學習過程,但願能給你們帶來必定的指導做用,有用的還望你們點個支持,若是對你沒用也望包涵,有錯誤煩請指出。若有期待可關注博主以第一時間獲取更新哦,謝謝!

相關文章
相關標籤/搜索