hadoop三大核心組件概念及原理


hadoop由3個核心組件構成:

(1)HDFS集群:負責海量數據的存儲,集群中的角色主要有 NameNode / DataNode/SecondaryNameNode。

(2)YARN集群:負責海量數據運算時的資源調度,集群中的角色主要有 ResourceManager /NodeManager

(3)MapReduce:它其實是一個應用程序開發包。

 

HDFS(分布式文件系統):

  NameNode主要是用來保存HDFS的元數據信息,比如命名空間信息,塊信息

    namenode如何保存元數據:

                    

    fsimage - 它是在NameNode啟動時對整個文件系統的快照

    edit logs - 它是在NameNode啟動后,對文件系統的改動序列

    namenode正常運行時的元數據的改動會寫進edit logs文件中,當服務重啟時,namenode從fsimage讀取並與edit logs合並,變成最新的fsimage並正常運行,之后再生出新的edit logs繼續把改動寫進。

  Secondary NameNode:合並NameNode的edit logs到fsimage文件。
    SNN作用:只有在NameNode重啟時,edit logs才會合並到fsimage文件中,從而得到一個文件系統的最新快照,由於edit logs時間長后會有很大,因此   NameNode重啟的時間往往很久。因此Secondary NameNode的出現能及時把NameNode的edit logs到fsimage文件,獲取最新的fsimage,因此,NameNode重啟是不在需要大量合並edit logs,減少了重啟時間。

               合並流程如圖:

    

  datanode:用來存儲數據。


yarn(集群資源管理器):
  Resource Manager:資源調度器,處理客戶端請求。
  Node Manager:負責自己本身節點資源管理和使用,定時向RM匯報本節點的資源使用情況,接收並處理來自RM的各種命令:啟動Container
  Application Manager:應用程序管理器,每運行一個作業,會生成一個AM,由AM進行管理,並向RM申請資源生成一個或多個container運行任務,並監控container的健康狀況。
  container:資源容器,作業在資源容器里面運行,namespace+cgroup


MapReduce:
  mapper:把每個單詞拆分成鍵值對,比如word:1,word:1,this:1
  combiner:把mapper拆分的單詞,相同的word鍵值相加,比如word:5,this:3
  partitioner:把相同的單詞發送給同一個reduce
  shuffle && sort: 般將排序以及Map的輸出傳輸到Reduce的過程稱為混洗
  reduce:把發過來的相同的單詞相加在一起,比如mapper1發送word:5,mapper2發送word:4,在reduce上進行合並成word:9

  原理附圖如下:

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM