Hadoop集群之HDFS

HDFS簡介

HDFS全稱Hadoop Distributed File System会通,是一個(gè)分布式文件系統(tǒng)螟凭,基于Google三大論文之一的Google File System開發(fā)货葬。主要為了解決在多個(gè)普通的節(jié)點(diǎn)(廉價(jià)的機(jī)器,只要有存儲(chǔ)空間卤材,cpu和內(nèi)存要求不高)上存儲(chǔ)并訪問日益增長的業(yè)務(wù)數(shù)據(jù)邻邮,并且在理論上可以實(shí)現(xiàn)橫向無限擴(kuò)展竣况。

架構(gòu)介紹

HDFS采用的是主從架構(gòu)(Master/Slave),其中namenode是主節(jié)點(diǎn)筒严,datanode是從節(jié)點(diǎn)丹泉,如下圖所示:
HDFS架構(gòu)
  • Namenode
    1.接收客戶端的讀寫請(qǐng)求
    2.存儲(chǔ)文件的元數(shù)據(jù),主要包括文件的文件名鸭蛙,Block信息摹恨,副本數(shù),文件的位置信息等
    3.接收Datanode的心跳上報(bào)
    所以娶视,如果Namenode很重要晒哄,如果down掉將不能接受Client請(qǐng)求,整個(gè)HDFS將不可用肪获。
  • Datanode
    1.客戶端實(shí)際的讀寫IO
    2.接受Namenode指令寝凌,進(jìn)行Datanode之間的block副本的拷貝
    3.上報(bào)給Datanode自身的信息(健康狀況、文件讀寫情況等)
  • Block
    一個(gè)大文件被切分成多個(gè)Block塊孝赫,Hadoop 2.0后塊的默認(rèn)大小是128M较木,一個(gè)Block有多個(gè)副本,它們被存儲(chǔ)在不同的節(jié)點(diǎn)上青柄,具體存儲(chǔ)策略可查閱相關(guān)資料伐债。

常用命令

HDFS是一個(gè)文件系統(tǒng)预侯,它遵循了與Linux類似的POSIX標(biāo)準(zhǔn),所以有類似于linux的shell命令行操作接口(命令)峰锁。主要提供了User Commands萎馅、Admin Commands以及Debug Commands:

HDFS命令

常用的用戶命令有dfs、fsck虹蒋,下面舉個(gè)例子:
1.查看根目錄下的文件列表
hdfs dfs -ls /
2.查看根目錄下所有文件的大小
hdfs dfs -du /
等校坑,fsck主要用來查看文件的block信息,以及修復(fù)損壞的block等千诬。
常用的管理命令有balancer耍目,用來平衡各個(gè)Datanode節(jié)點(diǎn)之間的存儲(chǔ)負(fù)載。
具體各個(gè)命令的用法可以查詢官方文檔HDFS命令徐绑,自己去探索邪驮。

內(nèi)存受限問題

為了快速響應(yīng)文件讀寫請(qǐng)求,HDFS把所有的元數(shù)據(jù)都存儲(chǔ)在Namenode內(nèi)存中傲茄,隨著業(yè)務(wù)數(shù)據(jù)增多或小文件很多毅访,都會(huì)導(dǎo)致Namenode 占用內(nèi)存不斷增加,如果占用內(nèi)存接近極限盘榨,會(huì)導(dǎo)致HDFS不可用喻粹,這樣就導(dǎo)致了內(nèi)存受限問題。在實(shí)際生產(chǎn)環(huán)境中草巡,可以用官方的Federation解決方案守呜,按業(yè)務(wù)分成多個(gè)HDFS集群;也可以提前評(píng)估數(shù)據(jù)基數(shù)及其增長速度,保證Namenode有足夠的可用內(nèi)存山憨;同時(shí)要做好定時(shí)小文件的合并查乒。

單點(diǎn)故障問題

我們上面已經(jīng)講到Namenode在集群中的地位至關(guān)重要,如果它down掉了將影響整個(gè)集群的訪問郁竟,存在單點(diǎn)故障問題玛迄,主要表現(xiàn)在以下幾方面:

  • 如果Namenode掛掉了,無法接收Client的讀寫請(qǐng)求棚亩,直接影響業(yè)務(wù)
  • Namenode節(jié)點(diǎn)掛掉后蓖议,如果元數(shù)據(jù)信息丟失(比如硬盤損壞),整個(gè)集群數(shù)據(jù)將無法恢復(fù)讥蟆,造成災(zāi)難性后果

    針對(duì)以上兩點(diǎn)勒虾,首先要有一個(gè)備份的Namenode,在當(dāng)前Namenode掛掉后可以馬上接管讀寫請(qǐng)求攻询,不影響業(yè)務(wù)从撼;另外州弟,要把元數(shù)據(jù)的信息(edits文件) 存儲(chǔ)在公共的區(qū)域而不是存儲(chǔ)在Namenode節(jié)點(diǎn)本地钧栖,防止Namenode節(jié)點(diǎn)機(jī)器故障后元數(shù)據(jù)信息丟失導(dǎo)致數(shù)據(jù)無法恢復(fù)低零。常用的高可用解決方案為QJM:
    HDFS HA
  • 包含多個(gè)Namenode節(jié)點(diǎn),其中只有一個(gè)active拯杠,接收Client讀寫請(qǐng)求掏婶;其他是standby,除了不能接收Client讀寫請(qǐng)求潭陪,它同樣存儲(chǔ)元數(shù)據(jù)信息雄妥,接受Datanode上報(bào)Block信息,以便在變?yōu)閍ctive狀態(tài)是可以快速接受Client請(qǐng)求依溯。
  • Namenode Active老厌、Standy的狀態(tài)選擇和切換由Zookeeper完成。每個(gè)Namenode都伴隨著一個(gè)zkfc服務(wù)黎炉,用來監(jiān)控Namenode可用性枝秤,如果其檢測(cè)到對(duì)應(yīng)的Namenode不可用,則上報(bào)給zk慷嗜,zk從其他Standby的Namenode節(jié)點(diǎn)中選擇一個(gè)為Active淀弹,通知zkfc把該Namenode變?yōu)锳ctive,這樣就實(shí)現(xiàn)了瞬間接管庆械。
  • 還有一個(gè)問題薇溃,那就是元數(shù)據(jù)的存儲(chǔ)問題。為了避免元數(shù)據(jù)存儲(chǔ)在本地時(shí)(edits文件)機(jī)器故障導(dǎo)致數(shù)據(jù)無法恢復(fù)缭乘,在該HA方案中沐序,元數(shù)據(jù)被存儲(chǔ)在Journalnode節(jié)點(diǎn)中,為了防止單點(diǎn)故障堕绩,一般會(huì)有多個(gè)Journalnode節(jié)點(diǎn)形成一個(gè)集群(存儲(chǔ)edits文件的多個(gè)備份)薄啥,Namenode不斷向Journalnode集群同步元數(shù)據(jù),在恢復(fù)HDFS集群時(shí)逛尚,會(huì)從Journalnode中加載元數(shù)據(jù)

關(guān)鍵指標(biāo)

上面已經(jīng)詳細(xì)介紹了HDFS的架構(gòu)及高可用原理垄惧,現(xiàn)在總結(jié)一下HDFS運(yùn)維過程中應(yīng)該主要關(guān)注的一些指標(biāo):
1.Namenode Memory,如果該指標(biāo)已經(jīng)占比比較高(90%以上)绰寞,則需要考慮擴(kuò)展內(nèi)存到逊,合并文件,清除無用文件
2.Namenode GC Time滤钱,如果GC Time比較長觉壶,且Namenode RPC queue wait time比較長,則考慮Journalnode 元數(shù)據(jù)同步可能有問題件缸,需要重啟Journalnode
3.Corrupted Blocks铜靶,如果損壞Block較多,需要手動(dòng)修復(fù)
4.Under Replicated Blocks他炊,如果副本數(shù)缺失很多争剿,需要手動(dòng)補(bǔ)充副本已艰。

完。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蚕苇,一起剝皮案震驚了整個(gè)濱河市哩掺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涩笤,老刑警劉巖嚼吞,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蹬碧,居然都是意外死亡舱禽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門恩沽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呢蔫,“玉大人,你說我怎么就攤上這事飒筑∑酰” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵协屡,是天一觀的道長俏脊。 經(jīng)常有香客問我,道長肤晓,這世上最難降的妖魔是什么爷贫? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮补憾,結(jié)果婚禮上漫萄,老公的妹妹穿的比我還像新娘。我一直安慰自己盈匾,他們只是感情好腾务,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著削饵,像睡著了一般岩瘦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窿撬,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天启昧,我揣著相機(jī)與錄音,去河邊找鬼劈伴。 笑死密末,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播严里,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼新啼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了田炭?” 一聲冷哼從身側(cè)響起师抄,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤漓柑,失蹤者是張志新(化名)和其女友劉穎教硫,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辆布,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞬矩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锋玲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片景用。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖惭蹂,靈堂內(nèi)的尸體忽然破棺而出伞插,到底是詐尸還是另有隱情,我是刑警寧澤盾碗,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布媚污,位于F島的核電站,受9級(jí)特大地震影響廷雅,放射性物質(zhì)發(fā)生泄漏耗美。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一航缀、第九天 我趴在偏房一處隱蔽的房頂上張望商架。 院中可真熱鬧,春花似錦芥玉、人聲如沸蛇摸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皇型。三九已至,卻和暖如春砸烦,著一層夾襖步出監(jiān)牢的瞬間弃鸦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工幢痘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唬格,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像购岗,于是被迫代替她去往敵國和親汰聋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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