Hadoop基礎(chǔ)

hadoop
Hadoop的起源

Lucene -> Lucene的微縮版Nutch -> GFS和Mapreduce的機制新翎,從而提高了Nutch的性能。由此Hadoop產(chǎn)生了

什么是Hadoop

Hadoop是一個開源框架,可編寫和運行分布式應(yīng)用處理大規(guī)模數(shù)據(jù)舰褪。 Hadoop框架的核心是HDFS和MapReduce羔砾。其中 HDFS 是分布式文件系統(tǒng)祝懂,MapReduce 是分布式數(shù)據(jù)處理模型和執(zhí)行環(huán)境

Hadoop1.0

Hadoop1.0的基礎(chǔ)模塊:

模塊名稱 作用
Common 支持其他模塊的公用工具包
HDFS 一個可高吞吐訪問應(yīng)用數(shù)據(jù)的分布式文件系統(tǒng)
MapReduce 并行計算的系統(tǒng)

HDFS

image

master/slave模式
NameNode記錄數(shù)據(jù)集的元數(shù)據(jù)
客戶端操作數(shù)據(jù)時扼菠,需向NameNode查詢元數(shù)據(jù)尼荆,在查詢到數(shù)據(jù)所在的DataNode后烛亦,直接與DataNode交互诈泼,執(zhí)行讀/寫操作。不同的數(shù)據(jù)塊Block會有多個副本(主要是為了數(shù)據(jù)安全)煤禽。

MapReduce

MapReduce的調(diào)度框架
image

MapReduce的調(diào)度框架铐达,主要有這幾個角色:JobClient、JobTracker(JT)檬果、TaskTracker(TT)瓮孙,這里面的JT是一個單Master節(jié)點,TT是部署在每臺計算節(jié)點上的一個Service选脊。
其中JobClient負責(zé)根據(jù)用戶指定的參數(shù)杭抠,生成一個MapReduce作業(yè),然后把作業(yè)提交到JT恳啥,JT負責(zé)把Job所有的Task調(diào)度到TT上偏灿。

MapReduce的執(zhí)行過程
image

這個圖展示了一個Mapreduce的執(zhí)行過程,是一個具體的執(zhí)行單元內(nèi)(Task)發(fā)生的事情角寸。左邊是Map Task菩混,map task的輸入是一個數(shù)據(jù)分片,叫一個split扁藕。

輸入數(shù)據(jù)由 MapReduce 框架解析成一條條記錄沮峡,這是一個按照用戶指定的規(guī)則(或者是默認規(guī)則)讀取數(shù)據(jù)的過程。

讀取出的數(shù)據(jù)亿柑,將他們一條條的傳給map處理邢疙,就是大家寫的mapper函數(shù)

經(jīng)過mapper 處理后,又生成一條新記錄望薄,寫在mapper所在機器的本地磁盤疟游,分Partition寫入,不同Partition數(shù)據(jù)會交由不同reduce處理痕支;

右邊是Reduce Task颁虐,Rt運行起來后先做的事情就是把屬于自己的那一份份數(shù)據(jù)給拉到自己本地來,這個過程叫shuffle卧须,shuffle的具體過程很復(fù)雜另绩,其中包括各種異常處理儒陨,性能優(yōu)化點也比較多。

數(shù)據(jù)shuffle到reduce本地之后笋籽,和map類似蹦漠,一條條交給reduce函數(shù)處理,然后按照用戶指定的格式寫到HDFS指定目錄车海。

Hadoop1.0生態(tài)系統(tǒng)圖譜
image

為什么需要Hadoop2.0?

Hadoop1存在的問題笛园,主要有這么幾方面:
1、可用性侍芝,JobTracker是單點研铆,升級中斷服務(wù),正在運行的作業(yè)會失斀叻贰蚜印;
2、擴展性留量,因為NameNode單點性能瓶頸窄赋,單機群最大規(guī)模也就是幾千臺
3、按槽位分task楼熄,集群整體資源利用率不高忆绰,因為每臺機器上運行多少個Task是固定的,但是每個Task消耗的資源可岂,其實差異很大错敢。
4、Hadoop1.0難以支持MR以外的計算

Hadoop1.0 Vs Hadoop2.0

image

Hadoop2.0

HDFS

Hadoop1.0中的NameNode為單節(jié)點缕粹,而second NameNode并非是NameNode的熱備機稚茅。因此在2.0中增加了stand-by NameNode(SNN),而主節(jié)點稱為active NameNode(ANN)平斩。ANN和SNN共享第三方存儲亚享,是熱備方案,可自動failover绘面。

YARN

Hadoop2把單點的JobTracker角色做了分布式化,分布式化成ResourceManager欺税、NodeManager、ApplicationMaster揭璃,其中RM是單點晚凿,而AM是每個job一個,不同job之間是獨立的AM瘦馍。作業(yè)級別的調(diào)度在RM歼秽,Task級別的調(diào)度在AM,大大減輕了RM的壓力


image
英文名稱 中文名稱 作用
Resource Manager(RM) 資源管理器 管理全局資源與調(diào)度情组,為第一級調(diào)度器哲银,負責(zé)對各個NodeManager上的資源進行統(tǒng)一管理和調(diào)度扛吞,處理客戶端請求
Application Master(AM) 應(yīng)用管理器 對應(yīng)一個作業(yè)(job)第二級調(diào)度器,負責(zé)單個應(yīng)用程序的管理荆责,為應(yīng)用程序申請資源并分配給內(nèi)部任務(wù),任務(wù)監(jiān)控和容錯
Node Manager(NM) 節(jié)點管理器 對應(yīng)一臺機器亚脆,單個節(jié)點上的資源管理做院,處理來自RM和AM的命令
Container 節(jié)點管理器 Container是YARN中的資源抽象,當(dāng)AM向RM申請資源時,RM為AM返回的資源便是用Container表示的;YARN會為每個任務(wù)分配一個Container;且該任務(wù)只能使用該Container中描述的資源濒持。

RM由調(diào)度器(Scheduler)和應(yīng)用程序管理器(Applications Manager,ASM)組成

image

Yarn的工作流程:
步驟1 用戶向YARN中提交應(yīng)用程序键耕,其中包括ApplicationMaster程序、啟動ApplicationMaster的命令柑营、用戶程序等屈雄。

步驟2 ResourceManager為該應(yīng)用程序分配第一個Container,并與對應(yīng)的Node-Manager通信官套,要求它在這個Container中啟動應(yīng)用程序的ApplicationMaster酒奶。

步驟3 ApplicationMaster首先向ResourceManager注冊,這樣用戶可以直接通過ResourceManager查看應(yīng)用程序的運行狀態(tài)奶赔,然后它將為各個任務(wù)申請資源惋嚎,并監(jiān)控它的運行狀態(tài),直到運行結(jié)束站刑,即重復(fù)步驟4~7另伍。

步驟4 ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請和領(lǐng)取資源。

步驟5 一旦ApplicationMaster申請到資源后绞旅,便與對應(yīng)的NodeManager通信摆尝,要求它啟動任務(wù)。

步驟6 NodeManager為任務(wù)設(shè)置好運行環(huán)境(包括環(huán)境變量因悲、JAR包堕汞、二進制程序等)后,將任務(wù)啟動命令寫到一個腳本中囤捻,并通過運行該腳本啟動任務(wù)臼朗。

步驟7 各個任務(wù)通過某個RPC協(xié)議向ApplicationMaster匯報自己的狀態(tài)和進度,以讓ApplicationMaster隨時掌握各個任務(wù)的運行狀態(tài)蝎土,從而可以在任務(wù)失敗時重新啟動任務(wù)视哑。
在應(yīng)用程序運行過程中,用戶可隨時通過RPC向ApplicationMaster查詢應(yīng)用程序的當(dāng)前運行狀態(tài)誊涯。

步驟8 應(yīng)用程序運行完成后挡毅,ApplicationMaster向ResourceManager注銷并關(guān)閉自己。

Yarn的好處
  • 計算資源按需伸縮
  • 不同負載應(yīng)用混搭暴构,集群使用率高
  • 共享底層存儲跪呈,避免數(shù)據(jù)跨集群遷移
Hadoop2.0生態(tài)系統(tǒng)圖譜
image

Nutch段磨,互聯(lián)網(wǎng)數(shù)據(jù)及Nutch搜索引擎應(yīng)用
HDFS,Hadoop的分布式文件系統(tǒng)
MapReduce,分布式計算框架
Flume,Scribe,Chukwa非結(jié)構(gòu)化數(shù)據(jù)收集工具
Hiho、Sqoop關(guān)系數(shù)據(jù)庫導(dǎo)入HDFS的工具
Oozie作業(yè)流調(diào)度引擎
Hue耗绿,Hadoop自己的監(jiān)控管理工具
mahout數(shù)據(jù)挖掘工具
Hbase分布式的面向列的開源數(shù)據(jù)庫
Avro 數(shù)據(jù)序列化工具

參考資料:
Hadoop
技術(shù)分享丨關(guān)于 Hadoop 的那些事兒
Hadoop2.0架構(gòu)
Hadoop2.0 Yarn框架原理及運作機制
聊聊Hadoop:圖解HDFS是個啥

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苹支,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子误阻,更是在濱河造成了極大的恐慌债蜜,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件究反,死亡現(xiàn)場離奇詭異寻定,居然都是意外死亡,警方通過查閱死者的電腦和手機精耐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門狼速,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卦停,你說我怎么就攤上這事向胡。” “怎么了沫浆?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵捷枯,是天一觀的道長。 經(jīng)常有香客問我专执,道長淮捆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任本股,我火速辦了婚禮攀痊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拄显。我一直安慰自己苟径,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布躬审。 她就那樣靜靜地躺著棘街,像睡著了一般。 火紅的嫁衣襯著肌膚如雪承边。 梳的紋絲不亂的頭發(fā)上遭殉,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天,我揣著相機與錄音博助,去河邊找鬼险污。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛔糯。 我是一名探鬼主播拯腮,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚁飒!你這毒婦竟也來了动壤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤飒箭,失蹤者是張志新(化名)和其女友劉穎狼电,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弦蹂,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年强窖,在試婚紗的時候發(fā)現(xiàn)自己被綠了凸椿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡翅溺,死狀恐怖脑漫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咙崎,我是刑警寧澤优幸,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站褪猛,受9級特大地震影響网杆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伊滋,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一碳却、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧笑旺,春花似錦昼浦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乌妙,卻和暖如春使兔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冠胯。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工火诸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荠察。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓置蜀,卻偏偏與公主長得像奈搜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盯荤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350