大數據(六) --Hadoop簡介

What is Hadoop?

Hadoop思想來源

  Google是Hadoop思想和技術的來源. 具體來說就是Hadoop的" 三駕馬車" --Google 發佈的三篇技術思想論文:

  • The Google File System
  • MapReduce_Simplified Data Processing on Large Clusters
  • Bigtable_A Distributed Storage System for Structured Data

Hadoop的歷史

  Hadoop作者Doug Cutting , 他在Yahoo就職期間開發了Hadoop項目. 2003-2004年, Google公開GFS和MapReduce思想細節後, Doug Cutting等人以此爲基礎利用業餘時間實現DFS和MapReduce機制. Hadoop名字的來源是Doug兒子的大象玩具.

  2005年Hadoop作爲Lucene的子項目Nutch的一部分被正式引入Apache基金會. 06年MapReduce和Nutch Distributed File System(NDFS)被納入Hadoop項目.

  至此, Hadoop作爲一個分佈式系統基礎架構由Apache基金會所開發並以開源的形式提供給開發者. 主要用來解決海量數據的存儲計算處理.

  廣義上來講, Hadoop一般指Hadoop生態圈, 圈中有如下圖衆多的技術:
在這裏插入圖片描述

三大發行版本

  1. Apache Hadoop: 原始版本, 適合初學者
  2. Cloudera Hadoop: 適合大型互聯網企業中的項目, 收費
  3. Hortonworks Hadoop: 文檔相對好點

Hadoop的優勢

  1. 高可靠性
    底層維護多個數據副本, 即使某個節點故障, 數據也不會丟失.
  2. 高擴展性
    在集羣間分配數據, 可以很輕鬆地擴展節點.
  3. 高效性
    在MR思想下, 實現並行處理, 加快處理速度, 提高效率.
  4. 高容錯性
    能夠自動將失敗的任務重新分配.

Hadoop的組成

Hadoop1.*和2.*的區別

Hadoop1.*的組成
在這裏插入圖片描述

Hadoop2.*的組成
在這裏插入圖片描述

  從這兩幅圖中可以看出, 1.*的版本中, MapReduce除了負責計算之外, 還要對系統資源進行調度, 包括CPU, 內存, 磁盤等. 因此, MapReduce負責的功能太多太複雜, 容易出現問題, 耦合性較大.

  於是2.*版本中, 將資源調度模塊從MapReduce中抽離, 讓它成爲單獨的一個模塊, 實現該模塊功能的工具就是Yarn. Yarn的出現, 成功讓MapReduce功能解耦, 更加模塊化

Hadoop組成

HDFS

  • NameNode
    • 接受客戶端讀寫請求
    • 管理元數據
    • 管理DataNode
  • DataNode
    • 接受客戶端讀請求
    • 存儲源數據
    • 向NameNode彙報心跳
    • 構建PipeLine
    • 管理本機上Block塊的元數據
  • SecondaryNameNode
    • 持久化元數據

Yarn

  • ResourceManager
    • 處理客戶端請求
    • 監控NodeManager
    • 啓動並監控ApplicationMaster
    • 資源調度與分配
  • NodeManager
    • 管理單節點上的資源
    • 處理來自RM的命令
    • 處理來自ApplicationMaster的命令
  • ApplicationMaster
    • 輔助數據切分
    • 申請程序資源並分配給內部任務
    • 任務監控與容錯
  • Container
    • Yarn中的資源抽象, 它封裝了某個節點上多維度資源, 例如: 內存, CPU, 磁盤, 網絡等.

MapReduce

  MapReduce將計算分兩個階段, Map和Reduce.

  1. Map階段並行處理輸入數據;
  2. Reduce階段對Map結果進行彙總
    在這裏插入圖片描述

大數據技術生態體系

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章