1. 程式人生 > >hadoop的介紹以及發展歷史

hadoop的介紹以及發展歷史

1.Hadoop的介紹

  1. Hadoop最早起源於Nutch。Nutch的設計目標是構建一個大型的全網搜尋引擎,包括網頁抓取、索引、查詢等功能,但隨著抓取網頁數量的增加,遇到了嚴重的可擴充套件性問題——如何解決數十億網頁的儲存和索引問題。
  2. 2003年、2004年穀歌發表的兩篇論文為該問題提供了可行的解決方案。
    ——分散式檔案系統(GFS),可用於處理海量網頁的儲存
    ——分散式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。
  3. Nutch的開發人員完成了相應的開源實現HDFS和MAPREDUCE,並從Nutch中剝離成為獨立專案HADOOP,到2008年1月,HADOOP成為Apache頂級專案(同年,cloudera公司成立),迎來了它的快速發展期。
    狹義上來說,hadoop就是單獨指代hadoop這個軟體,
    廣義上來說,hadoop指代大資料的一個生態圈,包括很多其他的軟體

在這裡插入圖片描述

2.Hadoop是什麼?

Hadoop: 適合大資料的分散式儲存和計算平臺
Hadoop不是指具體一個框架或者元件,它是Apache軟體基金會下用Java語言開發的一個開源分散式計算平臺。實現在大量計算機組成的叢集中對海量資料進行分散式計算。適合大資料的分散式儲存和計算平臺。
Hadoop1.x中包括兩個核心元件:MapReduce和Hadoop Distributed File System(HDFS)
其中HDFS負責將海量資料進行分散式儲存,而MapReduce負責提供對資料的計算結果的彙總

3.Hadoop的起源

2003-2004年,Google公佈了部分GFS和MapReduce思想的細節,受此啟發的Doug Cutting等人用2年的業餘時間實現了DFS和MapReduce機制,使Nutch效能飆升。然後Yahoo招安Doug Gutting及其專案。
2005年,Hadoop作為Lucene的子專案Nutch的一部分正式引入Apache基金會。
2006年2月被分離出來,成為一套完整獨立的軟體,起名為Hadoop
Hadoop名字不是一個縮寫,而是一個生造出來的詞。是Hadoop之父Doug Cutting兒子毛絨玩具象命名的。
Hadoop的成長過程
Lucene–>Nutch—>Hadoop

總結起來,Hadoop起源於Google的三大論文
GFS:Google的分散式檔案系統Google File System
MapReduce:Google的MapReduce開源分散式平行計算框架
BigTable:一個大型的分散式資料庫

演變關係
GFS—->HDFS
Google MapReduce—->Hadoop MapReduce
BigTable—->HBase

4.Hadoop的發展歷史

