Hadoop分布式存儲(chǔ)

HDFS是Hadoop Distribute File System的簡(jiǎn)稱,Hadoop的一個(gè)分布式文件系統(tǒng)

HDFS的優(yōu)缺點(diǎn)

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

  • 高容錯(cuò)性
    • 數(shù)據(jù)保存多個(gè)副本沉填,完全分布式模式默認(rèn)為3個(gè)副本
    • 數(shù)據(jù)丟失后自動(dòng)恢復(fù)
  • 適合移動(dòng)批處理
    • 移動(dòng)計(jì)算而移動(dòng)數(shù)據(jù)
    • 數(shù)據(jù)位置暴露給計(jì)算框架
  • 適合大數(shù)據(jù)處理
    • GB、TB甚至PB級(jí)的數(shù)據(jù)處理
    • 百萬規(guī)模以上的文件數(shù)據(jù)
    • 10000+的節(jié)點(diǎn)
  • 可構(gòu)建在廉價(jià)的機(jī)器上
    • 通過多副本存儲(chǔ),提供可靠性
    • 提供了容器和恢復(fù)機(jī)制

HDFS缺點(diǎn)

  • 低延遲數(shù)據(jù)訪問處理較弱
    • 毫秒級(jí)別的訪問響應(yīng)較慢
    • 低延遲和高吞吐的請(qǐng)求處理較弱
  • 大量小文件存取處理較弱
    • 會(huì)占用大量NameNode的內(nèi)存
    • 尋到時(shí)間超過讀取時(shí)間
  • 并發(fā)寫入、文件隨機(jī)修改
    • 一個(gè)文件僅有一個(gè)寫者
    • 僅支持Append寫入

HDFS 架構(gòu)

HDFS 架構(gòu)

HDFS采用master/slave架構(gòu)题山。

