Hadoop核心組成部分
(1)Hadoop Common:用來支撐其他模塊的公共工具包
(2)HDFS: 一種分佈式文件系統,提供對應用程序數據的高吞吐量訪問。
(3)Hadoop Yarn:作業調度和集群資源管理的框架。
(4)Hadoop MapReduce:基於YARN的系統,用於並行處理大型數據集。
HDFS存儲模型
存儲模型:字節(一個文件就是一個字節數組)
①block塊產生:文件線性切割成block塊,偏移量(offset)(byte)
②block塊存儲:block分散存儲在集群節點中
③block塊大小要求:單一文件block大小一致,文件和文件可以不一致
④block塊副本:block 可以設置副本,副本分散在集群的不同節點上,副本數量不能超過集群節點數量
⑤關於文件上傳:
文件上傳可以設置block大小和副本數
已經上傳的文件Block副本數可以調整,大小不變
僅支持一次寫入多次讀取,同一時刻只能有一個寫入者
可以append追加數據
架構模型
1、數據種類
元數據MetaData,
文件數據本身。
2、角色(主從架構)
(1)NameNode存儲:保存文件的元數據(目錄樹、路徑也算)
①基於內存存儲:不會和磁盤發生交換
NameNode的數據只會在內存中
持久化(Namenode基於內存存儲,內存是掉電易失的,所以會將內存中的數據持久化到磁盤)
②主要功能:
NameNode是保存文件元數據信息的
NameNode用來和客戶端交互,接收客戶端的讀寫服務
收集DataNode彙報上來的block塊列表信息
③保存的metadata信息
不保存位置信息,是因為需要保證數據一致性(提供百分之百準確的消息)
(2)DataNode:存儲塊文件,保存文件block數據,向NameNode彙報block塊的列表
①存儲:
本地磁盤目錄存儲block塊的數據,以文件形式
存儲block塊的元數據信息
②功能:
向Namenode彙報block塊的信息
和Namenode通過心跳(3秒一次)保持聯繫,如果Namenode10分鐘沒有接收到DataNode的心跳,則認為該DataNode已經lost,Namenode會將該DataNode上的block塊複製到其他DataNode上
(3)關係(HDFSClient、DataNode、NameNode):
三者的關係:
DataNode與NameNode保持心跳,DataNode向NameNode提交block列表;
HDFSClient和Namenode交互文件元數據;
HDFSClient和DataNode交互文件block數據
Hadoop核心組成部分、HDFS存儲模型和架構模型總結,不熟悉的小夥伴趕緊 mark 起來吧。