Hadoop大事記
2004年— 最初的版本(現在稱為HDFS和MapReduce)由Doug Cutting和Mike Cafarella開始實施。
2005年12月— Nutch移植到新的框架,Hadoop在20個節點上穩定執行。
2006年1月— Doug Cutting加入雅虎。
2006年2月— Apache Hadoop專案正式啟動以支援MapReduce和HDFS的獨立發展。
2006年2月— 雅虎的網格計算團隊採用Hadoop。
2006年4月— 標準排序(10 GB每個節點)在188個節點上執行47.9個小時。
2006年5月— 雅虎建立了一個300個節點的Hadoop研究叢集。
2006年5月— 標準排序在500個節點上執行42個小時(硬體配置比4月的更好)。
2006年11月— 研究叢集增加到600個節點。
2006年12月— 標準排序在20個節點上執行1.8個小時,100個節點3.3小時,500個節點5.2小時,900個節點7.8個小時。
2007年1月— 研究叢集到達900個節點。
2007年4月— 研究叢集達到兩個1000個節點的叢集。
2008年4月— 贏得世界最快1TB資料排序在900個節點上用時209秒。
2008年7月— 雅虎測試節點增加到4000個
2008年9月— Hive成為Hadoop的子專案
2008年11月— Google宣佈其MapReduce用68秒對1TB的程式進行排序
2008年10月— 研究叢集每天裝載10TB的資料。
2008年— 淘寶開始投入研究基於Hadoop的系統–雲梯。雲梯總容量約9.3PB,共有1100臺機器,每天處理18000道作業,掃描500TB資料。
2009年3月— 17個叢集總共24 000臺機器。
2009年3月— Cloudera推出CDH(Cloudera’s Dsitribution Including Apache Hadoop)
2009年4月— 贏得每分鐘排序,雅虎59秒內排序500 GB(在1400個節點上)和173分鐘內排序100 TB資料(在3400個節點上)。
2009年5月— Yahoo的團隊使用Hadoop對1 TB的資料進行排序只花了62秒時間。
2009年7月— Hadoop Core專案更名為Hadoop Common;
2009年7月— MapReduce 和 Hadoop Distributed File System (HDFS) 成為Hadoop專案的獨立子專案。
2009年7月— Avro 和 Chukwa 成為Hadoop新的子專案。
2009年9月— 亞聯BI團隊開始跟蹤研究Hadoop
2009年12月—亞聯提出橘雲戰略,開始研究Hadoop
2010年5月— Avro脫離Hadoop專案,成為Apache頂級專案。
2010年5月— HBase脫離Hadoop專案,成為Apache頂級專案。
2010年5月— IBM提供了基於Hadoop 的大資料分析軟體——InfoSphere BigInsights,包括基礎版和企業版。
2010年9月— Hive( Facebook) 脫離Hadoop,成為Apache頂級專案。
2010年9月— Pig脫離Hadoop,成為Apache頂級專案。
2011年1月— ZooKeeper 脫離Hadoop,成為Apache頂級專案。
2011年3月— Apache Hadoop獲得Media Guardian Innovation Awards 。
2011年3月— Platform Computing 宣佈在它的Symphony軟體中支援Hadoop MapReduce API。
2011年5月— Mapr Technologies公司推出分散式檔案系統和MapReduce引擎——MapR Distribution for Apache Hadoop。
2011年5月— HCatalog 1.0釋出。該專案由Hortonworks 在2010年3月份提出,HCatalog主要用於解決資料儲存、元資料的問題,主要解決HDFS的瓶頸,它提供了一個地方來儲存資料的狀態資訊,這使得 資料清理和歸檔工具可以很容易的進行處理。
2011年4月— SGI( Silicon Graphics International )基於SGI Rackable和CloudRack伺服器產品線提供Hadoop優化的解決方案。
2011年5月— EMC為客戶推出一種新的基於開源Hadoop解決方案的資料中心裝置——GreenPlum HD,以助其滿足客戶日益增長的資料分析需求並加快利用開源資料分析軟體。Greenplum是EMC在2010年7月收購的一家開源資料倉庫公司。
2011年5月— 在收購了Engenio之後, NetApp推出與Hadoop應用結合的產品E5400儲存系統。
2011年6月— Calxeda公司(之前公司的名字是Smooth-Stone)發起了“開拓者行動”,一個由10家軟體公司組成的團隊將為基於Calxeda即將推出的ARM系統上晶片設計的伺服器提供支援。併為Hadoop提供低功耗伺服器技術。
2011年6月— 資料整合供應商Informatica釋出了其旗艦產品,產品設計初衷是處理當今事務和社會媒體所產生的海量資料,同時支援Hadoop。
2011年7月— Yahoo!和矽谷風險投資公司 Benchmark Capital建立了Hortonworks 公司,旨在讓Hadoop更加魯棒(可靠),並讓企業使用者更容易安裝、管理和使用Hadoop。
2011年8月— Cloudera公佈了一項有益於合作伙伴生態系統的計劃——建立一個生態系統,以便硬體供應商、軟體供應商以及系統整合商可以一起探索如何使用Hadoop更好的洞察資料。
2011年8月— Dell與Cloudera聯合推出Hadoop解決方案——Cloudera Enterprise。Cloudera Enterprise基於Dell PowerEdge C2100機架伺服器以及Dell PowerConnect 6248乙太網交換機

5.Hadoop的四大特性(優點)

1.擴容能力(Scalable):Hadoop是在可用的計算機叢集間分配資料並完成計算任務的,這些叢集可用方便的擴充套件到數以千計個節點中。
2.成本低(Economical):Hadoop通過普通廉價的機器組成伺服器叢集來分發以及處理資料,以至於成本很低。
3.高效率(Efficient):通過併發資料,Hadoop可以在節點之間動態並行的移動資料,使得速度非常快。
4.可靠性(Rellable):能自動維護資料的多份複製,並且在任務失敗後能自動地重新部署(redeploy)計算任務。所以Hadoop的按位儲存和處理資料的能力值得人們信賴。

6.hadoop的歷史版本介紹

0.x系列版本:hadoop當中最早的一個開源版本,在此基礎上演變而來的1.x以及2.x的版本
1.x版本系列:hadoop版本當中的第二代開源版本,主要修復0.x版本的一些bug等
2.x版本系列:架構產生重大變化,引入了yarn平臺等許多新特性

7.hadoop三大公司髮型版本介紹

1.免費開源版本apache:
http://hadoop.apache.org/
優點:擁有全世界的開源貢獻者,程式碼更新迭代版本比較快,
缺點:版本的升級,版本的維護,版本的相容性,版本的補丁都可能考慮不太周到,學習可以用,實際生產工作環境儘量不要使用
apache所有軟體的下載地址(包括各種歷史版本):
http://archive.apache.org/dist/

2.免費開源版本hortonWorks:
https://hortonworks.com/
hortonworks主要是雅虎主導Hadoop開發的副總裁,帶領二十幾個核心成員成立Hortonworks,核心產品軟體HDP(ambari),HDF免費開源,並且提供一整套的web管理介面,供我們可以通過web介面管理我們的叢集狀態,web管理介面軟體HDF網址(http://ambari.apache.org/)

3.軟體收費版本ClouderaManager:
https://www.cloudera.com/
cloudera主要是美國一家大資料公司在apache開源hadoop的版本上,通過自己公司內部的各種補丁,實現版本之間的穩定執行,大資料生態圈的各個版本的軟體都提供了對應的版本,解決了版本的升級困難,版本相容性等各種問題,生產環境強烈推薦使用

8.hadoop的架構模型(1.x,2.x的各種架構模型介紹)

1.x的版本架構模型介紹

在這裡插入圖片描述

檔案系統核心模組(HDFS):
NameNode:叢集當中的主節點,主要用於管理叢集當中的各種資料
secondaryNameNode:主要能用於hadoop當中元資料資訊的輔助管理
DataNode:叢集當中的從節點,主要用於儲存叢集當中的各種資料
資料計算核心模組(MapReduce):
JobTracker:接收使用者的計算請求任務,並分配任務給從節點
TaskTracker:負責執行主節點JobTracker分配的任務

2.x的版本架構模型介紹
第一種:NameNode與ResourceManager單節點架構模型
在這裡插入圖片描述
檔案系統核心模組(HDFS):
NameNode:叢集當中的主節點,主要用於管理叢集當中的各種資料
secondaryNameNode:主要能用於hadoop當中元資料資訊的輔助管理
DataNode:叢集當中的從節點,主要用於儲存叢集當中的各種資料
資料計算核心模組(MapReduce):
ResourceManager:接收使用者的計算請求任務,並負責叢集的資源分配,以及計算任務的劃分
NodeManager:負責執行主節點ResourceManager分配的任務

第二種:NameNode單節點與ResourceManager高可用架構模型
在這裡插入圖片描述

檔案系統核心模組(HDFS):
NameNode:叢集當中的主節點,主要用於管理叢集當中的各種資料
secondaryNameNode:主要能用於hadoop當中元資料資訊的輔助管理
DataNode:叢集當中的從節點,主要用於儲存叢集當中的各種資料
資料計算核心模組(MapReduce):
ResourceManager:接收使用者的計算請求任務,並負責叢集的資源分配,以及計算任務的劃分,通過zookeeper實現ResourceManager的高可用
NodeManager:負責執行主節點ResourceManager分配的任務

第三種:NameNode高可用與ResourceManager單節點架構模型

在這裡插入圖片描述

檔案系統核心模組(HDFS):
NameNode:叢集當中的主節點,主要用於管理叢集當中的各種資料,其中nameNode可以有兩個,形成高可用狀態
DataNode:叢集當中的從節點,主要用於儲存叢集當中的各種資料
JournalNode:檔案系統元資料資訊管理
資料計算核心模組(MapReduce):
ResourceManager:接收使用者的計算請求任務,並負責叢集的資源分配,以及計算任務的劃分
NodeManager:負責執行主節點ResourceManager分配的任務

第四種:NameNode與ResourceManager高可用架構模型
在這裡插入圖片描述

檔案系統核心模組(HDFS):
NameNode:叢集當中的主節點,主要用於管理叢集當中的各種資料,一般都是使用兩個,實現HA高可用
JournalNode:元資料資訊管理程序,一般都是奇數個
DataNode:從節點,用於資料的儲存
資料計算核心模組(MapReduce):
ResourceManager:Yarn平臺的主節點,主要用於接收各種任務,通過兩個,構建成高可用
NodeManager:Yarn平臺的從節點,主要用於處理ResourceManager分配的任務