Hadoop技術生態的組成部分:
- Hadoop Common:支持Hadoop其他模塊的通用工具
- HDFS:分布式檔案系統,提供了高吞吐量的資料訪問(最初始模塊之一)
- YARN:作業調度和資源管理的框架
- MapReduce:基于YARN的大資料分布式計算框架(最初始模塊之一)
HDFS
利用多個商業硬體構成存盤集群,利用namenode進行資料的存盤控制,具有支持超大檔案、存盤靈活、可靠性高等特定,面對大量資料存盤的時候,能夠高效地作業,(但在處理大量小資料、需要進行低延遲資料訪問和需要多用戶訪問寫入等場景下,任存在不足,)其主要的組件如下:
-
- Namenode: 管理者,負責檔案系統的命名,記錄所有檔案和目錄,同時,它還負責臨時保存塊的位置資訊,
- Datanode: 作業者,是檔案系統的作業節點,根據需要存盤并檢索資料庫,定期向namenode發送存盤塊,namenode則負責記錄如何重建檔案,
當通過檔案系統介面訪問資料,其實質是在于namenode和datanode進行互動,namenode像是大腦對神經的反饋進行綜合處理,datanode則像是末梢神經,
MapReduce
- 編程模型:Map階段、Reduce階段
- 資料處理引擎:MapTask、ReduceTask
- 運行時環境分兩種:
- (MR1): JobTracker(資源管理和作業控制)和TaskTracker(接受JT命令并具體執行)
- (MR2): 是運行于YARN之上的計算框架,YARN(資源管理與調度)和ApplicationMaster(作業控制),
YARN
- 基本構造:
- ResourceManager:全域的資源管理器,負責整個集群的資源管理、分配與調度,
- Scheduler(調度器),純調度器,默認下是Fair Scheduler
- NodeManager:對每一個slave上的資源和任務做管理
- 1) 定時的向RM匯報HearBeat(資源的使用情況和Container的運行狀態)
- 2) 接受來自AM的啟動/停止的請求
- Container:資源分配單位(MRv1中Slot),動態分配,
- ApplicationMaster:每個APP都會包含一個AM,AM的功能包括:
- 1) 向RM申請資源(用Container資源抽象)
- 2) 將任務做進一步的分配
- 3) 與NM通信啟動/停止任務
- 4) 跟蹤每一個Task的運行狀態(包括Failed后的操作)
- 運行模式:

參考:
- Hadoop : https://hadoop.apache.org/
- MapReduce:http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html
- HDFS:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
- HBase(開源的非關系型分布式資料庫(NoSQL)VS. HDFS,它參考了谷歌的BigTable,用Java):
-
- https://hbase.apache.org/
- https://blogs.apache.org/hbase/
- YARN:http://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-site/YARN.html
- Google三篇論文:(若如下網址無法打開,可復制此連接自行下載:https://files.cnblogs.com/files/yxmings/Bigdata_platform%EF%BC%9AGoogle%E4%B8%89%E7%AF%87%E8%AE%BA%E6%96%87.zip)
- GFS:http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/gfs-sosp2003.pdf
- MapReduce:http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/mapreduce-osdi04.pdf
- BigTable:http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/bigtable-osdi06.pdf
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/267349.html
標籤:其他
