Hadoop生態(tài)圈小貼士

小貼士為你帶來(lái)hadoop生態(tài)圈常用組件的基本原理通铲,方便看官快速理解組件基本原理,構(gòu)造hadoop生態(tài)圈的全貌器贩。??

一颅夺、MapReduce的工作原理

MapReduce的工作原理,簡(jiǎn)單來(lái)說(shuō)就是下面一幅圖蛹稍,

1-MapReduce簡(jiǎn)單工作原理

map函數(shù)接收一個(gè)<key,value>的輸入吧黄,同樣產(chǎn)生<key,value>的輸出。Hadoop中的有玄學(xué)意味的shuffle階段將具有相同中間key值的value集合到一起傳遞給reduce函數(shù)稳摄,reduce函數(shù)接受一個(gè)如<key,(list of values)>的輸入稚字,對(duì)value的集合進(jìn)行處理,輸出同樣為<key,value>形式厦酬。那么其具體的工作流程如何呢胆描?請(qǐng)看下圖,

2-MapReduce具體工作流程

客戶(hù)端:(1)從JobTrack中獲取當(dāng)前作業(yè)ID(2)檢查作業(yè)的相關(guān)路徑(3)計(jì)算作業(yè)的劃分仗阅,并將劃分信息寫(xiě)入job.split文件(4)將運(yùn)行所需要的資源復(fù)制到對(duì)應(yīng)的HDFS上(5)調(diào)用JobTracker對(duì)象來(lái)真正提交作業(yè)

JobTracker:(1)讀取客戶(hù)端在第3步中的job.split(2)創(chuàng)建對(duì)應(yīng)的map和reduce任務(wù)(3)創(chuàng)建兩個(gè)初始化的task昌讲,注意會(huì)根據(jù)TaskTracker在網(wǎng)絡(luò)中的位置,選擇一個(gè)距離此TaskTracker map任務(wù)最近的輸入劃分文件給該TaskTracker

TaskTracker:(1)執(zhí)行任務(wù)(2)更新任務(wù)執(zhí)行進(jìn)度和狀態(tài)(3)通過(guò)心跳監(jiān)測(cè)向JobTrack匯報(bào)狀態(tài)

如何對(duì)mapreduce進(jìn)行優(yōu)化呢减噪?主要根據(jù)執(zhí)行的過(guò)程短绸,從計(jì)算性能和IO操作上進(jìn)行優(yōu)化车吹,(1)任務(wù)調(diào)度時(shí),優(yōu)先將任務(wù)分配給空閑的機(jī)器醋闭,同時(shí)會(huì)盡量將map任務(wù)分配給InputSplit所在的機(jī)器窄驹,以減少網(wǎng)絡(luò)I/O的消耗(2)更加善于處理少量的大數(shù)據(jù)(3)設(shè)置map任務(wù)的數(shù)量時(shí),主要參考map的執(zhí)行時(shí)間证逻,設(shè)置reduce任務(wù)時(shí)乐埠,基于不同的考慮,通常是任務(wù)槽的0.95倍和1.75倍(4)map函數(shù)產(chǎn)生的中間數(shù)據(jù)有很多重復(fù)的數(shù)據(jù)囚企,利用combine函數(shù)進(jìn)行本地?cái)?shù)據(jù)的合并(5)可以針對(duì)map的輸出和最終的輸出結(jié)果進(jìn)行壓縮

眾多周知丈咐,Hadoop具有很強(qiáng)的容錯(cuò)性,具體體現(xiàn)在兩方面龙宏,(1)硬件故障棵逊,當(dāng)JobTracker發(fā)生故障時(shí),通過(guò)領(lǐng)導(dǎo)選舉算法從備用的JobTracker中選擇新的主JobTracker银酗,當(dāng)TaskTracker發(fā)生故障時(shí)辆影,如果是map任務(wù)則重新執(zhí)行,如果是reduce任務(wù)花吟,則分配新的TaskTracker完成未完成的任務(wù)秸歧;(2)任務(wù)失敗厨姚,JobTracker接收到TaskTracker的任務(wù)失敗通知時(shí)衅澈,通過(guò)重置任務(wù)狀態(tài),將其加入到調(diào)度隊(duì)列來(lái)重新分配任務(wù)執(zhí)行谬墙,嘗試4次仍沒(méi)有完成今布,作業(yè)就失敗了

插張圖,休息片刻拭抬,想起了《無(wú)問(wèn)西東》中的那句部默,如果提前了解你所要面對(duì)的人生,你是否還會(huì)有勇氣前來(lái)造虎?希望自己永葆童心傅蹂,簡(jiǎn)單充實(shí)......

1-無(wú)問(wèn)西東

二、HDFS的工作原理

