hadoop(hadoop是什麼)

Hadoop是什麼

  1. Hadoop是Apache基金會開發的分佈式系統基礎架構
  2. Hadoop主要被用來解決海量數據的存儲和海量數據的分析計算
  3. 廣義上來說,Hadoop通常是指一個更廣泛的概念----Hadoop生態圈
    在這裏插入圖片描述

Hadoop發展歷史

  1. Lucene框架是Doug Cutting開創的開源軟件,用Java書寫代碼,實現與Google類似的全文搜索功能,它提供了全文檢索引擎的架構,包括完整的查詢引擎和索引引擎。
    在這裏插入圖片描述
  2. 2001年年底Lucene成爲Apache基金會的一個子項目。
  3. 對於海量數據的場景,Lucene面對與Google同樣的困難,存儲數據困難檢索速度慢
  4. 學習和模仿Google解決這些問題的辦法 :微型版Nutch。
  5. 可以說Google是Hadoop的思想之源(Google在大數據方面的三篇論文)
    GFS----> HDFS
    Map-Reduce---->MR
    BigTable---->HBase
  6. 2003-2004年,Google公開了部分GFS和MapReduce思想的細節,以此爲基礎Doug Cutting等人用了2年業餘時間實現了DFS和MapReduce機制,使Nutch性能飆升。
  7. 2005 年Hadoop 作爲 Lucene的子項目 Nutch的一部分正式引入Apache基金會。
  8. 2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分別被納入到 Hadoop 項目中,Hadoop就此正式誕生,標誌着大數據時代來臨。
  9. Hadoop名字的來源於Doug Cutting兒子的玩具大象
    在這裏插入圖片描述

Hadoop三大發行版本

Hadoop三大發行版本:ApacheClouderaHortonworks
· Apache 版本最原始(最基礎)的版本,對於入門較好
· Cloudera 在大型互聯網中用的較多,其配置較爲簡單,可以一鍵進行集羣的部署
· Hortonworks 國外用的較多,文檔較好


  1. Apache Hadoop
    官網地址: http://hadoop.apache.org/releases.html
    下載地址: https://archive.apache.org/dist/hadoop/common/
  2. Cloudera Hadoop
    官網地址: https://www.cloudera.com/downloads/cdh/5-10-0.html
    下載地址: http://archive-primary.cloudera.com/cdh5/cdh/5/
  3. Hortonworks Hadoop
    官網地址: https://hortonworks.com/products/data-center/hdp/
    下載地址 https://hortonworks.com/downloads/#data-platform

Hadoop優勢(4高)

  1. 高可靠性: Hadoop底層維護多個數據副本,所以即使Hadoop某個計算元素或存儲出現故障,也不會導致數據的丟失。
  2. 高擴展性: 在集羣間分配任務數據,可方便的擴展數以千計的節點。
  3. 高效性: 在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。
  4. 高容錯性: 能夠自動將失敗的任務重新分配。

Hadoop組成(重點)

Hadoop1.x和Hadoop2.x區別
在這裏插入圖片描述
在Hadoop1.x時代,Hadoop中的MapReduce同時處理業務邏輯運算和資源的調度,耦合性較大,在Hadoop2.x時代,增加了Yarn。Yarn只負責資源的調度,MapReduce只負責運算。


HDFS(Hadoop Destribute File System)架構概述

  1. NameNode(NN):
    存儲文件的元數據,如文件名,文件目錄結構,文件屬性(生成時間、副本數、文件權限),以及每個文件的塊列表和塊所在的DataNode等。
    元數據;描述數據本身信息的數據
    在這裏插入圖片描述
  2. DataNode(DN):
    在本地文件系統存儲文件塊數據,以及塊數據的校驗和。
    在這裏插入圖片描述
  3. Secondary NameNode(2NN):
    用來監控HDFS狀態的輔助後臺程序,每隔一段時間獲取HDFS元數據的快照。
    但是2NN並不是NN的熱備份。如果將NN比做做手術的主刀醫生,那麼2NN就相當於遞鉗子,手術刀的醫生,當主刀醫生掛了,遞刀的醫生可以代替主刀醫生嗎?顯然是夠嗆。所以2NN相比於NN,更多是輔助的作用。

Yarn架構概述
在這裏插入圖片描述

  1. ResourceManager(RM):
  1. 處理客戶端的請求
  2. 監控NodeManager
  3. 啓動或監視AppilcationMaster
  4. 資源的分配與調度
  1. NodeManager(NM):
  1. 管理單個節點上的資源
  2. 處理來自ResourceManager的命令
  3. 處理來自ApplicationMaster的命令
  1. ApplicationMaster(AM):
  1. 負責數據的切分
  2. 爲應用程序申請資源,並分配給內部的任務
  3. 任務的監控與容錯
  1. Container:

Container是Yarn中的資源抽象,它封裝了某個節點上的多維度資源,如內存CPU磁盤網絡

ResourceMaster相當於大隊長,然後有個任務ApplicationMaster來了,大隊長覺得這個任務太小了,不值得他出手,於是他就指派NodeManager爲"臨時大隊長"來處理這個任務,但是“臨時大隊長”發現這個任務他完成不了,於是就拿着ApplicationMaster給大隊長說:“我的的資源不夠處理這個任務”,於是大隊長通過ApplicationMaster調度別的NodeManager的Container的資源來並行處理


MapReduce架構概述
MapReduce將計算過程分爲兩個階段:MapReduce

  1. Map階段並行處理輸入數據
  2. Reduce階段對Map結果進行彙總
    在這裏插入圖片描述

大數據技術生態體系

在這裏插入圖片描述
名詞解釋:

  1. Sqoop: Sqoop是一款開源的工具,主要用於在Hadoop、Hive與傳統的數據庫(MySql)間進行數據的傳遞,可以將一個關係型數據庫(例如 :MySQL,Oracle 等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中。
  2. Flume: Flume是Cloudera提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定製)的能力。
  3. Kafka: Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,有如下特性:
  1. 通過O(1)的磁盤數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。
  2. 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒數百萬的消息。
  3. 支持通過Kafka服務器和消費機集羣來分區消息。
  4. 支持Hadoop並行數據加載。
  1. Storm: Storm用於“連續計算”,對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。
  2. Spark: Spark是當前最流行的開源大數據內存計算框架。可以基於Hadoop上存儲的大數據進行計算。
  3. Mahout: Apache Mahout是個可擴展的機器學習和數據挖掘庫。
  4. Oozie: Oozie是一個管理Hdoop作業(job)的工作流程調度管理系統。
  5. Hbase: HBase是一個分佈式的、面向列的開源數據庫。HBase不同於一般的關係數據庫,它是一個適合於非結構化數據存儲的數據庫。
  6. Hive: Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換爲MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。
  7. ZooKeeper: Zookeeper是Google的Chubby一個開源的實現。它是一個針對大型分佈式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。

推薦系統項目框架

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章