一、HDFS設計架構
1)塊(Block)
固定大小的邏輯單元,HDFS的文件被分成塊進行存儲,HDFS塊的默認大小是64M.塊是文件存儲處理的邏輯單元.
2)NameNode
是管理節點,存放文件的元數據
文件與數據塊的映射表
數據塊與數據節點的映射表
3)DataNode
是HDFS的工作節點,存放數據塊
二、數據管理策略
1、每個數據庫塊3個副本,分佈在兩個機架內的3個節點.
2、DataNode定期向NameNode發送心跳信息
3、二級NameNode定期同步元數據映像文件和修改日誌,NameNode發送故障時,備胎轉正
三、HDFS的讀寫流程
1、HDFS的讀取文件的流程
2、HDFS的寫文件流程
四、HDFS特點
1、流式的數據訪問(寫一次,讀多次)
2、數據冗餘,硬件容錯
3、存儲大文件
4、適用性與侷限性
1)適合數據批量讀寫,吞吐量高
2)適合一次寫入,多次多寫
3)不適合交互式應用,低延遲很難滿足
4)不支持多用戶併發寫相同文件
五、MapReduce的原理
分而治之,一個大任務分成多個小的子任務(map),並行執行後,合併結果(reduce).比如一個100G的日誌,處理的話,如下圖所示
六、MapReduce的運行流程
1、Job & Task
一個Job可以拆分成多個Task,task可以分爲MapTask和ReduceTask
JobTracker的角色
1、作業調度
2、分配任務,監控任務執行進度
3、監控TaskTracker的狀態
TaskTracker 的作用
1、執行任務
2、彙報任務狀態
七、MapReduce的容錯機制
1、重複執行
重試執行4次失敗之後,放棄執行
2、推測執行
對執行慢的重新起一個任務執行,將原進程停掉
如果想了解更多的大數據相關知識,請關注公衆號:架構師Plus