Hadoop2源碼分析-Hadoop V2初識

1.概述

  在完成分析Hadoop2源碼的準備工做後,咱們進入到後續的源碼學習階段。本篇博客給你們分享,讓你們對Hadoop V2有個初步認識,博客的目錄內容以下所示:緩存

  • Hadoop的淵源
  • Hadoop V2部分項目圖
  • 各個包的功能介紹

  本篇文章的源碼是基於Hadoop-2.6.0來分析,其餘版本的Hadoop的源碼能夠此做爲參考分析。安全

2.Hadoop的淵源

  其實,早年Google的核心競爭力是它的計算平臺,Google對外公佈的論文有一下內容:網絡

  • GoogleCluster 
  • Chubby 
  • GFS
  • BigTable 
  • MapReduce 框架

  可見MapReduce並非Hadoop所獨有的功能,以後Apache基金會獲得相似的項目,這些項目有隸屬於Hadoop項目,分別是:分佈式

  • ZooKeeper(Chubby)
  • HDFS(GFS)
  • HBase(BigTable)
  • MapReduce(Hadoop 這裏是HDFS和MapReduce的統稱)

  相似於這種思想的開源項目還有不少,如:Yahoo用Pig來處理巨大數據,Facebook用Hive來進行用戶行爲分析等。Hadoop的兩大核心功能分別爲HDFS和MapReduce,MapReduce是一個適合作離線計算的框架,它依賴於HDFS,HDFS做爲一個分佈式文件存儲系統,是全部這些項目的基礎支撐。下圖爲HDFS的支撐圖,以下圖所示:工具

  

3.Hadoop V2部分項目圖

  Hadoop包與包之間依賴的關係較爲複雜,究其緣由爲HDFS提供了一個分佈式文件存儲系統,該系統提供龐大的API,使得分佈式文件系統底層的實現,依賴於某些高層的功能,這些功能互相引用,造成網狀的依賴關係。舉個例子,如conf包,它用於讀取系統配置文件,依賴於fs包,主要是讀取相應的配置文件時,須要使用到文件系統,而部分文件系統的功能都被抽象在fs包中。下圖時Hadoop V2項目的核心部分依賴包,以下圖所示:oop

  後面的章節,主要給你們分享如下幾個部分,如:mapreduce,fs,hdfs,ipc,io,yarn。學習

4.各個包的功能介紹

  下面對上圖列出來的各個包作下介紹說明,各個包的功能以下所示:大數據

  • tools:提供命令行工具,如DistCp,archive等等。
  • mapreduce v2:Hadoop V2版本對Map/Reduce的實現。
  • filecache:讓HDFS擁有本地緩存,以便加快MR的數據訪問速度。
  • hdfs v2:Hadoop V2的分佈式文件系統實現。
  • fs:文件系統的抽象包,爲支持多種文件系統(有可能還有其餘的文件系統)規範統一的文件訪問接口。
  • ipc:依賴 io 提供的編碼和解碼功能。
  • io:編碼和解碼數據,以便在網絡中傳輸。
  • net:對網絡功能進行封裝,如Socket。
  • conf:配置系統的參數。
  • util:工具類。
  • ha:配置高可用的集羣,使集羣擁有兩個NameNode(active和standby)。
  • yarn:Hadoop V2 版本新添加的特性,用於資源調度和管理。

5.總結

  Hadoop V2在底層設計上對比Hadoop V1是有區別的,新增HA,使得Hadoop V1中存在的單點問題獲得了很好得解決;Hadoop V2新增Yarn系統,使得集羣得資源管理和調度更加得完美,大大減小ResourceManager的資源消耗,而且讓監測每個 Job 子任務 (tasks) 狀態的程序分佈式化了,更安全、更優美。同時,使得多種計算框架能夠運行在一個集羣中。編碼

6.結束語

  這篇文章就和你們分享到這裏,若是你們在研究和學習的過程當中有什麼疑問,能夠加羣進行討論或發送郵件給我,我會盡我所能爲您解答,與君共勉!

相關文章
相關標籤/搜索