HDFS便于進(jìn)行流式數(shù)據(jù)訪(fǎng)問(wèn)和處理超大文件算凿,那么該如何設(shè)計(jì)滿(mǎn)足此要求呢份蝴?邏輯塊橫空出世,和操作系統(tǒng)中的文件塊類(lèi)似氓轰,是一個(gè)抽象的概念婚夫,是文件存儲(chǔ)處理的邏輯單元。邏輯塊有以下優(yōu)勢(shì)署鸡,(1)通過(guò)將超大文件分成眾多塊案糙,存儲(chǔ)到不同的機(jī)器上限嫌,實(shí)現(xiàn)大文件存儲(chǔ)(2)簡(jiǎn)化存儲(chǔ)子系統(tǒng),固定大小的塊时捌,簡(jiǎn)化存儲(chǔ)系統(tǒng)的管理怒医,尤其是元數(shù)據(jù)信息和文件塊內(nèi)容可以分開(kāi)存儲(chǔ)(3)有利于分布式文件系統(tǒng)中復(fù)制容錯(cuò)的實(shí)現(xiàn)。

HDFS中有兩類(lèi)節(jié)點(diǎn)奢讨,NameNode和DataNode裆熙。NameNode管理文件系統(tǒng)的命名空間,從中可以獲得每個(gè)文件的每個(gè)塊的DataNode禽笑,這些信息不是永久保存入录,NameNode在每次啟動(dòng)時(shí)動(dòng)態(tài)地重建這些信息。DataNode用來(lái)執(zhí)行具體的任務(wù)佳镜,存儲(chǔ)文件塊僚稿,被客戶(hù)端和NameNode調(diào)用,同時(shí)基于心跳定時(shí)向NameNode發(fā)送存儲(chǔ)的文件塊信息蟀伸。

從下圖蚀同,我們學(xué)習(xí)HDFS的體系結(jié)構(gòu),

1-HDFS的體系結(jié)構(gòu)

在此啊掏,我們主要關(guān)注DataNode的副本存放策略和NameNode的節(jié)點(diǎn)安全問(wèn)題蠢络。副本存放策略,主要考慮數(shù)據(jù)的可靠性和讀寫(xiě)的性能迟蜜。將副本存放在一個(gè)機(jī)架上刹孔,讀取數(shù)據(jù)時(shí)不能充分利用帶寬,提高寫(xiě)的效率娜睛,也不同保證數(shù)據(jù)的可靠性(節(jié)點(diǎn)故障)髓霞。將副本存放在不同的機(jī)架上,數(shù)據(jù)讀取時(shí)畦戒,可以充分利用帶寬方库,但是寫(xiě)操作效率低下,可以保證數(shù)據(jù)的可靠性障斋。HDFS的存放策略中纵潦,副本系數(shù)默認(rèn)是3,將一個(gè)副本放在不同機(jī)架的節(jié)點(diǎn)上垃环,另一個(gè)副本放在同一機(jī)架的另一個(gè)節(jié)點(diǎn)上邀层,最后一個(gè)副本放在不同機(jī)架的節(jié)點(diǎn)上。這一策略在不損害數(shù)據(jù)可靠性和讀取性能的情況下改進(jìn)了寫(xiě)操作晴裹。

NameNode啟動(dòng)后會(huì)進(jìn)入一個(gè)稱(chēng)為安全模式的特殊狀態(tài)被济,當(dāng)NameNode檢測(cè)確認(rèn)某個(gè)數(shù)據(jù)塊的副本數(shù)目達(dá)到最小值時(shí),該數(shù)據(jù)塊被認(rèn)為是副本安全的涧团;在一定百分比的數(shù)據(jù)塊被NameNode檢測(cè)安全后只磷,其將退出安全模式狀態(tài)经磅。NameNode容易產(chǎn)生單點(diǎn)故障,主要通過(guò)將NameNode中的元數(shù)據(jù)轉(zhuǎn)儲(chǔ)到遠(yuǎn)程的NFS文件系統(tǒng)中钮追,或者同步運(yùn)行一個(gè)Secondary NameNode预厌。


三、HBase的基本原理

HBase的表和關(guān)系型數(shù)據(jù)庫(kù)一致元媚,由行和列構(gòu)成轧叽。不同的是,HBase中的列組成列族刊棕,且至少有一個(gè)列族炭晒,y以u(píng)ser表為例,其物理存儲(chǔ)如下圖所示甥角,

1-HBase的物理存儲(chǔ)

那么似乎和Mysql中的存儲(chǔ)相似网严,如何體現(xiàn)其巨大威力呢?我們來(lái)看其邏輯模型嗤无,

2-HBase的邏輯模型

行鍵類(lèi)似于Mysql中的主鍵震束,保證數(shù)據(jù)存儲(chǔ)的唯一性,info構(gòu)成其列族当犯,列族中包含name垢村、email和passwordd列,被稱(chēng)為列限定符嚎卫。同時(shí)嘉栓,HBase記錄操作的時(shí)間戳〕哿荩可以視為胸懈,以行鍵、列族恰响、列限定符和時(shí)間戳為鍵,以單元內(nèi)容為值進(jìn)行存儲(chǔ)涌献。那么既然是分布式的數(shù)據(jù)庫(kù)胚宦,其如何進(jìn)行讀寫(xiě)操作呢?下面一起來(lái)看看寫(xiě)操作燕垃,

3-HBase的寫(xiě)操作

