第一周, 總體概述, Hadoop , 想到鴻蒙的未來,還想大干一場
2019-8-2 大數(shù)據(jù)班正式開課, 整天講解大數(shù)據(jù)的軟件構(gòu)成和概念
Hadoop , 想到鴻蒙的未來,我還想大干一場
HDFS:
Hadoop是Apache軟件基金會(huì)所開發(fā)的并行計(jì)算框架與分布式文件系統(tǒng)。
Hadoop 最核心的模塊包括Hadoop Common、HDFS與MapReduce。
HDFS是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)的縮寫,
為分布式計(jì)算存儲提供了底層支持。
采用Java語言開發(fā),可以部署在多種普通的廉價(jià)機(jī)器上,以集群處理數(shù)量積達(dá)到大型主機(jī)處理性能。
HDFS 架構(gòu)原理HDFS采用master/slave架構(gòu)。
一個(gè)HDFS集群包含一個(gè)單獨(dú)的NameNode和多個(gè)DataNode。
NameNode作為master服務(wù),它負(fù)責(zé)管理文件系統(tǒng)的命名空間和客戶端對文件的訪問。
NameNode會(huì)保存文件系統(tǒng)的具體信息,包括文件信息、文件被分割成具體block塊的信息、以及每一個(gè)block塊歸屬的DataNode的信息。
HDFS通過NameNode對用戶提供了一個(gè)單一的命名空間。
DataNode作為slave服務(wù),在集群中可以存在多個(gè)。
通常每一個(gè)DataNode都對應(yīng)于一個(gè)物理節(jié)點(diǎn)。
DataNode負(fù)責(zé)管理節(jié)點(diǎn)上它們擁有的存儲,它將存儲劃分為多個(gè)block塊,管理block塊信息,同時(shí)周期性的將其所有的block塊信息發(fā)送給NameNode。
HDFS采用master/slave架構(gòu)。一個(gè)HDFS集群是由一個(gè)Namenode和一定數(shù)目的Datanodes組成。
Namenode是一個(gè)中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的名字空間(namespace)以及客戶端對文件的訪問。
集群中的Datanode一般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理它所在節(jié)點(diǎn)上的存儲。
HDFS暴露了文件系統(tǒng)的名字空間,用戶能夠以文件的形式在上面存儲數(shù)據(jù)。
從內(nèi)部看,一個(gè)文件其實(shí)被分成一個(gè)或多個(gè)數(shù)據(jù)塊,這些塊存儲在一組Datanode上。
Namenode執(zhí)行文件系統(tǒng)的名字空間操作,比如打開、關(guān)閉、重命名文件或目錄。
它也負(fù)責(zé)確定數(shù)據(jù)塊到具體Datanode節(jié)點(diǎn)的映射。
Datanode負(fù)責(zé)處理文件系統(tǒng)客戶端的讀寫請求。
在Namenode的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制。
下圖為HDFS系統(tǒng)架構(gòu)圖,主要有三個(gè)角色,Client、NameNode、DataNode。
文件寫入時(shí):Client向NameNode發(fā)起文件寫入的請求。
NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
Client將文件劃分為多個(gè)block塊,并根據(jù)DataNode的地址信息,按順序?qū)懭氲矫恳粋€(gè)DataNode塊中。
當(dāng)文件讀取:Client向NameNode發(fā)起文件讀取的請求。
NameNode返回文件存儲的block塊信息、及其block塊所在DataNode的信息。
Client讀取文件信息。
HDFS 數(shù)據(jù)備份HDFS被設(shè)計(jì)成一個(gè)可以在大集群中、跨機(jī)器、可靠的存儲海量數(shù)據(jù)的框架。
它將所有文件存儲成block塊組成的序列,除了最后一個(gè)block塊,所有的block塊大小都是一樣的。
文件的所有block塊都會(huì)因?yàn)槿蒎e(cuò)而被復(fù)制。
每個(gè)文件的block塊大小和容錯(cuò)復(fù)制份數(shù)都是可配置的。
容錯(cuò)復(fù)制份數(shù)可以在文件創(chuàng)建時(shí)配置,后期也可以修改。
HDFS中的文件默認(rèn)規(guī)則是write one(一次寫、多次讀)的,并且嚴(yán)格要求在任何時(shí)候只有一個(gè)writer。NameNode負(fù)責(zé)管理block塊的復(fù)制,它周期性地接收集群中所有DataNode的心跳數(shù)據(jù)包和Blockreport。心跳包表示DataNode正常工作,Blockreport描述了該DataNode上所有的block組成的列表。
---------------------
作者:Resines
來源:CSDN
原文:https://blog.csdn.net/genglei1022/article/details/89646714
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
MapReduce:
YARN: