合肥北大青鳥:一篇文章帶你了解Hadoop

                                                編輯:合工大北大青鳥 時間:2021-04-12 18:08:03 點擊量:

                                                很多研究分布式架構的同學都在問Hadoop的含義,說對Hadoop不是很了解,今天北大青鳥合肥校區的袁老師帶你詳細了解一下吧。

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

                                                上一篇:我們來說說Java工程師的成長路線

                                                下一篇:?今天我們來說說程序員如何避免內卷化

                                                亚洲色欲天天天堂色欲网