博客已轉移,請借一步說話。http://www.daniubiji.cn/archives/538服務器
咱們先來看看大數據時代,框架
什麼叫大數據,「大」,說的並不只是數據的「多」!不能用數據到了多少TB ,多少PB 來講。分佈式
對於大數據,能夠用四個詞來表示:大量,多樣,實時,不肯定。oop
也就是數據的量龐大,數據的種類繁雜多樣話,數據的變化飛快,數據的真假存疑。佈局
大量:這個你們都知道,想百度,淘寶,騰訊,Facebook,Twitter等網站上的一些信息,這確定算是大數據了,都要存儲下來。大數據
多樣:數據的多樣性,是說數據多是結構型的數據,也多是非結構行的文本,圖片,視頻,語音,日誌,郵件等。網站
實時:大數據須要快速的,實時的進行處理。若是說對時間要求低,那弄幾個機器,對小數據進行處理,等個十天半月的出來結果,這樣也沒有什麼意義了。this
不肯定: 數據是存在真僞的,各類各樣的數據,有的有用,有的沒用。很難辨析。spa
根據以上的特色,咱們須要一個東西,來:操作系統
1存儲大量數據
2快速的處理大量數據
3從大量數據中進行分析
因而就有了這樣一個模型hadoop。
hadoop的歷史就不說了。先來看看模型。
這就至關於一個生態系統,或者能夠當作一個操做系統XP,win7.
HDFS和MapReduce爲操做系統的核心,Hive,Pig,Mathout,Zookeeper,Flume,Sqoop,HBase等,都是操做系統上的一些軟件,或應用。
HDFS:(Hadoop Distributed File System),Hadoop分佈式文件系統。從名字上就看出了它的兩點功能。
基本功能,存文件,是一個文件系統;另外這個文件系統是分佈式的;
從圖上來看,HDFS的簡單原理。
Rack1,Rack2,Rack3是三個機架;
1,2,3,4,5,6,7,8,9,10,11,12 是機架上的十二臺服務器。
Block A, Block B, Block C爲三個信息塊,也就是要存的數據。
從總體佈局上來看,信息塊被分配到機架上。看似很均勻。這樣分配的目的,就是備份,防止某一個機器宕機後,單點故障的發生。
MapReduce,(Map + Reduce),就當作是計算的功能。能夠對數據進行處理。
它加快了計算。主要也是經過上圖的佈局。將數據分佈到多個服務器上。當有任務了,好比查詢,或者比較大小,先讓每臺服務器,都處理本身的存儲中文件。而後再將全部服務器的處理結果進行第二次處理。最後將結果返回。
其實,hadoop還有一點好處,就是省錢。
框架開源的,免費的,服務器也不用特別牛X的。
省錢纔是硬道理。
另外,從別的資料看到一種解釋mapreduce的方式,很簡單
Goal: count the number of books in the library.
Map: You count up shelf #1, I count up shelf #2.
(The more people we get, the faster this part goes. )
Reduce: We all get together and add up our individual counts.