第9章 Hadoop再探討

9.1 Hadoop的優(yōu)化與發(fā)展

9.1.1 Hadoop1.0的局限與不足

(1)抽象層次低:簡單任務(wù)也要很復(fù)雜的編碼;
(2)表達(dá)能力優(yōu)先:不是所有的任務(wù)都能抽象成Map和Reduce
(3)需開發(fā)者自行管理Job間依賴關(guān)系
(4)難以看到程序的整體邏輯:可以理解為沒有主流程,只有一個(gè)個(gè)的MR程序組合起來
(5)執(zhí)行迭代操作時(shí)效率低:每次MR后都寫入磁盤,供下一次MR使用密任,這對機(jī)器學(xué)習(xí)等而言效率很低
(6)資源浪費(fèi):M和R是嚴(yán)格分先后順序的
(7)實(shí)時(shí)性很差,只能離線批處理

9.1.2 主要的優(yōu)化和發(fā)展

(1)對M和R兩個(gè)核心組件的改進(jìn)
HDFS改進(jìn):① 設(shè)計(jì)了HDFS HA纲菌,實(shí)現(xiàn)對名稱節(jié)點(diǎn)的熱備份贾陷,② HDFS聯(lián)邦
(2)新增了很多其它組件
① Pig - 抽象層次高,使用腳本語言處理大規(guī)模數(shù)據(jù)
② Spark - 基于內(nèi)存的分布式并行編程框架卿堂,較高實(shí)時(shí)性
③ Oozie - 工作流和協(xié)作服務(wù)引擎
④ Tez - 支持DAG作業(yè)的計(jì)算框架束莫,減少重復(fù)操作
⑤ Kafka - 銜接不同類型的分布式系統(tǒng)

9.2 HDFS2.0新特性

9.2.0 HDFS1.0的問題

1)單點(diǎn)故障問題
2)不可以水平擴(kuò)展,縱向擴(kuò)展會導(dǎo)致啟動耗時(shí)激增
3)系統(tǒng)整體整體性能受限于單個(gè)名稱節(jié)點(diǎn)的吞吐量
4)不同程序間不可以隔離

9.2.1 HDFS HA

解決單點(diǎn)故障問題:設(shè)置兩個(gè)名稱節(jié)點(diǎn)草描,一個(gè)活躍览绿,一個(gè)待命,兩者通過共享存儲系統(tǒng)實(shí)現(xiàn)實(shí)時(shí)的狀態(tài)同步穗慕,由Zookeeper確保任意時(shí)刻只有一個(gè)名稱節(jié)點(diǎn)對外服務(wù)饿敲。

9.2.2 HDFS Federation

解決9.2.0中后幾個(gè)問題:設(shè)置了多個(gè)相互獨(dú)立的名稱節(jié)點(diǎn),共享底層的存儲資源揍诽,數(shù)據(jù)節(jié)點(diǎn)向所有名稱節(jié)點(diǎn)匯報(bào)诀蓉,不同的名稱節(jié)點(diǎn)管理不同業(yè)務(wù)數(shù)據(jù)栗竖,實(shí)現(xiàn)程序隔離暑脆。

9.3 新一代資源管理調(diào)度框架 - YARN

9.3.1 MR1.0的缺陷

1)單點(diǎn)故障,一個(gè)JobTracker負(fù)責(zé)所有MR作業(yè)的調(diào)度
2)任務(wù)過重:一個(gè)JoTracker既要管資源的管理分配狐肢,又要管作業(yè)調(diào)度和失敗恢復(fù)等添吗,進(jìn)而導(dǎo)致內(nèi)存開銷過大和易出故障
3)容易內(nèi)存溢出:TaskTracker端資源的分配僅根據(jù)MR任務(wù)的個(gè)數(shù),而不管每個(gè)任務(wù)實(shí)際消耗的CPU和內(nèi)存資源
4)資源劃分不合理:CPU和內(nèi)存都被劃分為slot份名,slot又被進(jìn)一步劃分為M槽和R槽碟联,互相不使用對方的槽妓美,而同一個(gè)程序的M和R是串行的,所以容易導(dǎo)致資源浪費(fèi)鲤孵。

9.3.2 YARN設(shè)計(jì)思路

把JobTracker的資源管理壶栋、任務(wù)調(diào)度、任務(wù)監(jiān)控三個(gè)任務(wù)拆分出來普监,由YARN的不同模塊(ResourdeManager和ApplicationMaster)去負(fù)責(zé)贵试,原TaskTracker改為NodeManager。
注意:YARN是一個(gè)純粹的資源調(diào)度框架凯正,而MR2.0則是一個(gè)運(yùn)行在YARN之上的純粹的計(jì)算框架毙玻。

9.3.3 YARN體系結(jié)構(gòu)

YARN體系結(jié)構(gòu)

包含ResourceManager、ApplicationMaster廊散、NodeManager三個(gè)模塊桑滩,功能闡述如下。
1)ResourceManager
RM是全局的資源管理器允睹,負(fù)責(zé)整個(gè)集群的資源管理和分配运准,包含調(diào)度器Scheduler、應(yīng)用程序管理器ApplicationManager兩個(gè)核心模塊缭受。
調(diào)度器接受AppMaster的資源請求戳吝,以容器形式進(jìn)行分配。
啟動/監(jiān)控AppMaster贯涎、監(jiān)控NodeManager听哭、等
2)ApplicationMaster
為應(yīng)用程序申請資源,并分配給內(nèi)部任務(wù)塘雳;任務(wù)調(diào)度陆盘、監(jiān)控與容錯(cuò);以心跳的方式隨時(shí)向ResoureceManager報(bào)備败明。
3)NodeManager
是YARN駐留在每個(gè)節(jié)點(diǎn)的代理隘马,管理著節(jié)點(diǎn)(容器)的生命周期、資源使用情況等妻顶,并隨時(shí)與ResourceManager通信酸员。
注意:在部署上,ResourceManager和HDFS的名稱節(jié)點(diǎn)部署在同意節(jié)點(diǎn)上讳嘱,而AppMaster和NodeManager和HDFS的數(shù)據(jù)節(jié)點(diǎn)在同一節(jié)點(diǎn)上幔嗦。

9.3.4 YARN工作流程

1)用戶準(zhǔn)備好AppMaster程序、啟動AppMaster的命令沥潭、用戶程序邀泉,三個(gè)東西,并提交給YARN
2)ResourceManager接收到請求,為應(yīng)用程序分配一個(gè)容器汇恤,并在容器里啟動一個(gè)AppMaster
具體流程看教材P163庞钢,如圖所示。


YARN的工作流程
9.3.5~6 YARN框架的補(bǔ)充

YARN不僅可以為MR計(jì)算框架提供資源調(diào)度服務(wù)因谎,也可以為Spark基括、Storm等跨框架服務(wù)。事實(shí)上财岔,這也是YARN的發(fā)展目標(biāo)阱穗,發(fā)展成為集群統(tǒng)一的資源管理調(diào)度框架,上面可以部署各式各樣的的計(jì)算框架使鹅,包括MR揪阶、Tez、HBase患朱、Storm鲁僚、Giraph、Spark裁厅、等等冰沙。


YARN之上,部署各種計(jì)算框架

9.4 Hadoop生態(tài)中的代表性組件

9.4.1 Pig

1)類SQL語言的Pig Latin語言执虹,支持過濾拓挥、分組、連接袋励、排序等類SQL操作侥啤;
2)把Pig腳本轉(zhuǎn)化成MR作業(yè),且可以自動優(yōu)化茬故,因此不需要考慮代碼效率問題盖灸;
3)基本格式
① 通過LOAD語句從文件系統(tǒng)中讀取數(shù)據(jù)
② 一系列ETL語句進(jìn)行數(shù)據(jù)處理
③ 通過STORE把處理結(jié)果輸出到文件系統(tǒng)中

9.4.2 Tez

1)支持DAG作業(yè)的計(jì)算框架
2)把Map和Reduce進(jìn)一步拆分成更細(xì)的作業(yè),包括輸入磺芭、處理赁炎、排序、合并钾腺、輸出等
3)在更細(xì)顆粒度的設(shè)計(jì)下徙垫,任務(wù)可以被轉(zhuǎn)換成一個(gè)有向無環(huán)圖,避免了重復(fù)的M或R操作放棒。經(jīng)過Tez優(yōu)化后的Hive性能可以提升100倍姻报。
4)在Hadoop生態(tài)中的位置:MR、Pig哨查、Hive等框架的任務(wù)最終都被轉(zhuǎn)換成MR任務(wù)執(zhí)行逗抑,而Tez相當(dāng)于對MR進(jìn)行了優(yōu)化,因此可以把MR寒亥、Pig邮府、Hive運(yùn)行于Tez之上,而把Tez運(yùn)行于YARN之上溉奕,把YARN運(yùn)行于HDFS之上褂傀。
5)于Impala的區(qū)別:Impala拋棄了MR框架,采用與商用并行關(guān)系數(shù)據(jù)庫類似的分布式查詢引擎加勤,效率更高仙辟,但是能處理的數(shù)據(jù)類型有限。

9.4.3 Spark

1)與MR相比鳄梅,每次計(jì)算把結(jié)果放到內(nèi)存中(而非放到磁盤中)
2)同樣采用DAG任務(wù)調(diào)度機(jī)制叠国,可以有效避免重復(fù)操作
上述兩點(diǎn)改進(jìn),加之以結(jié)構(gòu)一體化戴尸、功能多元化的優(yōu)勢粟焊,使得Spark逐漸成為當(dāng)今大數(shù)據(jù)領(lǐng)域最熱門的計(jì)算平臺。

9.4.5 Kafka

1)高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)
2)同時(shí)滿足在線實(shí)時(shí)處理和批量離線處理
3)充當(dāng)數(shù)據(jù)樞紐的作用孙蒙,實(shí)現(xiàn)和Hadoop各個(gè)組件之間的不同類型的數(shù)據(jù)的實(shí)時(shí)高效交換项棠。
如下圖


Kafka充當(dāng)數(shù)據(jù)交換樞紐
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挎峦,隨后出現(xiàn)的幾起案子香追,更是在濱河造成了極大的恐慌,老刑警劉巖坦胶,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件透典,死亡現(xiàn)場離奇詭異,居然都是意外死亡顿苇,警方通過查閱死者的電腦和手機(jī)掷匠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岖圈,“玉大人讹语,你說我怎么就攤上這事》淇疲” “怎么了顽决?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長导匣。 經(jīng)常有香客問我才菠,道長,這世上最難降的妖魔是什么贡定? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任赋访,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚓耽。我一直安慰自己渠牲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布步悠。 她就那樣靜靜地躺著签杈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鼎兽。 梳的紋絲不亂的頭發(fā)上答姥,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天,我揣著相機(jī)與錄音谚咬,去河邊找鬼鹦付。 笑死,一個(gè)胖子當(dāng)著我的面吹牛择卦,可吹牛的內(nèi)容都是我干的敲长。 我是一名探鬼主播,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼互捌,長吁一口氣:“原來是場噩夢啊……” “哼潘明!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秕噪,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤钳降,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腌巾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遂填,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年澈蝙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吓坚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,697評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡灯荧,死狀恐怖礁击,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逗载,我是刑警寧澤哆窿,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站厉斟,受9級特大地震影響挚躯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擦秽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一码荔、第九天 我趴在偏房一處隱蔽的房頂上張望漩勤。 院中可真熱鬧,春花似錦缩搅、人聲如沸越败。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽眉尸。三九已至域蜗,卻和暖如春巨双,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背霉祸。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工筑累, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丝蹭。 一個(gè)月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓慢宗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奔穿。 傳聞我的和親對象是個(gè)殘疾皇子镜沽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,587評論 2 350

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