理解什么是大數(shù)據(jù)和Hadoop

HDFS是Hadoop系統(tǒng)的存儲(chǔ)部分景鼠。它是塊結(jié)構(gòu)的文件系統(tǒng)帘腹,其中每個(gè)文件被分成預(yù)定大小的塊耽梅。這些塊存儲(chǔ)在一臺(tái)或多臺(tái)機(jī)器的集群中挨约。HDFS適用于兩種類型的節(jié)點(diǎn):NameNode(主節(jié)點(diǎn))和DataNodes(從節(jié)點(diǎn))

Hadoop NameNodes

NameNodes是HDFS文件系統(tǒng)的核心款慨。它們保留文件系統(tǒng)中所有文件的目錄樹儒飒,并跟蹤集群中數(shù)據(jù)的保存位置。它們不存儲(chǔ)這些文件的數(shù)據(jù)檩奠。這是一臺(tái)非常高效的機(jī)器桩了。客戶端應(yīng)用程序只要希望查找文件埠戳,或者想要添加/復(fù)制/移動(dòng)/刪除文件井誉,就可以與NameNode通信。NameNodes還執(zhí)行文件系統(tǒng)執(zhí)行整胃,例如命名颗圣,關(guān)閉和打開文件/目錄。所有DataNode都會(huì)將心跳和阻止報(bào)告發(fā)送到Hadoop集群中的NameNode。它確保DataNode存活在岂。塊報(bào)告包含datanode上所有塊的列表奔则。與namenode中的群集元數(shù)據(jù)關(guān)聯(lián)的主要文件是:

  • EditLogs:包含最近對(duì)最新FsImage文件系統(tǒng)所做的所有修改。NameNodes從客戶端接收創(chuàng)建/更新/刪除請(qǐng)求蔽午。之后易茬,首先記錄此請(qǐng)求以編輯文件。
  • FsImage:代表文件系統(tǒng)映像祠丝。它包含自NameNode創(chuàng)建以來的完整文件系統(tǒng)命名空間疾呻。文件和目錄由NameInode在inode中表示。Inode記錄屬性写半,如權(quán)限岸蜗,修改和訪問時(shí)間,或命名空間和磁盤空間配額叠蝇。

Hadoop DataNodes

這些是真實(shí)數(shù)據(jù)所在的商品硬件璃岳。這些也稱為從節(jié)點(diǎn)。多個(gè)數(shù)據(jù)節(jié)點(diǎn)組合在一起形成機(jī)架悔捶。DataNodes根據(jù)NameNode的指令阻止副本的創(chuàng)建铃慷,刪除和復(fù)制。DataNode將心跳發(fā)送到NameNode以報(bào)告HDFS數(shù)據(jù)的運(yùn)行狀況蜕该。默認(rèn)情況下犁柜,此頻率設(shè)置為3秒。

Secondary NameNodes

在HDFS中堂淡,當(dāng)NameNode啟動(dòng)時(shí)馋缅,它首先從FsImage文件中讀取HDFS文件的狀態(tài)。之后绢淀,它將應(yīng)用編輯日志文件中的編輯萤悴。NameNode然后將新的HDFS狀態(tài)寫入FsImage。然后它使用空的編輯文件開始正常操作皆的。在啟動(dòng)時(shí)覆履,NameNode與FsImage合并并編輯文件,因此編輯日志文件可能會(huì)隨著時(shí)間的推移而變得非常大费薄。較大的編輯文件的副作用是NameNode的下一次重新啟動(dòng)需要更長(zhǎng)時(shí)間硝全。輔助NameNode解決了此問題。輔助NameNode從NameNode下載FsImage和EditLogs楞抡,然后將編輯日志與FsImage(文件系統(tǒng)映像)合并伟众。它使編輯日志的大小保持在一個(gè)限制內(nèi)。它將修改后的FsImage存儲(chǔ)到持久存儲(chǔ)中,因此我們可以在NameNode失敗的情況下使用它。

