1. 程式人生 > >大數據筆記(二)——Apache Hadoop的體系結構

大數據筆記(二)——Apache Hadoop的體系結構

大小 問題 擴展性 log hadoop1 檢查點 記錄 時機 二進制

一.分布式存儲

技術分享圖片

  • NameNode(名稱節點)

    1.維護HDFS文件系統,是HDFS的主節點。

    2.接收客戶端的請求:上傳、下載文件、創建目錄等。

技術分享圖片

技術分享圖片

    3.記錄客戶端操作的日誌(edits文件),保存了HDFS最新的狀態

      1)Edits文件保存了自最後一次檢查點之後所有針對HDFS文件系統的操作,比如:增加文件、重命名文件、刪除目錄等

      2)保存目錄:$HADOOP_HOME/tmp/dfs/name/current

技術分享圖片

    可以使用 hdfs oev -i 命令將日誌(二進制)輸出為 XML文件

    hdfs oev -i edits_inprogress_0000000000000005499 -o ~/temp/log.xml

    4.維護文件元信息,將內存中不常用的文件元信息保存在硬盤上(fsimage文件)

      1)fsimage是HDFS文件系統存於硬盤中的元數據檢查點,裏面記錄了自最後一次檢查點之前HDFS文件系統中所有目錄和文件的序列化信息

      2)保存目錄:edits

     3)可以使用 hdfs oev -i 命令將日誌(二進制)輸出為 XML文件

  • DataNode(數據節點)

    1.以數據塊為單位,保存數據

       1)Hadoop1.0的數據塊大小:64M

       2)Hadoop2.0的數據庫大小:128M

     2.在全分布模式下,至少兩個DataNode節點

3.數據保存的目錄:由 hadoop.tmp.dir 參數指定

  • Secondary NameNode(第二名稱節點)

    1.主要作用:合並日誌

    2.合並時機:HDFS發出檢查點的時候

    3.日誌合並過程:

技術分享圖片

  • HDFS存在的問題

    1)NameNode單點故障問題

     解決方案:Hadoop2.0中,使用Zookeeper實現NameNode的HA功能

    2)NameNode壓力過大,且內存受限,影響系統擴展性

     解決方案:Hadoop2.0中,使用NameNode聯盟實現水平擴展

二.YARN:分布式計算(MapReduce)

  技術分享圖片

  • ResourceManager(資源管理器)

    1.接收客戶端的請求,執行任務

     2.分配資源

     3.分配任務

  • NodeManager(節點管理器:運行任務 MapReduce)

   從 DataNode上獲取數據,執行任務

三.HBase的體系結構

  技術分享圖片

大數據筆記(二)——Apache Hadoop的體系結構