資源描述:
《基于hadoop的分布式文件系統(tǒng)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、基于Hadoop的分布式文件系統(tǒng) 摘要HDFS是Hadoop應(yīng)用用到的一個(gè)最主要的分布式存儲(chǔ)系統(tǒng),Hadoop分布式文件系統(tǒng)具有方便、健壯、可擴(kuò)展性、容錯(cuò)性能好、操作簡單、成本低廉等許多優(yōu)勢。。深入了解HDFS的工作原理對在特定集群上改進(jìn)HDFS的運(yùn)行性能和錯(cuò)誤診斷都有極大的幫助。本文介紹了HDFS的主要設(shè)計(jì)理念、主要概念及其高可靠性的實(shí)現(xiàn)等?! 娟P(guān)鍵詞】Hadoop分布式文件系統(tǒng) Hadoop是新一代的大數(shù)據(jù)處理平臺(tái),在近十年中已成為大數(shù)據(jù)革命的中心,它不僅僅承擔(dān)存儲(chǔ)海量數(shù)據(jù),還通過分析從中獲取有價(jià)值信息。進(jìn)行海
2、量計(jì)算需要一個(gè)穩(wěn)定的,安全的數(shù)據(jù)容器,管理網(wǎng)絡(luò)中跨多臺(tái)計(jì)算機(jī)存儲(chǔ)的文件系統(tǒng)稱為分布式文件系統(tǒng)。Hadoop分布式文件系統(tǒng)(HadoopDistributedFileSystem)運(yùn)應(yīng)而生,它是Hadoop的底層實(shí)現(xiàn)部分,存儲(chǔ)Hadoop集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件?! ?HDFS的設(shè)計(jì)理念 面對存儲(chǔ)超大文件,Hadoop分布式文件系統(tǒng)采用了流式數(shù)據(jù)訪問模式。所謂流式數(shù)據(jù),簡單的說就是像流水一樣,數(shù)據(jù)一點(diǎn)一點(diǎn)“流”過來,處理數(shù)據(jù)也是一點(diǎn)一點(diǎn)處理。如果是全部收到數(shù)據(jù)以后再進(jìn)行處理,那么延遲會(huì)很大,而且會(huì)消耗大量計(jì)算機(jī)內(nèi)存?!?/p>
3、 1.1存儲(chǔ)超大文件 這里的“超大文件”通常達(dá)到幾百GB甚至達(dá)到TB大小的文件。像大型的應(yīng)用系統(tǒng),其存儲(chǔ)超過PB級(jí)數(shù)據(jù)的Hadoop集群比比皆是。 1.2數(shù)據(jù)訪問模式 最高效的訪問模式是一次寫入、多次讀取。HDFS的構(gòu)建思路也是這樣的。HDFS存儲(chǔ)的數(shù)據(jù)集作為Hadoop的分析對象。在數(shù)據(jù)集生成以后,采用各種不同分析方法對該數(shù)據(jù)集進(jìn)行長時(shí)間分析,而且分析涉及到該數(shù)據(jù)集的大部分?jǐn)?shù)據(jù)或者全部數(shù)據(jù)。面對龐大數(shù)據(jù),時(shí)間延遲是不可避免的,因此,Hadoop不適合運(yùn)行低時(shí)間延遲數(shù)據(jù)訪問的應(yīng)用?! ?.3運(yùn)行在普通廉價(jià)的服務(wù)器上
4、 HDFS設(shè)計(jì)理念之一就是讓它能運(yùn)行在普通的硬件之上,即便硬件出現(xiàn)故障,也可以通過容錯(cuò)策略來保證數(shù)據(jù)的高可用?! ?HDFS的主要概念 2.1數(shù)據(jù)塊(block) HDFS最基本的存儲(chǔ)單位是64M的數(shù)據(jù)塊,與普通文件系統(tǒng)相比,HDFS有這樣的優(yōu)點(diǎn):假如一個(gè)文件小于一個(gè)數(shù)據(jù)塊的大小,則不會(huì)占用整個(gè)數(shù)據(jù)塊存儲(chǔ)空間。抽象塊具有文件的所有塊不需要存儲(chǔ)在同一磁盤上的優(yōu)點(diǎn),使用抽象塊作為存儲(chǔ)單元,則大大簡化了存儲(chǔ)子系統(tǒng)的設(shè)計(jì)?! ?shù)據(jù)塊如設(shè)置過大,會(huì)導(dǎo)致集群利用率過低。如設(shè)置過小,要維護(hù)的元數(shù)據(jù)信息過多,由于元數(shù)據(jù)信息是存儲(chǔ)在
5、內(nèi)存中的,所以可能會(huì)造成內(nèi)存溢出?! ?.2HDFS數(shù)據(jù)節(jié)點(diǎn) 2.2.1元數(shù)據(jù)節(jié)點(diǎn)(Namenode) ?。?)其將所有的文件和文件夾的元數(shù)據(jù)保存在一個(gè)文件系統(tǒng)樹中?! 。?)元數(shù)據(jù)中存放著文件包括哪些數(shù)據(jù)塊以及這些數(shù)據(jù)分布到哪些DataNode數(shù)據(jù)節(jié)點(diǎn)上?! ?VERSION――保存著Hadoop分布式文件系統(tǒng)的版本號(hào)。 ?fsimage――元數(shù)據(jù)的鏡像文件,元數(shù)據(jù)保存在磁盤上的一個(gè)副本?! ?edits――修改日志文件,記錄引發(fā)元數(shù)據(jù)改變的操作?! ?fstime――合并fimage和edits的時(shí)間?! ?.2
6、.2數(shù)據(jù)節(jié)點(diǎn)(DataNode) (1)文件系統(tǒng)數(shù)據(jù)真正存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)?! 。?)將存儲(chǔ)的數(shù)據(jù)塊信息周期性的向元數(shù)據(jù)信息(namenode)回報(bào)?! 。?)數(shù)據(jù)節(jié)點(diǎn)為客戶端(client)或者元數(shù)據(jù)信息(namenode)提供寫入或者讀出數(shù)據(jù)塊的請求?! ?.2.3從元數(shù)據(jù)節(jié)點(diǎn)(secondarynamenode) (1)元數(shù)據(jù)節(jié)點(diǎn)和從元數(shù)據(jù)節(jié)點(diǎn)分工不同,它們負(fù)責(zé)的事情并不相同,從元數(shù)據(jù)節(jié)點(diǎn)并不是元數(shù)據(jù)節(jié)點(diǎn)的備用節(jié)點(diǎn)?! 。?)從元數(shù)據(jù)節(jié)點(diǎn)主要功能以防edits修改日志文件過大,周期性將元數(shù)據(jù)節(jié)點(diǎn)的fsimage和e
7、dits合并?! 。?)simage和edits合并過后的命名空間鏡像文件從元數(shù)據(jù)節(jié)點(diǎn)也保存了一份,以防元數(shù)據(jù)節(jié)點(diǎn)失敗的時(shí)候,可以恢復(fù),確保數(shù)據(jù)的安全性。 3HDFS高可靠性的??現(xiàn) 3.1安全模式 所謂安全模式就是Hadoop分布式文件系統(tǒng)剛剛啟動(dòng)時(shí),名字節(jié)點(diǎn)進(jìn)入一個(gè)特殊的狀態(tài)。當(dāng)處于安全模式時(shí),名字節(jié)點(diǎn)不能做任何文件操作,甚至不允許內(nèi)部的副本創(chuàng)建。名字節(jié)點(diǎn)需要收集各個(gè)數(shù)據(jù)節(jié)點(diǎn)的報(bào)告,當(dāng)數(shù)據(jù)塊達(dá)到最小副本數(shù)以上時(shí),會(huì)被認(rèn)為是“安全”的。當(dāng)認(rèn)為安全的數(shù)據(jù)塊所占的比例達(dá)到了某個(gè)閾值(可配置),在過若干時(shí)間,安全模式結(jié)
8、束,當(dāng)檢測到副本數(shù)不足的數(shù)據(jù)塊是,該塊會(huì)被復(fù)制,直到達(dá)到最小副本數(shù)?! ?.2數(shù)據(jù)一致性 在HDFS中,每一個(gè)數(shù)據(jù)塊,都有一個(gè)版本標(biāo)識(shí),假如數(shù)據(jù)發(fā)生變化,則版本標(biāo)識(shí)將會(huì)相應(yīng)變化,在元數(shù)據(jù)信息(namenode)里,保存著各個(gè)數(shù)據(jù)塊的版本,如果出現(xiàn)與數(shù)據(jù)服務(wù)器上版本不一致,則會(huì)啟動(dòng)恢復(fù)流程。由于各個(gè)網(wǎng)絡(luò)情況非常復(fù)雜,