1. 程式人生 > >hadoop概述

hadoop概述

str 集群 全文檢索 適合 性能 技術 數據安全 文件 mapreduce

一、hadoop的起源
Apache Lucene
  開源的高性能全文檢索工具包
Apache Nutch
  開源的web搜索引擎
google的三篇論文
  GFS -> HDFS
  MapReduce -> MapReduce
  BigTable -> HBase
Apache Hadoop
  大規模數據處理

二、hadoop的發展
* Common
  工具、服務
hadoop1.x
  * MapReduce
      對海量數據的處理
      分布式
      思想:分而治之
         大數據集分為小的數據集
         每個數據集,進行邏輯業務處理(map)
         合並統計數據結果(reduce)
  * HDFS
      存儲海量數據
      分布式
      數據安全性
        副本數據(3份)

      數據是以block的方式進行存儲的

      NameNode

        * 內存

        * 本地磁盤

          * fsimage:鏡像文件

          * edites:編輯日誌

hadoop2.x
      * YARN
          分布式資源管理框架
          * 管理整個集群的資源(內存、CPU核數)
          * 分配調度集群的資源
三、hadoop模塊
Hadoop項目主要包括一下四個模塊:
Hadoop Common:
  為其他Hadoop模塊提供基礎設施
Hadoop HDFS:
  一個高可靠、高吞吐量的分布式文件系統
Hadoop MapReduce:
  一個分布式的離線並行計算框架
Hadoop YARN:
  一個新的MapReduce框架,任務調度與資源管理

四、HDFS系統架構

技術分享

主節點:NameNode

  用它來存儲文件的元數據(文件目錄、文件屬性、每個文件的塊列表和塊所在DataNode等)

從節點:DataNode

  在本地文件系統存儲文件塊數據,以及數據塊的校驗和

Secondary NameNode

  輔助Namenode,獲取HDFS元數據的快照(合並fsimage和edites文件)

五、YARN架構圖

技術分享

ResourceManager 資源管理

  * 處理客戶端請求

  * 啟動/監控ApplicationMaster

  * 監控NodeManager

  * 資源分配與調度

NodeManager 節點資源管理

  * 單個節點上的資源管理

  * 處理來自ResourceManager的命令

  * 處理來自ApplicationMaster的命令

ApplicationMaster 應用的管理者

  * 數據切分  

  * 為應用程序申請資源,並分配給內部的任務

  * 任務監控與容錯

Container 資源容器

六、離線計算框架 MapReduce

計算分兩個階段:

  * Map 處理

  * Reduce 匯總

shuffle(洗牌)連接Map和Reduce兩個階段

  * Map Task 將數據寫到本地磁盤

  * Reduce Task 從每個Map Task上讀取一份數據

僅適合離線批處理

  * 具有很好的容錯性和擴展性

  * 適合簡單的批處理任務

缺點明顯

  * 啟動開銷大、過多使用磁盤導致效率低下等

七、MapReduce在YARN上執行的原理圖

技術分享

hadoop概述