HDFS如何工作

HDFS在以下假設(shè)下工作:一次寫入并經(jīng)常讀取八拱。

在這里插入圖片描述

用HDFS寫

當(dāng)客戶端想要將文件寫入HDFS時(shí),它會(huì)與NameNode通信以獲取元數(shù)據(jù)数初。NameNode以許多塊,它們的位置梗顺,副本和其他詳細(xì)信息進(jìn)行響應(yīng)泡孩。根據(jù)NameNode的信息,客戶端將文件分成多個(gè)塊寺谤。之后仑鸥,它開始將它們發(fā)送到第一個(gè)DataNode。

客戶端首先使用其他兩個(gè)DataNode的詳細(xì)信息將塊A發(fā)送到DataNode 1变屁。當(dāng)DataNode 1從客戶端接收塊A時(shí)眼俊,DataNode 1將同一塊復(fù)制到同一機(jī)架的DataNode 2。由于兩個(gè)DataNode都在同一個(gè)機(jī)架中粟关,因此可以通過機(jī)架式交換機(jī)傳輸塊〈郑現(xiàn)在,DataNode 2將相同的塊復(fù)制到DataNode 3.由于兩個(gè)DataNode位于不同的機(jī)架中闷板,因此塊通過機(jī)架外交換機(jī)傳輸數(shù)據(jù)澎灸。當(dāng)DataNode從客戶端接收這些塊時(shí),它會(huì)向NameNode發(fā)送寫入確認(rèn)遮晚。對(duì)文件中的每個(gè)塊重復(fù)相同的過程性昭。

在HDFS中創(chuàng)建文件

如果客戶端必須在HDFS內(nèi)創(chuàng)建文件,則需要與NameNode進(jìn)行交互县遣。NameNode提供客戶端可以寫入其數(shù)據(jù)的所有從站的地址糜颠。客戶端還從NameNode獲取安全令牌艺玲,他們需要在寫入塊之前向從屬設(shè)備進(jìn)行身份驗(yàn)證括蝠。

要?jiǎng)?chuàng)建文件,客戶端將create() 在DistributedFileSystem上執(zhí)行該 方法》咕郏現(xiàn)在忌警,DistributedFileSystem通過創(chuàng)建一個(gè)RPC(遠(yuǎn)程過程調(diào)用)來與NameNode進(jìn)行交互,以創(chuàng)建一個(gè)在文件系統(tǒng)命名空間中沒有與之關(guān)聯(lián)的塊的新文件秒梳。NameNode執(zhí)行各種檢查法绵,以確保不存在此類文件,并且客戶端有權(quán)創(chuàng)建新文件酪碘。

如果這一切順利進(jìn)行朋譬,則NameNode會(huì)創(chuàng)建新文件的記錄; 否則,文件創(chuàng)建失敗兴垦,并向客戶端拋出IOException徙赢。FSDataOutputStream為客戶端返回DistributedFileSystem字柠,以便開始將數(shù)據(jù)寫入DataNode。與DataNode和客戶端的通信由DFSOutputStream處理狡赐,DFSOutputStream是FSDataOutputStream的一部分窑业。

讀入HDFS

這是一個(gè)相對(duì)容易的操作。此操作分兩步進(jìn)行:

  • 客戶端與NameNode的交互枕屉。
  • 客戶端與DataNode的交互常柄。

