是時候了解一下Hadoop了

鴻卓課工場 發佈 2020-01-10T00:16:13+00:00

在介紹它們之前,首先我們再來複習一遍分布式,分布式說白了就是有一堆機器組成的一個整體,它們之間通過網絡互相連接,每一個機器稱為一個節點,所有的節點連在一起組成了分布式的系統。

原創: 小Ke同學 AI課工場

自從上次小編了解完大數據是啥,並且在招聘網站上看到大數據相關崗位的薪資之後,小編就開始了第18次奮發圖強努力學習,雖然前17次奮發圖強均已失敗告終,但是這一次有薪資誘惑加持,相信小編一定能夠堅持下去的。

本周小編學習了大數據的必修課Hadoop,今天給大家分享一些關於Hadoop的知識。

Hadoop是一個由Apache基金會所開發的分布式系統基礎架構,是一個專門用於應對海量數據的存儲和計算的東東。Hadoop這個英文單詞並不在英語字典中,它沒有具體的實際意義,為什麼叫這個名字呢?是因為作者的兒子有一個寶貝玩具大象名字叫Hadoop,所以他開發的這個系統就叫Hadoop。突然感覺到技術大牛的生活就是如此的枯燥且樸實。

其他的關於Hadoop的版本、歷程、花邊故事等等湊字數行為就不多介紹了,廢話少說,直接上乾貨。

Hadoop作為一個分布式系統,它有三個最重要組成部分:HDFS、YARN、MapReduce。在介紹它們之前,首先我們再來複習一遍分布式,分布式說白了就是有一堆機器組成的一個整體,它們之間通過網絡互相連接,每一個機器稱為一個節點,所有的節點連在一起組成了分布式的系統。這種分布式結構也稱為集群。

1

HDFS

它是一個分布式文件系統,它和我們windows上的文件系統很像,比如說在windows中,我們為了不讓麻麻發現我安裝了遊戲,往往會將遊戲軟體放到很深的文件路徑下,並且文件名也是諸如「xxx學習資料」」學習資源」等等。它可能會有一個完整的路徑「D://學習資料/學習資源/英雄聯盟.exe」。實際上這就是windows上的文件系統,它可以用來保存各種文件,並且可以通過路徑的方式來訪問這些文件。

同樣HDFS也是一個類似的文件系統,但是它的不同點在於它是分布式的。在windows上我們都知道,某個路徑下的文件,它的物理形態也同樣的在這台電腦的硬碟上。而HDFS上的文件,它肯定是在這個系統上,但是你要問它我這個文件到底在哪個機器上,它會告訴你,你的文件在物理上被切分成了多塊,分布在多台機器上。

「那文件都被你切壞了,我還能用嗎!」,別擔心,絕對能用。這些機制在HDFS的底層中全部定義好了,使用HDFS可以直接把它當做一個普通的文件系統就可以了,它也提供類似windows路徑的方式來訪問文件。我們在使用的過程大可不必關心底層內容,如:文件到底被分了多少塊、副本文件在哪、使用的時候怎麼合併等等這些問題。當然如果你要去面試Hadoop相關崗位,還是要去了解底層實現原理的。

由於分布式的特性,HDFS的擴展十分方便,只需增加機器,就可以給存儲系統擴容。所以HDFS在機器夠的情況下,可以輕鬆儲存海量數據。

HDFS它是一個文件系統,也就是所有的節點機器一起組成了這個整體的文件系統,增加機器只會增加該系統的存儲容量和存儲節點。它總是保持一個整體的文件系統。

2

MapReduce

是一個分布式計算框架,它是一套專門應對大數據的計算模式,它將一個處理大量數據的計算任務分解為Map和Reduce兩個階段來執行,將計算任務分配給集群中的每個節點,實現多節點並行計算。Map階段並行處理輸入數據,Reduce階段對Map結果進行匯總。

3

YARN

是一個通用的資源管理系統,它其中的ResourceManager統一對集群中的資源進行調度和管理,而NodeManager對集群中每一個節點的資源進行調度和管理。也就是說ResourceManager是工程總設計師負責整個集群,NodeManager是包工頭只負責自己機器這一畝三分地。MapReduce計算過程中所需要的資源,通常就是通過YARN來進行資源的調度和分配,當然YARN之所以能坐上管理位置還是得益於它比較公平,它不會讓集群中一台節點承擔大部分的任務,而是經常會將任務「平均」的分給各個節點。當然資源調度的方式有很多,也因情況而定。

總結一下,總之Hadoop有三板斧來處理大數據,使用HDFS輕鬆處理大數據的存儲,使用MapReduce+YARN輕鬆處理大數據的計算。他們之間的關係可以簡單的理解為:當我有一個大數據處理的任務,首先我將數據放在HDFS上,使用MapReduce這種計算模式來進行數據處理,其中YARN調用集群中節點資源一起參與計算,最後得出結果。

好啦,想要了解更多有關大數據的內容,請持續關注課工場007。

關鍵字: