自從2013年成為大數據元年,大數據技術、大數據應用也越發受到追捧。Hadoop作為流行的大數據處理平台,幾乎已經成為大數據的代名詞,“Hadoop”這個名詞越來越多地進入了人們的視野。即便不從事科研工作或者在科技領域裡不需要接觸大數據概念的人們也或多或少見過這個詞。那麼今天就通過這篇文章向大家介紹什麼是Hadoop,以及Hadoop包含的技術。
簡單的來說:Hadoop是一個由Apache基金會所開發的分布式系統基礎架構,一個能夠對大量數據進行分布式處理的軟件框架; 它可以用一種可靠、高效、可伸縮的方式進行數據處理;能讓用戶可以在不了解分布式底層細節的情況下,開發分布式程序。接下來,我們從Hadoop的誕生開始講起。
那麼Hadoop是如何誕生的?在人類步入數字化時代之前,我們産生的數據還很少,産生數據的速度也相對較慢。并且大部分的數據都主要是文檔,采用行和列的形式來歸納記錄。這時,我們處理這些數據顯得遊刃有餘,單個儲存單元和處理器組合就可以完成這些任務。
但随着互聯網的快速發展,社會在日新月異進步的同時,也産生了大量以多種形式和格式生成的數據。半結構化和非結構化數據現在以電子郵件、圖像、音頻等形式出現。所有這些數據統稱為大數據。處理這種大數據,按照之前的方式幾乎變得不可能了,儲存單元處理器組合顯然還不夠。
那麼多個儲存單元和處理器的解決方案應運而生。Hadoop就是可以儲存和處理大量數據的框架,它可以調動大量儲存單元、服務器形成的硬件集群,并利用硬件集群有效地處理大量數據。
Hadoop是如何工作的?有哪些技術?(1)數據儲存:Hadoop由三個專門處理大數據而設計的組件組成,在處理大數據之前,面臨的第一個困難是如何儲存數據。Hadoop的第一個組件是它的儲存單元——Hadoop分布式文件系統,又稱之為HDFS。大數據在一台電腦上儲存是遠遠不夠的,因此人們将數據分布在許多計算機中,并以塊的形式儲存。這許多台計算機也被稱之為集群。
假設你有800MB的數據要儲存,那麼HDFS會将數據分為多個數據塊,然後儲存在集群中的幾個數據節點上。每一個數據塊默認是128M,那麼800M将會被分成7個塊。HDFS還會将這7塊數據進行拷貝并儲存在多個系統中,例如當一塊數據被創建時,HDFS會将其複制并儲存在其他不同的數據節點上。這樣一來,即使一個數據節點崩潰,也可以從其他節點上找回數據。這就是Hadoop分布式儲存。
(2)數據處理:成功儲存數據後,需要對數據進行處理。Hadoop的第二個組件:MapReduce就是一種用于大規模數據集的并行運算的編程模型。在傳統的數據處理方法中,整個數據都是在一台單個處理器的機器上處理的,這種方法費時低效,特别是在處理大量、不同種類數據時更是如此。為了解決這一問題,MapReduce将數據分成多個部分,在不同的數據節點上分别進行處理,然後将各個節點的運算結果彙總輸出。這種對大數據每個部分進行單獨運算,最後将結果彙總的方式,大大改善了負載平衡也節省了大量時間。
(3)資源管理:在前面的内容中,我們可以發現儲存處理大數據需要大量内存、網絡帶寬、CPU等資源的支持。當有多個作業在Hadoop上同時運行,它們都需要硬件資源來成功完成任務,如何去分配管理這些資源。這些資源管理任務就要用到Hadoop的第三個組件:YARN。YARN由資源管理器、節點管理器、應用管理器和容器組成。資源管理器分配資源,節點管理器處理并監控節點中的資源使用情況。容器是所有物理資源的集合。
假設此時要進行一個任務,那麼首先應用管理器要向節點管理器請求容器資源;節點管理器獲得資源後,将它們發送給資源管理器。這樣YARN在Hadoop中就可以處理作業請求并管理集群資源。
除了上述三個基礎組件,它還有各種大數據工具和框架,用于管理、處理和分析數據。此外還有HIVE、PIG、SPARK、FLUME、SCOOP等等不同功能的組件共同緻力于大數據管理。
這就是Hadoop,是一個能夠讓用戶輕松架構和使用的分布式計算平台。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!