HDFS基本概念有哪些-創(chuàng)新互聯(lián)

小編給大家分享一下HDFS基本概念有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專(zhuān)業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十余年企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都上1000家客戶提供網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站開(kāi)發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營(yíng)銷(xiāo)型網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),同時(shí)也為不同行業(yè)的客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)。
  1.1 HDFS的介紹

  源自于Google的GFS論文 發(fā)表于2003年10月 HDFS是GFS克隆版 ,HDFS的全稱是Hadoop Distributed File System易于擴(kuò)展的分布式文件系統(tǒng),運(yùn)行在大量普通廉價(jià)機(jī)器上,提供容錯(cuò)機(jī)制,為大量用戶提供性能不錯(cuò)的文件存取服務(wù)

  整個(gè)Hadoop的體系結(jié)構(gòu)主要是通過(guò)HDFS來(lái)實(shí)現(xiàn)對(duì)分布式存儲(chǔ)的底層支持,并通過(guò)MR來(lái)實(shí)現(xiàn)對(duì)分布式并行任務(wù)處理的程序支持。

  HDFS采用主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群是由一個(gè)NameNode和若干個(gè)DataNode組成的(在最新的Hadoop2.2版本已經(jīng)實(shí)現(xiàn)多個(gè)NameNode的配置-這也是一些大公司通過(guò)修改hadoop源代碼實(shí)現(xiàn)的功能,在最新的版本中就已經(jīng)實(shí)現(xiàn)了)。NameNode作為主服務(wù)器,管理文件系統(tǒng)命名空間和客戶端對(duì)文件的訪問(wèn)操作。DataNode管理存儲(chǔ)的數(shù)據(jù)。HDFS支持文件形式的數(shù)據(jù)。

  從內(nèi)部來(lái)看,文件被分成若干個(gè)數(shù)據(jù)塊,這若干個(gè)數(shù)據(jù)塊存放在一組DataNode上。NameNode執(zhí)行文件系統(tǒng)的命名空間,如打開(kāi)、關(guān)閉、重命名文件或目錄等,也負(fù)責(zé)數(shù)據(jù)塊到具體DataNode的映射。DataNode負(fù)責(zé)處理文件系統(tǒng)客戶端的文件讀寫(xiě),并在NameNode的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建、刪除和復(fù)制工作。NameNode是所有HDFS元數(shù)據(jù)的管理者,用戶數(shù)據(jù)永遠(yuǎn)不會(huì)經(jīng)過(guò)NameNode。

  2 HDFS設(shè)計(jì)目標(biāo)

  自動(dòng)快速檢測(cè)應(yīng)對(duì)硬件錯(cuò)誤

  流式訪問(wèn)數(shù)據(jù)

  移動(dòng)計(jì)算比移動(dòng)數(shù)據(jù)本身更劃算

  簡(jiǎn)單一致性模型

  異構(gòu)平臺(tái)可移植

  移動(dòng)計(jì)算和移動(dòng)數(shù)據(jù)