NameNodes包含有關(guān)哪個(gè)塊存儲(chǔ)在HDFS中哪個(gè)特定從站上的所有信息,哪些塊用于該特定文件搀擂。因此西潘,客戶端需要與NameNode交互以獲得實(shí)際存儲(chǔ)塊的從站的地址。NameNode將提供包含所需塊的從站的詳細(xì)信息哨颂。讓我們更詳細(xì)地了解客戶端和NameNode交互喷市。為了訪問存儲(chǔ)在HDFS中的塊,客戶端使用該命令發(fā)起請(qǐng)求 open() 獲取FileSystem對(duì)象的方法威恼,該對(duì)象是DistributedFileSystem的一部分《ǎ現(xiàn)在,F(xiàn)ileSystem將使用RPC(遠(yuǎn)程過程調(diào)用)與NameNode進(jìn)行交互沃测,以獲取包含客戶端請(qǐng)求的文件塊的從屬的位置缭黔。在此級(jí)別,NameNodes將檢查客戶端是否有權(quán)訪問該文件蒂破。如果是馏谨,則發(fā)送有關(guān)塊位置的信息。此外附迷,它還為客戶端提供了一個(gè)安全令牌惧互,客戶端需要向客戶端顯示這些令牌以進(jìn)行身份驗(yàn)證。

現(xiàn)在喇伯,在接收到包含塊的從設(shè)備的地址之后喊儡,客戶端將直接與從設(shè)備交互以讀取塊。數(shù)據(jù)將直接從從服務(wù)器流向客戶端(它不會(huì)通過NameNode流動(dòng))稻据“拢客戶端并行從多個(gè)從站讀取數(shù)據(jù)塊。讓我們更詳細(xì)地了解客戶端和NameNode交互捻悯〈以撸客戶端將通過FSDataInputStream對(duì)象向從屬服務(wù)器發(fā)送讀取請(qǐng)求〗窀浚客戶端和DataNode之間的所有交互都由DFSInputStream管理算柳,DFSInputStream是客戶端API的一部分⌒昭裕客戶端將向NameNode提供的從屬設(shè)備顯示身份驗(yàn)證令牌∷蚕睿現(xiàn)在蔗蹋,客戶端將使用InputStream API開始讀取塊,并且將從DataNode和客戶端連續(xù)傳輸數(shù)據(jù)囱淋。到達(dá)一個(gè)街區(qū)結(jié)束后纸颜,DFSInputStream關(guān)閉與DataNode的連接。讀取操作是高度優(yōu)化的绎橘,因?yàn)樗簧婕癗ataNode實(shí)際數(shù)據(jù)讀取,否則NameNode將成為瓶頸唠倦。由于采用分布式并行讀取機(jī)制称鳞,數(shù)千個(gè)客戶端可以非常有效地直接從DataNode讀取數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稠鼻,一起剝皮案震驚了整個(gè)濱河市冈止,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌候齿,老刑警劉巖熙暴,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異慌盯,居然都是意外死亡周霉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門亚皂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俱箱,“玉大人,你說我怎么就攤上這事灭必∧祝” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵禁漓,是天一觀的道長(zhǎng)跟衅。 經(jīng)常有香客問我,道長(zhǎng)播歼,這世上最難降的妖魔是什么伶跷? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮秘狞,結(jié)果婚禮上撩穿,老公的妹妹穿的比我還像新娘。我一直安慰自己谒撼,他們只是感情好食寡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著廓潜,像睡著了一般抵皱。 火紅的嫁衣襯著肌膚如雪善榛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天呻畸,我揣著相機(jī)與錄音移盆,去河邊找鬼。 笑死伤为,一個(gè)胖子當(dāng)著我的面吹牛咒循,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绞愚,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼叙甸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了位衩?” 一聲冷哼從身側(cè)響起裆蒸,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糖驴,沒想到半個(gè)月后僚祷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贮缕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年辙谜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片感昼。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筷弦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抑诸,到底是詐尸還是另有隱情烂琴,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布蜕乡,位于F島的核電站奸绷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏层玲。R本人自食惡果不足惜号醉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辛块。 院中可真熱鬧畔派,春花似錦、人聲如沸润绵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尘盼。三九已至憨愉,卻和暖如春烦绳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背配紫。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國打工径密, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人躺孝。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓享扔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親植袍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惧眠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容