大資料實戰之hadoop生態概況和官網文件解讀

朱元祿發表於2020-12-20

本小節 jacky 分享的是:

Hadoop 核心的組成模組,依賴於 Hadoop 的其他的生態系統。隨著jacky後面逐步的分享,會對本小節 Hadoop 概況中的這些概念有更好的加深與瞭解。

(一)Hadoop 四大核心模組

在 Hadoop 官網就告訴了我們 Hadoop 有4大核心模組:

  • Hadoop Common

    • 一般 common 包的都是工具類,這個工具主要是支撐其他 hadoop 模組,它是一個輔助的模組;
  • Hadoop Distributed File System(HDFS):

    • Hadoop 分散式的檔案系統,它提供了一個對資料儲存的介面訪問
  • Hadoop YARN

    • Hadoop YARN 是一個框架(framework),這個框架幹什麼:用於作業(job)和叢集資源(cluster resource)的管理。
  • Hadoop MapReduce

    • MapReduce 是一個基於YARN 系統的並行的一個程式,大資料並行處理的一個程式。本質是 MapReduce 就是一個計算框架

如果我們狹義上說Hadoop ,那 Hadoop 就是隻上面得核心模組;

如果我們廣義上說 Hadoop,我們說得是 Hadoop 的生態系統, 有些領域專案會依賴於 Hadoop,

(二)Hadoop 發展的三個階段

  • 1.X
  • 2.X
  • 3.X

jackyi 分享的是 Hadoop 的三代

(三)Hadoop 的生態環境

jacky 在分享 Hadoop 的時候,在 MapReduce 這個模組中程式碼會演示的比較多,MapReduce 這個框架計算寫的也會比較多,但在真正用的時候,有可能一行程式碼都不寫,為什麼呢?因為就是這些生態系統的存在,比如說Hadoop生態系統中的 Hive, Hive 的原理就是把一堆MR的內容轉化成了 SQL 的形式,大家學的大資料階段了,就肯定熟練掌握 SQL 了,SQL是什麼,SQL是結構化的查詢語言,我們可以不用寫 Api 了,這樣不用寫API , 我們很多人就都可以學習大資料了,不用再去學相關的程式設計,成本很低,這是 Hive 存在的意義。

HBase 來自於谷歌的一篇論文,HBase 就是一張大表(scalable),這張表裡行無限,列也無限,而且是動態的,每個列的型別要準確,HBase 可以無限的增加,它跟你執行一行的速度是一樣的,不會因為你執行行增加而降低速度,這一點關係型資料庫是做不到的。但是HBase 能夠查詢資料的途徑是有限的,需要使用 rowkey;

那既然有HIve ,有 HBase ,我們實際上使用可能不會寫那麼多程式碼,而是改成寫 hive 型別的SQL 語句,那為什麼還要學 MapRedue 框架?因為我們後面還有一個大資料最重要的生態:Spark,這個Spark 是做計算處理的,只不過Spark的效率相對於Hadoop來說要快;MapReduce 只能處理離線計算,是非常穩定的,但是MapReduce 它強依賴於IO,頻繁的與磁碟進行互動,這裡有一個常識:頻繁與磁碟互動,效率都高不了。Spark 是基於記憶體迭代的,它速度很快,但是Spark 有可能會造成各種各樣的問題,所以Spark的最大優勢是給使用者暴露了一個更加友好的程式設計介面。hadoop 就是 mapreduce 框架加幾個關聯介面,可spark 能給你暴露一堆介面,完全簡化了程式構建的複雜度,因為上面mapreduce 你要基於原生程式碼模擬各種資料結構,成本比較高;

還有一個zookeeper ,也依賴於hadoop 專案,zookeeper 是一個分散式的協調系統,換句話說,它是給分散式應用程式提供的協調服務。

相關文章