在學(xué)習(xí)大數(shù)據(jù)的時(shí)候接觸了移動(dòng)數(shù)據(jù)和移動(dòng)計(jì)算這兩種聯(lián)系緊密而又有很大不同的概念,
其中移動(dòng)計(jì)算也叫做本地計(jì)算。在以前的數(shù)據(jù)處理中時(shí)使用的
移動(dòng)數(shù)據(jù),其實(shí)就是將需要處理的數(shù)據(jù)傳輸?shù)酱娣挪煌幚頂?shù)據(jù)方式邏輯的各個(gè)節(jié)點(diǎn)上。這樣做的效率很低,特別
是大數(shù)據(jù)中的數(shù)據(jù)量是很大的,至少都是GB以上,更大的是TB、PB甚至更大,而且磁盤(pán)I/O、網(wǎng)絡(luò)I/O的效率是很
低的,這樣處理起來(lái)就需要很長(zhǎng)的時(shí)間,遠(yuǎn)遠(yuǎn)不能滿足我們的要求。而移動(dòng)計(jì)算就出現(xiàn)了。
移動(dòng)計(jì)算,也叫做本地計(jì)算,是數(shù)據(jù)就存放在節(jié)點(diǎn)上不再變動(dòng),而是將處理邏輯程序傳輸?shù)礁鱾€(gè)數(shù)據(jù)節(jié)點(diǎn)上。由于
處理程序的大小肯定不會(huì)特別的大,這樣就可以實(shí)現(xiàn)很快將程序傳輸?shù)酱娣艛?shù)據(jù)的各個(gè)節(jié)點(diǎn)上去,然后本地執(zhí)行處
理數(shù)據(jù),效率高?,F(xiàn)在的大數(shù)據(jù)處理技術(shù)都是采用這種方式。
HDFS模型例子:
班級(jí)中有這么多筆記本其實(shí)就可以組成一個(gè)集群是吧,然后隔壁班需要將文件存儲(chǔ)到筆記本中,一個(gè)一個(gè)進(jìn)來(lái)隨便找
一個(gè)筆記本存儲(chǔ),走了之后,過(guò)了一段時(shí)間,需要將文件取走,但是每一個(gè)人都不知道自己上傳到那個(gè)服務(wù)器上了,那么每
臺(tái)都需要找,,這樣一來(lái)操作的復(fù)雜度就高了,那么需要怎么改善這個(gè)問(wèn)題?
犧牲一下,我的筆記本不存數(shù)據(jù)了,專(zhuān)門(mén)記錄存儲(chǔ)的的過(guò)程(NameNode),第一個(gè)人進(jìn)來(lái)先找我,說(shuō)我要存儲(chǔ)文件,然后我
說(shuō)去第一臺(tái)電腦存吧,然后就去第一臺(tái)電腦存儲(chǔ)了,它在存儲(chǔ)文件的時(shí)候,上傳文件需要等幾分鐘,然后第二個(gè)人進(jìn)來(lái)了,
也要存文件,然后我說(shuō)你去第二臺(tái)電腦上存儲(chǔ),那么我與存儲(chǔ)人之間的交互信息量大嗎?不大,是吧我的主要作用就是告
訴對(duì)方去哪存儲(chǔ), 第一臺(tái)電腦在傳第二臺(tái)電腦也再傳,是不是同時(shí)在傳,那么這就相當(dāng)于負(fù)載了,那么他們?cè)谏蟼鞯臅r(shí)候
是獨(dú)立的資源,而不會(huì)去搶占資源.
問(wèn)題:什么時(shí)候記錄這個(gè)存儲(chǔ)記錄?
是在一開(kāi)始對(duì)話的時(shí)候我就記錄,還是在當(dāng)他傳完數(shù)據(jù)后記錄?
一定是傳完數(shù)據(jù)后記錄,這是為了數(shù)據(jù)的一致性
上傳成功后,是上傳人員告訴我上傳成功還是電腦給發(fā)送信息上傳成功
一定是電腦發(fā)送信息上傳成功,因?yàn)橹挥须娔X去認(rèn)了上傳成功了有文件有記錄就OK
是不是很簡(jiǎn)單,很輕松啊,要是早幾年聽(tīng)是不是HDFS就是你開(kāi)發(fā)的了 

  HDFS的特點(diǎn)

  優(yōu)點(diǎn):

  高可靠性:Hadoop按位存儲(chǔ)和處理數(shù)據(jù)的能力值得人們信賴;

  高擴(kuò)展性:Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。

  高效性:Hadoop能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非常快。

  高容錯(cuò)性:Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。

  缺點(diǎn):

  不適合低延遲數(shù)據(jù)訪問(wèn)。

  無(wú)法高效存儲(chǔ)大量小文件。

  不支持多用戶寫(xiě)入及任意修改文件。

  1.4 hdfs核心設(shè)計(jì)思想及作用
  • 分而治之:將大文件、大批量文件,分布式存放在大量服務(wù)器上,以便于采取分而治之的方式對(duì)海量數(shù)據(jù)進(jìn)行運(yùn)算分析;

  • 為各類(lèi)分布式運(yùn)算框架(如:mapreduce,spark,tez,……)提供數(shù)據(jù)存儲(chǔ)服務(wù)

  • hdfs更具體描述

 首先,它是一個(gè)文件系統(tǒng),用于存儲(chǔ)文件,通過(guò)統(tǒng)一的命名空間——目錄樹(shù)來(lái)定位文件

 其次,它是分布式的,由很多服務(wù)器聯(lián)合起來(lái)實(shí)現(xiàn)其功能,集群中的服務(wù)器有各自的角色;

  1.5 重要特性如下:

  HDFS中的文件在物理上是分塊存儲(chǔ)(block),塊的大小可以通過(guò)配置參數(shù)( dfs.blocksize)來(lái)規(guī)定,默認(rèn)大小在hadoop2.x版本中是128M,老版本中是64M。

  HDFS文件系統(tǒng)會(huì)給客戶端提供一個(gè)統(tǒng)一的抽象目錄樹(shù),客戶端通過(guò)路徑來(lái)訪問(wèn)文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。

  目錄結(jié)構(gòu)及文件分塊信息(元數(shù)據(jù))的管理由namenode節(jié)點(diǎn)承擔(dān)——namenode是HDFS集群主節(jié)點(diǎn),負(fù)責(zé)維護(hù)整個(gè)hdfs文件系統(tǒng)的目錄樹(shù),以及每一個(gè)路徑(文件)所對(duì)應(yīng)的block塊信息(block的id,及所在的datanode服務(wù)器)。

  文件的各個(gè)block的存儲(chǔ)管理由datanode節(jié)點(diǎn)承擔(dān)--- datanode是HDFS集群從節(jié)點(diǎn),每一個(gè)block都可以在多個(gè)datanode上存儲(chǔ)多個(gè)副本(副本數(shù)量也可以通過(guò)參數(shù)設(shè)置dfs.replication)。

  HDFS架構(gòu)組成

HDFS基本概念有哪些

NameNode(NN)

  基于內(nèi)存存儲(chǔ) :不會(huì)和磁盤(pán)發(fā)生交換只存在內(nèi)存中

  這樣做的主要目的是為了快,但是內(nèi)存存儲(chǔ)的一個(gè)通病就是掉電易失

  一旦斷電內(nèi)存中存儲(chǔ)的數(shù)據(jù)就什么都沒(méi)有了,所以就需要持久化了(有點(diǎn)打臉了因?yàn)槭切枰酱疟P(pán)中的存儲(chǔ))

  NameNode持久化

  NameNode的metadate信息在啟動(dòng)后會(huì)加載到內(nèi)存

  存儲(chǔ)到磁盤(pán)中有兩種方法:

  第一種:在某個(gè)時(shí)間點(diǎn)以類(lèi)似于”拍快照”的形式將數(shù)據(jù)信息存儲(chǔ)到磁盤(pán)中

  metadata存儲(chǔ)到磁盤(pán)文件名為”fsimage”,Block的位置信息不會(huì)保存到fsimage

  若是回復(fù),需要等待DataNode重新匯報(bào)信息Block每副本位置(由DataNode上報(bào))

  第二種:以日志的方式生成文件edit log記錄對(duì)metadata的操作日志

  NameNode主要功能:

  接受客戶端的讀寫(xiě)服務(wù),收集DataNode匯報(bào)的Block列表信息

  NameNode保存metadata信息包括

  文件所屬權(quán)和權(quán)限,文件大小,時(shí)間(Block列表:Block偏移量),位置信息

DataNode(DN)

  DataNode是Block真正存儲(chǔ)的地方。DataNode的本地磁盤(pán)以文件形式存儲(chǔ)著B(niǎo)lock信息。同時(shí)還存儲(chǔ)著B(niǎo)lock的元數(shù)據(jù)信息文件。 

  元數(shù)據(jù)主要存儲(chǔ)MD5值 用來(lái)進(jìn)行驗(yàn)證
HDFS在啟動(dòng)時(shí),DataNode會(huì)向NameNode匯報(bào)block的信息。 
DataNode通過(guò)向NameNode發(fā)送心跳保持與其聯(lián)系(3秒一次),如果NameNode 10分鐘沒(méi)有收到DataNode的心跳,則認(rèn)為其已經(jīng)lost,并復(fù)制其上的block到其它DataNode。

SecondaryNameNode(SNN)

  初看名字,你可能會(huì)以為SecondaryNameNode是NameNode的備份,實(shí)際上,SecondaryNameNode的主要作用并不是這個(gè),當(dāng)然它也可以用來(lái)做備份。 
要了解SecondaryNameNode的作用,就不得不說(shuō)一下HDFS的啟動(dòng)過(guò)程。 
上面我們已經(jīng)提到了兩個(gè)文件fsimage和edits。fsimage是當(dāng)前HDFS系統(tǒng)的快照。edits記錄了對(duì)HDFS的各種操作日志。 

  假設(shè):有一個(gè)集群跑了10年一點(diǎn)問(wèn)題都沒(méi)有,fsimage是十年前的一個(gè)點(diǎn),為了不影響性能,只記錄了一次,而edits一直在記錄日子,吧唧,服務(wù)器宕機(jī)了,重啟恢復(fù),

  HDFS在啟動(dòng)的時(shí)候,根據(jù)fsimage和edit log日志可以得到系統(tǒng)當(dāng)前最新的狀態(tài),并產(chǎn)生一個(gè)新的fsimage文件。這樣的啟動(dòng)時(shí)很耗時(shí)間的。尤其是當(dāng)edit log文件非常大的時(shí)候,合并會(huì)占用很多額外的時(shí)間。

以上是“HDFS基本概念有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

分享標(biāo)題:HDFS基本概念有哪些-創(chuàng)新互聯(lián)
地址分享:http://bm7419.com/article34/gogpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、ChatGPT、品牌網(wǎng)站建設(shè)電子商務(wù)、域名注冊(cè)外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)