一個(gè)HDFS集群是由一個(gè)Namenode和一定數(shù)目的Datanodes組成。

  • NameNode :是Master節(jié)點(diǎn)故痊,是大領(lǐng)導(dǎo)顶瞳。管理數(shù)據(jù)塊映射;處理客戶端的讀寫請(qǐng)求愕秫;配置副本策略慨菱;管理HDFS的名稱空間
  • SecondaryNameNode:是一個(gè)小弟,分擔(dān)大哥namenode的一部分工作量豫领;是NameNode的冷備份抡柿;合并fsimage和fsedits然后再發(fā)給namenode
  • DataNode: Slave節(jié)點(diǎn),奴隸等恐,干活的洲劣。負(fù)責(zé)存儲(chǔ)client發(fā)來的數(shù)據(jù)塊block;執(zhí)行數(shù)據(jù)塊的讀寫操作
  • 熱備份:b是a的熱備份课蔬,如果a壞掉囱稽。那么b馬上運(yùn)行代替a的工作
  • 冷備份:b是a的冷備份,如果a壞掉二跋。那么b不能馬上代替a工作战惊。但是b上存儲(chǔ)a的一些信息,減少a壞掉之后的損失
  • fsimage:元數(shù)據(jù)鏡像文件(文件系統(tǒng)的目錄樹)
  • edits:元數(shù)據(jù)的操作日志(針對(duì)文件系統(tǒng)做的修改操作記錄
  • namenode內(nèi)存中存儲(chǔ)的是=fsimage+edits
  • SecondaryNameNode負(fù)責(zé)定時(shí)默認(rèn)1小時(shí)扎即,從namenode上吞获,獲取fsimage和edits來進(jìn)行合并,然后再發(fā)送給namenode谚鄙。減少namenode的工作量

NameNode(NN)各拷、SencondryNameNode(SNN)、DataNode(Dn)介紹

  • *NameNode(NN)
    • 接受客戶端的讀寫服務(wù)
    • 保存metadata的信息闷营,包括:文件的owership和permissions烤黍、文件包含哪些block、block保存在哪些DataNode節(jié)點(diǎn)上(在啟動(dòng)時(shí)由DataNode上報(bào))
    • NameNode的metadata信息會(huì)在啟動(dòng)后加載到內(nèi)存中
      a. metadata信息在磁盤上的存儲(chǔ)文件為fsimage
      b.Block的位置信息不保存在fsimage中(由DataNode上報(bào))
      c.edits中保存對(duì)metadata的操作日志
  • SecondryNameNode(SNN)
    • 它不是NN的備份(但可以做NN的部分備份工作)傻盟,它的主要工作是幫助NN合并edits log速蕊,減少NN的啟動(dòng)時(shí)間
    • SNN合并時(shí)機(jī)
      a.根據(jù)配置文件設(shè)置的時(shí)間間隔fs.checkpoint.period默認(rèn)是3600秒
      b.根據(jù)配置文件設(shè)置的edits log的大小fs.checkpoint.size默認(rèn)的edits log大小為64MB
  • SNN合并流程
    a. NN創(chuàng)建一個(gè)新的edits log來接替老的edits的工作
    b. NN將fsimage和舊的edits拷貝到SNN上
    c. SNN上進(jìn)行合并操作,產(chǎn)生一個(gè)新的fsimage
    d. 將新的fsimage復(fù)制一份到NN上
    f. 使用新的fsimage和新的edits log
  • DataNode(DN)
    • 存儲(chǔ)數(shù)塊(block)
    • 啟動(dòng)DN線程時(shí)娘赴,DN會(huì)自動(dòng)想NN匯報(bào)Block的信息
    • NN向DN發(fā)送心跳檢測(cè)规哲,與其DN保持聯(lián)系(3秒一次),如果NN連續(xù)10分鐘沒有收到DN的心跳诽表,則認(rèn)為該DN已經(jīng)lost媳叨,并從其他DN中備份一份該DN上的所有Block
    • block的放置策略
      • 第一個(gè)副本腥光,放置在上傳文件的DN上,如果是集群外提交糊秆,則隨便選擇一臺(tái)磁盤、內(nèi)存议双、CPU不太忙的節(jié)點(diǎn)存儲(chǔ)
      • 第二個(gè)副本痘番,放置在與第一個(gè)副本不同機(jī)架上的節(jié)點(diǎn)上
      • 第三個(gè)副本,放置在與第二個(gè)副本相同機(jī)架上的相鄰節(jié)點(diǎn)上
      • 更多副本隨機(jī)放置

HDFS寫入流程

HDFS上傳文件
原理
  • NameNode具有RackAware機(jī)架感知功能平痰,可以配置
  • 若client為DataNode節(jié)點(diǎn)汞舱,那存儲(chǔ)block時(shí),規(guī)則為:副本1宗雇,同client的節(jié)點(diǎn)上昂芜;副本2,不同機(jī)架節(jié)點(diǎn)上赔蒲;副本3泌神,同第二個(gè)副本機(jī)架的另一個(gè)節(jié)點(diǎn)上;其他副本隨機(jī)挑選
  • 若client不為DataNode節(jié)點(diǎn)舞虱,那存儲(chǔ)block時(shí)欢际,規(guī)則為:副本1,隨機(jī)選擇一個(gè)節(jié)點(diǎn)上矾兜;副本2损趋,不同副本1機(jī)架上;副本3椅寺,同副本2相同的另一個(gè)節(jié)點(diǎn)上浑槽;其他副本隨機(jī)挑選
  • client想DataNode發(fā)送Block1;發(fā)送過程以流式寫入

HDFS的讀取流程

HDFS讀取文件

HDFS讀取多副本
  • client向NameNode發(fā)送讀請(qǐng)求
  • NameNode查看Metadata信息,返回文件的block的位置
    block1 = 1返帕,5桐玻,6
    block2 = 8,1溉旋,2
    block3 = 5畸冲,8,9
  • block的位置是有先后順序的观腊,先讀block1邑闲,再讀block2、block3梧油。而且block1去node1上讀取苫耸,然后block2去node8上讀取,block3去node5上讀取

副本選擇

為了降低整體的帶寬消耗和讀取延時(shí)儡陨,HDFS會(huì)盡量讓讀取程序讀取離它最近的副本褪子。如果在讀取程序的同一個(gè)機(jī)架上有一個(gè)副本量淌,那么就讀取該副本。如果一個(gè)HDFS集群跨越多個(gè)數(shù)據(jù)中心嫌褪,那么客戶端也將首先讀本地?cái)?shù)據(jù)中心的副本

