大數據筆記(二)——Apache Hadoop的體系結構
一.分布式存儲
- 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的體系結構