來源:北大青鳥總部 2022年12月13日 12:32
自從上次小編了解完大數(shù)據(jù)是啥,并且在招聘網(wǎng)站上看到大數(shù)據(jù)相關崗位的薪資之后,小編就開始了第18次奮發(fā)圖強努力學習,雖然前17次奮發(fā)圖強均已失敗告終,但是這一次有薪資誘惑加持,相信小編一定能夠堅持下去的。
本周小編學習了大數(shù)據(jù)的必修課Hadoop,今天給大家分享一些關于Hadoop的知識。
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構,是一個專門用于應對海量數(shù)據(jù)的存儲和計算的東東。Hadoop這個英文單詞并不在英語字典中,它沒有具體的實際意義,為什么叫這個名字呢?是因為作者的兒子有一個寶貝玩具大象名字叫Hadoop,所以他開發(fā)的這個系統(tǒng)就叫Hadoop。突然感覺到技術大牛的生活就是如此的枯燥且樸實。
其他的關于Hadoop的版本、歷程、花邊故事等等湊字數(shù)行為就不多介紹了,廢話少說,直接上干貨。
Hadoop作為一個分布式系統(tǒng),它有三個最重要組成部分:HDFS、YARN、MapReduce。在介紹它們之前,首先我們再來復習一遍分布式,分布式說白了就是有一堆機器組成的一個整體,它們之間通過網(wǎng)絡互相連接,每一個機器稱為一個節(jié)點,所有的節(jié)點連在一起組成了分布式的系統(tǒng)。這種分布式結構也稱為集群。
它是一個分布式文件系統(tǒng),它和我們windows上的文件系統(tǒng)很像,比如說在windows中,我們?yōu)榱瞬蛔屄槁榘l(fā)現(xiàn)我安裝了游戲,往往會將游戲軟件放到很深的文件路徑下,并且文件名也是諸如“xxx學習資料””學習資源”等等。它可能會有一個完整的路徑“D://學習資料/學習資源/英雄聯(lián)盟.exe”。實際上這就是windows上的文件系統(tǒng),它可以用來保存各種文件,并且可以通過路徑的方式來訪問這些文件。
同樣HDFS也是一個類似的文件系統(tǒng),但是它的不同點在于它是分布式的。在windows上我們都知道,某個路徑下的文件,它的物理形態(tài)也同樣的在這臺電腦的硬盤上。而HDFS上的文件,它肯定是在這個系統(tǒng)上,但是你要問它我這個文件到底在哪個機器上,它會告訴你,你的文件在物理上被切分成了多塊,分布在多臺機器上。
“那文件都被你切壞了,我還能用嗎!”,別擔心,絕對能用。這些機制在HDFS的底層中全部定義好了,使用HDFS可以直接把它當做一個普通的文件系統(tǒng)就可以了,它也提供類似windows路徑的方式來訪問文件。我們在使用的過程大可不必關心底層內(nèi)容,如:文件到底被分了多少塊、副本文件在哪、使用的時候怎么合并等等這些問題。當然如果你要去面試Hadoop相關崗位,還是要去了解底層實現(xiàn)原理的。
由于分布式的特性,HDFS的擴展十分方便,只需增加機器,就可以給存儲系統(tǒng)擴容。所以HDFS在機器夠的情況下,可以輕松儲存海量數(shù)據(jù)。
HDFS它是一個文件系統(tǒng),也就是所有的節(jié)點機器一起組成了這個整體的文件系統(tǒng),增加機器只會增加該系統(tǒng)的存儲容量和存儲節(jié)點。它總是保持一個整體的文件系統(tǒng)。
是一個分布式計算框架,它是一套專門應對大數(shù)據(jù)的計算模式,它將一個處理大量數(shù)據(jù)的計算任務分解為Map和Reduce兩個階段來執(zhí)行,將計算任務分配給集群中的每個節(jié)點,實現(xiàn)多節(jié)點并行計算。Map階段并行處理輸入數(shù)據(jù),Reduce階段對Map結果進行匯總。
是一個通用的資源管理系統(tǒng),它其中的ResourceManager統(tǒng)一對集群中的資源進行調度和管理,而NodeManager對集群中每一個節(jié)點的資源進行調度和管理。也就是說ResourceManager是工程總設計師負責整個集群,NodeManager是包工頭只負責自己機器這一畝三分地。MapReduce計算過程中所需要的資源,通常就是通過YARN來進行資源的調度和分配,當然YARN之所以能坐上管理位置還是得益于它比較公平,它不會讓集群中一臺節(jié)點承擔大部分的任務,而是經(jīng)常會將任務“平均”的分給各個節(jié)點。當然資源調度的方式有很多,也因情況而定。
總結一下,總之Hadoop有三板斧來處理大數(shù)據(jù),使用HDFS輕松處理大數(shù)據(jù)的存儲,使用MapReduce+YARN輕松處理大數(shù)據(jù)的計算。他們之間的關系可以簡單的理解為:當我有一個大數(shù)據(jù)處理的任務,首先我將數(shù)據(jù)放在HDFS上,使用MapReduce這種計算模式來進行數(shù)據(jù)處理,其中YARN調用集群中節(jié)點資源一起參與計算,最后得出結果。