Hadoop是Apache Lucene的創始人 Doung Cutting 創建的,
Lucene是一個廣泛用于文本搜索的系統庫。
Doung Cutting
Hadoop起源于Apache Nutch, 一個開源的網絡搜索引擎,也是Apache的Lucene項目的一部分。Hadoop是創始人Doung Cutting的兒子給一頭大象起的名字。
Hadoop的子項目及其后續項目所以用的名稱也與其本身的功能多數相關,通常以動物的名字。一些小的組件,名稱通常具有很好的描述性。比如:jobtracker是用于跟蹤MapReduce作業的。從零開始構建一個網絡搜索引擎是一個很大的計劃,并且往往會遇到很多的問題。不僅是因為編寫一個爬蟲并索引頁面的軟件比較復雜,而且,一個這樣的項目需要一個專門的團隊來實現。項目中也包含許多隨時都需要修改的組件,不斷的需要開發人員隨時對應。
另外,構建一個這樣的系統的代價也是非常高的,據Mike Cafarella和Doung Cutting估計,一個支持10億網頁的索引系統單硬件上的投入就要高達50萬美元,另外每月還需運維費用3萬美元。
Mike Cafarell
Nutch項目起始于2002年,一個可以運行的網頁爬取工具和搜索引擎系統很快被開發出來。后來,開發者認為該框架的可擴展度不夠,不能解決數十億網頁的搜索問題。2003年google產品架構發表了一篇論文,簡述了google的分布式文件系統,簡稱GFS。GFS或同類的架構,可以解決網頁爬取和索引過程中產生的超大文件的存儲需要。尤其是GFS能夠節省系統管理所花掉的大量時間,比如管理存儲節點。
2004年他們開始實現開源,也就是Nutch項目,NDFS即Nutch的分布式文件系統。
2004年,google發表論文介紹了他們的MapReduce系統。
2005年,Nutch開發人員在Nutch上實現了第一個MapReduce系統,并在年中實現了算法完全移植。這樣,Nutch的NDFS和MapReduce實現不只是適用于搜索領域。
2006年2月,開發人員將NDFS和MapReduce移出了Nutch形成了Lucene的一個子項目,稱為Hadoop。與此同時,創始人Doung加入了yahoo,yahoo將Hadoop發展成一個能夠處理Web數據的系統。
2008年2月,Yahoo!宣布其搜索引擎使用的索引是在一個擁有1萬個內核的Hadoop集群上構建的。
2008年1月,Hadoop稱為Apache的頂級項目。至今,除了Yahoo!外,還有 Facebook等其他公司使用Hadoop架構。
2008年4月,Hadoop打破世界紀錄,成為最快的TB級別排序系統。通過一個910個節點的集群,Hadoop在209秒內完成對1TB的數據的排序。
2008年11月,Google的報告中聲稱,它的MapReduce對1TB排序只用了68秒。
2009年5月,Yahoo!的團隊排序用了62秒。
Apache Hadoop
Hadoop是以MapReduce和HDFS而出名的,但是Hadoop實際上是一個組關于使用這個基礎平臺進行分布式計算和海量數據處理的項目的總稱。
這里列舉一下常用的項目:
Common
一組分布式文件系統和通用I/O的組件和結構(序列化,Java RPC和持久化數據結構)。
Avro
一種支持高效,跨語言的RPC以及永久存儲數據的序列化系統。
MapReduce
分布式數據處理模型和執行環境,運行于大型商用機集群。
HDFS
分布式文件系統,運行于大型商用機集群。
Pig
一種數據流語言和運行環境,用以檢索海量數據集。Pig運行在MapReduce和HDFS的集群上。
Hive
一個分布式,按列存儲的數據倉庫。Hive管理HDFS中存儲的數據,并提供基于SQL的查詢語言(由運行時引擎翻譯成MapReduce作業)用以查詢數據。
HBase
一個分布式,按列存儲數據庫。HBase使用HDFS作為底層存儲,同時支持MapReduce的批量式計算和點查詢(隨機讀取)。
ZooKeeper
一個分布式,可用于性高的協調服務。ZooKeeper提供分布式鎖之類的基本服務用于構建分布式應用。
Sqoop
在數據庫和HDFS之間高效傳輸數據的工具。
作者:Markboo