誰說大象不會跳舞
Hadoop是什麼
Hadoop的官網:http://hadoop.apache.org/
官網定義:The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Hadoop: 適合大數據的分佈式存儲和計算平臺
現爲Apache頂級開源項目,Hadoop不是指具體一個框架或者組件,它是Apache軟件基金會下用Java語言開發的一個開源分佈式計算平臺。實現在大量計算機組成的集羣中對海量數據進行分佈式計算,適合大數據的分佈式存儲和計算平臺。
舉個簡單例子:假如說你有一個籃子水果,你想知道蘋果和梨的數量是多少,那麼只要一個一個數就可以知道有多少了。如果你有一個集裝箱水果,這時候就需要很多人同時幫你數了,這相當於多進程或多線程。如果你很多個集裝箱的水果,這時就需要分佈式計算了,也就是Hadoop。Hadoopd之所謂會誕生,主要是由於進入到大數據時代,計算機需要處理的數據量太過龐大。這時就需要將這些龐大數據切割分配到N臺計算機進行處理。當大量信息被分配到不同計算機進行處理時,要確保最終得到的結果正確就需要對這些分佈處理的信息進行管理,的一套解決方案。
總結
1、Hadoop是Apache旗下的一套開源適合大數據的分佈式存儲和計算平臺平臺
2、Hadoop提供的功能:利用服務器集羣,根據戶自定義業邏輯對海量數進行分佈式處理
hadoop的概念:
狹義上: 就是apache的一個頂級項目:apahce hadoop
廣義上: 就是指以hadoop爲核心的整個大數據處理體系
Hadoop的起源
HADOOP最早起源於Nutch。Nutch的設計目標是構建一個大型的全網搜索引擎,爲Apache Lucene項目的一部分,包括網頁抓取、索引、查詢等功能,但隨着抓取網頁數量的增加,遇到了嚴重的可擴展性問題——如何解決數十億網頁的存儲和索引問題。
這個問題的解決方案源於Google的三大論文 :GFS ,BigTable和MapReduce。受此啓發的Doug Cutting(Hadoop之父)等人用業餘時間實現了DFS和MapReduce機制。2006年2月從Nutch被分離出來,成爲一套完整獨立的軟件,起名爲Hadoop。
Hadoop的成長過程經歷了:Lucene–>Nutch—>Hadoop
三篇論文的核心思想逐步演變,最終:
GFS—->HDFS
Google MapReduce—->Hadoop MapReduce
BigTable—->HBase
Hadoop版本與架構核心
Apache開源社區版本,現已到3.x
Hadoop1.0版本兩個核心:HDFS+MapReduce
Hadoop2.0版本,引入了Yarn。核心:HDFS+Yarn+Mapreduce
Yarn是資源調度框架。能夠細粒度的管理和調度任務。此外,還能夠支持其他的計算框架,比如spark等。
Hadoop3.0版本,未引入新核心,在原核心上,升級了很多東西。具體參見官網
Hadoop的核心組件:
1)Hadoop Common:支持其他Hadoop模塊的常用工具。
2) Hadoop分佈式文件系統(HDFS™):一種分佈式文件系統,可提供對應用程序數據的高吞吐量訪問。
3) Hadoop YARN:作業調度和集羣資源管理的框架。
4) Hadoop MapReduce:一種用於並行處理大型數據集的基於YARN的系統。
大數據的處理主要就是存儲和計算。
如果說安裝hadoop集羣,其實就是安裝了兩個東西: 一個操作系統YARN 和 一個文件系統HDFS。其實MapReduce就是運行在YARN之上的應用。
操作系統 文件系統 應用程序
win7 NTFS QQ,WeChat
YARN HDFS MapReduce
Hadoop理念
Hadoop可運行於一般的商用服務器上,具有高容錯、高可靠性、高擴展性等特點
特別適合寫一次,讀多次的場景
適合場景
- 大規模數據
- 流式數據(寫一次,讀多次)
- 商用硬件(一般硬件)
不適合場景
- 低延時的數據訪問
- 大量的小文件
- 頻繁修改文件
PS
Hadoop起源的三個google論文 中文版
GFS Google的分佈式文件系統Google File System
BigTable 一個大型的分佈式數據庫
MapReduce Google的MapReduce開源分佈式並行計算框架