1. 程式人生 > >大資料時代——為什麼用HADOOP

大資料時代——為什麼用HADOOP

什麼叫大資料

“大”,說的並不僅是資料的“多”!不能用資料到了多少TB ,多少PB 來說。

對於大資料,可以用四個詞來表示:大量多樣實時價值

大量:這個大家都知道,想百度,淘寶,騰訊,Facebook,Twitter等網站上的一些資訊,這肯定算是大資料了,都要儲存下來。

多樣:資料的多樣性,是說資料可能是結構型的資料,也可能是非結構行的文字,圖片,視訊,語音,日誌,郵件等。

實時:大資料需要快速的,實時的進行處理。如果說對時間要求低,那弄幾個機器,對小資料進行處理,等個十天半月的出來結果,這樣也沒有什麼意義了。

有價值: 資料中,存在著價值。資料,也有可能創造價值。

QQ截圖20150319142943

根據以上的特點,我們需要一個東西,來:

1儲存大量資料

2快速的處理大量資料

3從大量資料中進行分析,以產生價值

於是就有了這樣一個模型————hadoop

hadoop的歷史就不說了。

hadoop模型如下:

01120649-240c5a4936e443828243f4ae4496d05d

(上圖為Hadoop1.x的佈局)

20130705_101518_910

(Hadoop2.x較Hadoop1.x,多了YARN)

Hadoop框架,是一個龐大的生態系統。

或者我們可以這樣理解:

可以把整個體系,看成一個作業系統XP,win7,win8,win10。

HDFS和MapReduce為作業系統的核心,Hive,Pig,Mathout,Zookeeper,Flume,Sqoop,HBase等,都是作業系統上的一些軟體,或應用。

HDFS:(Hadoop Distributed File System),Hadoop分散式檔案系統。

從名字上就看出了它的兩點功能。基本功能,存檔案,是一個檔案系統;另外這個檔案系統是分散式的;

01121148-56dd42e45beb442682593f863e3d4a93

從圖上來看,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),就看成是計算的功能。可以對資料進行處理。

它加快了計算。主要也是通過上圖的佈局。將資料分佈到多個伺服器上。當有任務了,比如查詢,或者比較大小,先讓每臺伺服器,都處理自己的儲存中檔案。然後再將所有伺服器的處理結果進行第二次處理。最後將結果返回。

另外,從別的資料看到一種解釋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.

其實,hadoop還有一點好處,就是省錢。

框架開源的,免費的,伺服器也不用特別牛X的。(廉價的商用伺服器——這裡說的是 “廉價”,“商用”,也就是不用買小型機那些東西,但是還得是商用的。正式生產環境,不能用普通的pc。)

省錢才是硬道理。(hadoop就行php開發LAMP一樣,工具免費,但是人力資源成本,也是需要考慮的。)

為了更好的瞭解大資料,先區別一下幾個經常見到的詞語。

1、大資料和雲端計算有什麼區別

雲端計算(cloudcomputing)是基於網際網路的相關服務的增加、使用和交付模式,通常涉及通過網際網路來提供動態易擴充套件且經常是虛擬化的資源。

雲端計算可以認為包括以下幾個層次的服務:基礎設施即服務(IaaS),平臺即服務(PaaS)和軟體即服務(SaaS)

IaaS(Infrastructure-as-a- Service):基礎設施即服務。消費者通過Internet可以從完善的計算機基礎設施獲得服務。例如:硬體伺服器租用。
PaaS:平臺即服務

PaaS(Platform-as-a- Service):平臺即服務。PaaS實際上是指將軟體研發的平臺作為一種服務,以SaaS的模式提交給使用者。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現可以加快SaaS的發展,尤其是加快SaaS應用的開發速度。例如:軟體的個性化定製開發。
SaaS:軟體即服務

SaaS(Software-as-a- Service):軟體即服務。它是一種通過Internet提供軟體的模式,使用者無需購買軟體,而是向提供商租用基於Web的軟體,來管理企業經營活動。例如:陽光雲伺服器。

現在用的hadoop是位於雲端計算中PaaS一層。

大資料(big data),或稱巨量資料,大的資料需要特殊的技術,以有效地處理大量的容忍經過時間內的資料。

2、公有云和私有云有什麼區別

①、公有云是放在Internet上的,只要是註冊使用者、付費使用者都可以用;

②、私有云是放在私有環境中的,比如企業、政府、組織等等自己在機房中建立的,或者是運營商建設好,但是整體租給某一組織的。企業、組織、政府等之外的使用者無法訪問或無法使用;

③、混合雲是公有云和私有云的混合,大多數是指私有云建設好了,但是很多資源(計算能力或儲存空間)不夠用,所以還得動態的在公網上申請公有云作為自己私有云的補充。

3、資料分析和資料探勘有什麼區別

4、資料倉庫、資料庫、資料集市有什麼區別

轉載,原博主地址:http://www.weixuehao.com/archives/538