安全模式

Namenode啟動(dòng)后會(huì)進(jìn)入一個(gè)稱為安全模式的特殊狀態(tài)呀枢。處于安全模式的Namenode是不會(huì)進(jìn)行數(shù)據(jù)塊的復(fù)制的。Namenode從所有的 Datanode接收心跳信號(hào)和塊狀態(tài)報(bào)告笼痛。塊狀態(tài)報(bào)告包括了某個(gè)Datanode所有的數(shù)據(jù)塊列表裙秋。每個(gè)數(shù)據(jù)塊都有一個(gè)指定的最小副本數(shù)。當(dāng)Namenode檢測(cè)確認(rèn)某個(gè)數(shù)據(jù)塊的副本數(shù)目達(dá)到這個(gè)最小值缨伊,那么該數(shù)據(jù)塊就會(huì)被認(rèn)為是副本安全(safely replicated)的摘刑;在一定百分比(這個(gè)參數(shù)可配置)的數(shù)據(jù)塊被Namenode檢測(cè)確認(rèn)是安全之后(加上一個(gè)額外的30秒等待時(shí)間),Namenode將退出安全模式狀態(tài)刻坊。接下來它會(huì)確定還有哪些數(shù)據(jù)塊的副本沒有達(dá)到指定數(shù)目枷恕,并將這些數(shù)據(jù)塊復(fù)制到其他Datanode上

通信協(xié)議

所有的HDFS通訊協(xié)議都是建立在TCP/IP協(xié)議之上√放撸客戶端通過一個(gè)可配置的TCP端口連接到Namenode徐块,通過ClientProtocol協(xié)議與Namenode交互。而Datanode使用DatanodeProtocol協(xié)議與Namenode交互漏益。一個(gè)遠(yuǎn)程過程調(diào)用(RPC)模型被抽象出來封裝ClientProtocol和Datanodeprotocol協(xié)議蛹锰。在設(shè)計(jì)上,Namenode不會(huì)主動(dòng)發(fā)起RPC绰疤,而是響應(yīng)來自客戶端或 Datanode 的RPC請(qǐng)求

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铜犬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子轻庆,更是在濱河造成了極大的恐慌癣猾,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件余爆,死亡現(xiàn)場(chǎng)離奇詭異纷宇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蛾方,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門像捶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桩砰,你說我怎么就攤上這事拓春。” “怎么了亚隅?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵硼莽,是天一觀的道長。 經(jīng)常有香客問我煮纵,道長懂鸵,這世上最難降的妖魔是什么偏螺? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮匆光,結(jié)果婚禮上套像,老公的妹妹穿的比我還像新娘。我一直安慰自己终息,他們只是感情好凉夯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著采幌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪震桶。 梳的紋絲不亂的頭發(fā)上休傍,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音蹲姐,去河邊找鬼磨取。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柴墩,可吹牛的內(nèi)容都是我干的忙厌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼江咳,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逢净!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歼指,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤爹土,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后踩身,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胀茵,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年挟阻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琼娘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡附鸽,死狀恐怖脱拼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拒炎,我是刑警寧澤挪拟,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站击你,受9級(jí)特大地震影響玉组,放射性物質(zhì)發(fā)生泄漏谎柄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一惯雳、第九天 我趴在偏房一處隱蔽的房頂上張望朝巫。 院中可真熱鬧,春花似錦石景、人聲如沸劈猿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揪荣。三九已至,卻和暖如春往史,著一層夾襖步出監(jiān)牢的瞬間仗颈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工椎例, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挨决,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓订歪,卻偏偏與公主長得像脖祈,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刷晋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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