天天看點

Hadoop總結——Hadoop基礎

一、Hadoop是什麼

Hadoop是一個由Apache基金會所開發的分布式系統基礎架構

主要解決,海量資料的存儲和海量資料的分析計算問題

廣義上來說,Hadoop通常是指一個更廣泛的概念——Hadoop生态圈

Hadoop總結——Hadoop基礎

二、Hadoop發展曆史

1)Lucene--Doug Cutting開創的開源軟體,用java書寫代碼,實作與Google類似的全文搜尋功能,它提供了全文檢索引擎的架構,包括完整的查詢引擎和索引引擎 

2)2001年年底成為apache基金會的一個子項目辦法;

3)對于大數量的場景,Lucene面對與Google同樣的困難

4)學習和模仿Google解決這些問題的辦法 :微型版Nutch

5)Hadoop的思想之源:Google在大資料方面的三篇論文

6)2003-2004年,Google公開了部分GFS和Mapreduce思想的細節,以此為基礎Doug Cutting等人用了2年業餘時間實作了DFS和Mapreduce機制,使Nutch性能飙升

7)2005 年Hadoop 作為 Lucene的子項目 Nutch的一部分正式引入Apache基金會。2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分别被納入稱為 Hadoop 的項目中

8)名字來源于Doug Cutting兒子的玩具大象

Hadoop總結——Hadoop基礎

9)Hadoop就此誕生并迅速發展,标志這雲計算時代來臨

三、Hadoop思想

1、思考案例

1T的資料如何實作秒級别的計算?

回答:分布式并行計算,資料向計算移動

2、Hadoop思想之源:Google

主要是面對海量的資料和計算難題

2.1 Google三駕馬車

1)存儲:GFS

核心功能

  • 存儲資料-分布式檔案系統
  • 并發寫入-順序寫入

不足與缺陷

  • 缺乏高可用性
  • “至少一次”的弱一緻性

2)計算:MapReduce

核心功能

  • 資料本地化的并行計算
  • 系統容錯和自動恢複

不足與缺陷

  • 計算模型簡單
  • 海量硬碟讀寫

3)線上服務:Bigtable

核心功能

  • 線上服務
  • 高性能随機讀寫
  • 自動排程和分片

2.2 開源技術

1)GFS對應HDFS

分布式存儲系統

提供了高可靠性、高擴充性和高吞吐率的資料存儲服務

2)Map-Reduce對應MapReduce

分布式計算架構(計算向資料移動)

具有易于程式設計、高容錯性和高擴充性等優點

3)Bigtable對應HBase

四、Hadoop設計思想

分布式存儲和計算

分而治之:并行計算

計算向資料移動

五、Hadoop三大發行版本

1)Apache、Cloudera、Hortonworks

2)Apache版本最原始(最基礎)的版本,對于入門學習最好

3)Cloudera在大型網際網路企業中用的較多

4)Hortonworks文檔較好

六、Hadoop優勢

高可靠性:Hadoop底層維護多個資料副本,是以即使Hadoop某個計算元素或存儲出現故障,也不會導緻資料的丢失

高擴充性:在叢集間配置設定任務資料,可友善的擴充數以千計的節點

高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任務處理速度

高容錯性:能夠自動将失敗的任務重新配置設定

七、Hadoop組成

1、概述

1.1 Hadoop 1.X組成

  1. HDFS
  2. MapReduce
  3. Common

1.2 Hadoop 2.X和Hadoop 3.X組成

  1. HDFS
  2. MapReduce
  3. YARN
  4. Common

1.3 HDFS

一個高可靠、高吞吐量的分布式檔案系統

1.4 MapReduce

一個分布式的離線并行計算架構

1.5 YARN

資源排程平台,負責作業排程與叢集資源管理的架構

1.6 Common

Hadoop體系最底層的一個子產品,為Hadoop各子項目提供支援其他子產品的工具子產品,如:配置檔案和日志操作等。

2、HDFS架構概述

NameNode(nn):存儲檔案的中繼資料,如檔案名,檔案目錄結構,檔案屬性(生成時間、副本數、檔案權限),以及每個檔案的塊清單和塊所在的DataNode等。

DataNode(dn):在本地檔案系統存儲檔案塊資料,以及塊資料的校驗和。

Secondary NameNode(2nn):用來監控HDFS狀态的輔助背景程式,每隔一段時間擷取HDFS中繼資料的快照。

3、MapReduce架構概述

MapReduce将計算過程分為兩個階段:Map和Reduce

1)Map階段并行處理輸入資料

2)Reduce階段對Map結果進行彙總

Hadoop總結——Hadoop基礎

4、YARN架構概述

Hadoop總結——Hadoop基礎

ResourceManager(RM):處理用戶端請求、啟動/監控ApplicationMaster、監控NodeManager、資源配置設定與排程