MemStore是內(nèi)存里面的寫(xiě)入緩沖區(qū)枢劝,累積填滿(mǎn)后書(shū)寫(xiě)到硬盤(pán)上,生成一個(gè)HFile卜壕。WAL是預(yù)寫(xiě)入日志您旁,每臺(tái)服務(wù)器都維護(hù)一個(gè)WAL來(lái)記錄發(fā)生的變化。如果MemStore沒(méi)有刷寫(xiě)到硬盤(pán)上轴捎,服務(wù)器就崩潰了鹤盒,可以根據(jù)WAL中記錄的變化蚕脏,恢復(fù)數(shù)據(jù),有點(diǎn)類(lèi)似于Mysql中的binlog日志侦锯。讀操作呢驼鞭?HBase可以快速訪(fǎng)問(wèn)數(shù)據(jù),其在讀操作上使用了LRU(最近最少使用算法)緩存技術(shù)尺碰,也稱(chēng)為BlockCache挣棕,和MemStore在一個(gè)JVM堆里,用來(lái)保存從HFile里讀入內(nèi)存的頻繁訪(fǎng)問(wèn)的數(shù)據(jù)亲桥,如下圖所示洛心,

4-HBase的讀操作

HBase是列式存儲(chǔ)數(shù)據(jù)庫(kù),每一個(gè)列族有自己的HFile文件题篷,意味著當(dāng)執(zhí)行讀操作時(shí)皂甘,HBase不需要讀取一行的數(shù)據(jù),只需要讀取用到的列族數(shù)據(jù)悼凑,有利于稀疏數(shù)據(jù)的高效存儲(chǔ)和快速讀取偿枕,如下圖所示,

5-HBase列式存儲(chǔ)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末户辫,一起剝皮案震驚了整個(gè)濱河市渐夸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渔欢,老刑警劉巖墓塌,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奥额,居然都是意外死亡苫幢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)垫挨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)韩肝,“玉大人,你說(shuō)我怎么就攤上這事九榔“Ь” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵哲泊,是天一觀(guān)的道長(zhǎng)剩蟀。 經(jīng)常有香客問(wèn)我,道長(zhǎng)切威,這世上最難降的妖魔是什么育特? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮先朦,結(jié)果婚禮上缰冤,老公的妹妹穿的比我還像新娘犬缨。我一直安慰自己,他們只是感情好锋谐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布遍尺。 她就那樣靜靜地躺著,像睡著了一般涮拗。 火紅的嫁衣襯著肌膚如雪乾戏。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天三热,我揣著相機(jī)與錄音鼓择,去河邊找鬼。 笑死就漾,一個(gè)胖子當(dāng)著我的面吹牛呐能,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抑堡,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼摆出,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了首妖?” 一聲冷哼從身側(cè)響起偎漫,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎有缆,沒(méi)想到半個(gè)月后象踊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棚壁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年杯矩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袖外。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡史隆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出在刺,到底是詐尸還是另有隱情逆害,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布蚣驼,位于F島的核電站,受9級(jí)特大地震影響相艇,放射性物質(zhì)發(fā)生泄漏颖杏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一坛芽、第九天 我趴在偏房一處隱蔽的房頂上張望留储。 院中可真熱鬧翼抠,春花似錦、人聲如沸获讳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丐膝。三九已至量愧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帅矗,已是汗流浹背偎肃。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浑此,地道東北人累颂。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像凛俱,于是被迫代替她去往敵國(guó)和親紊馏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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

  • 1.job的本質(zhì)是什么? 2.任務(wù)的本質(zhì)是什么达布? 3.文件系統(tǒng)的Namespace由誰(shuí)來(lái)管理团甲,Namespace的...
    云中撈月閱讀 1,529評(píng)論 0 3
  • Hadoop部署方式 本地模式 偽分布模式(在一臺(tái)機(jī)器中模擬,讓所有進(jìn)程在一臺(tái)機(jī)器上運(yùn)行) 集群模式 服務(wù)器只是一...
    陳半仙兒閱讀 1,603評(píng)論 0 9
  • ivvi V3自6.15發(fā)布以來(lái),引起了熱議产还。從游艇發(fā)布會(huì)這樣創(chuàng)新又時(shí)尚感爆棚的方式匹厘,到它成為新一代俊男美女的自...
    妮莫_7e34閱讀 195評(píng)論 0 0
  • 還有問(wèn)題沒(méi)有問(wèn)呢~我總是需要翻過(guò)去想才能分析清楚,這樣容易錯(cuò)過(guò)問(wèn)問(wèn)題的機(jī)會(huì)呀~ 參訪(fǎng)最好還是問(wèn)問(wèn)具體案例脐区,發(fā)現(xiàn)很多...
    annibabi閱讀 137評(píng)論 0 0
  • 人的一生,不知道會(huì)遭遇多少次擦肩而過(guò)炕柔。就在昨天酌泰,上午10點(diǎn),許久不聯(lián)系的閨蜜發(fā)來(lái)微信:“我在北京匕累,你來(lái)找我啊陵刹,咱們...
    田小等閱讀 319評(píng)論 0 1