HDFS的體系結構圖

NameNode和DataNode都被設計成可以在普通商用計算機上運行。這些計算機通常運行的是GNU/Linux操作系統(tǒng)。HDFS采用 Java語言開發(fā),因此任何支持Java的機器都可以部署NameNode和DataNode。一個典型的部署場景是集群中的一臺機器運行一個 NameNode實例,其他機器分別運行一個DataNode實例。當然,并不排除一臺機器運行多個DataNode實例的情況。集群中單一的 NameNode的設計則大大簡化了系統(tǒng)的架構。NameNode是所有HDFS元數(shù)據(jù)的管理者,用戶數(shù)據(jù)永遠不會經(jīng)過NameNode。

MapReduce的體系結構

接下來介紹MapReduce的體系結構,MapReduce是一種并行編程模式,這種模式使得軟件開發(fā)者可以輕松地編寫出分布式并行程序。在 Hadoop的體系結構中,MapReduce是一個簡單易用的軟件框架,基于它可以將任務分發(fā)到由上千臺商用機器組成的集群上,并以一種高容錯的方式并行處理大量的數(shù)據(jù)集,實現(xiàn)Hadoop的并行任務處理功能。MapReduce框架是由一個單獨運行在主節(jié)點上的JobTracker和運行在每個集群從節(jié)點上的TaskTracker共同組成的。主節(jié)點負責調(diào)度構成一個作業(yè)的所有任務,這些任務分布在不同的從節(jié)點上。主節(jié)點監(jiān)控它們的執(zhí)行情況,并且重新執(zhí)行之前失敗的任務;從節(jié)點僅負責由主節(jié)點指派的任務。當一個Job被提交時,JobTracker接收到提交作業(yè)和配置信息之后,就會將配置信息等分發(fā)給從節(jié)點,同時調(diào)度任務并監(jiān)控TaskTracker的執(zhí)行。

從上面的介紹可以看出,HDFS和MapReduce共同組成了Hadoop分布式系統(tǒng)體系結構的核心。HDFS在集群上實現(xiàn)了分布式文件系統(tǒng),MapReduce在集群上實現(xiàn)了分布式計算和任務處理。HDFS在MapReduce任務處理過程中提供了文件操作和存儲等支持,MapReduce在HDFS的基礎上實現(xiàn)了任務的分發(fā)、跟蹤、執(zhí)行等工作,并收集結果,二者相互作用,完成了Hadoop分布式集群的主要任務。

分享到

cuihao

相關推薦