網(wǎng)絡(luò)上流傳著這么的一句流行語(yǔ):“萬(wàn)事不懂問(wèn)度娘”。自從有了各種搜索引擎,新名詞新技術(shù)對(duì)大眾而言,已不再神秘。然而,當(dāng)你搜索“大數(shù)據(jù)”或者“big data solution”等關(guān)鍵字時(shí),搜索出的海量相關(guān)知識(shí)鋪天蓋地,對(duì)初學(xué)者而言,仍然很難在短時(shí)間內(nèi)入門(mén)。本文目的,是以傻瓜式提問(wèn)的方式讓初學(xué)者輕松的了解“大數(shù)據(jù)”。
大數(shù)據(jù)的概念
“大數(shù)據(jù)”,是不是----數(shù)據(jù)很大就叫大數(shù)據(jù)?
實(shí)際上簡(jiǎn)單的這樣理解也沒(méi)有錯(cuò),在明確定義時(shí),會(huì)比較強(qiáng)調(diào)大數(shù)據(jù)的4個(gè)V的特性: Volume,Variety,Value,Velocity。也就是:
一、數(shù)據(jù)存儲(chǔ)空間占用大(至PB及以上級(jí)別);
二、數(shù)據(jù)類(lèi)型繁多;
三、價(jià)值密度低;
四、處理速度快。
搜索的信息中,你會(huì)發(fā)現(xiàn)有某些名詞出現(xiàn)的頻率非常高,心里也隨之會(huì)產(chǎn)生一些疑問(wèn)?!癙B是多大?”“Map-Reduce是啥?”“Hadoop是啥?”“大數(shù)據(jù)跟云計(jì)算啥關(guān)系?跟傳統(tǒng)意義的數(shù)據(jù)庫(kù)啥關(guān)系?”等等。
這么多的信息量,我們還是按照大數(shù)據(jù)的基本定義,四個(gè)V來(lái)逐一梳理吧。
從第一個(gè)V開(kāi)始,Volume。
數(shù)據(jù)量很大,到底能達(dá)到什么程度呢?先來(lái)學(xué)習(xí)一下數(shù)量級(jí)的知識(shí)吧。
1KB(Kilobyte 千字節(jié)) = 2^10 B = 1024 B;
1MB(Megabyte 兆字節(jié)) = 2^10 KB = 1024 KB = 2^20 B;
1GB(Gigabyte 吉字節(jié)) = 2^10 MB = 1024 MB = 2^30 B;
1TB(Trillionbyte 太字節(jié)) = 2^10 GB = 1024 GB = 2^40 B;
1PB(Petabyte 拍字節(jié)) = 2^10 TB = 1024 TB = 2^50 B;
1EB(Exabyte 艾字節(jié)) = 2^10 PB = 1024 PB = 2^60 B;
1ZB(Zettabyte 澤字節(jié)) = 2^10 EB = 1024 EB = 2^70 B;
1YB(YottaByte 堯字節(jié)) = 2^10 ZB = 1024 ZB = 2^80 B;
1BB(Brontobyte ) = 2^10 YB = 1024 YB = 2^90 B;
1NB(NonaByte ) = 2^10 BB = 1024 BB = 2^100 B;
1DB(DoggaByte) = 2^10 NB = 1024 NB = 2^110 B;
……
“哇!坑爹啊,整出這么多名詞,跟大數(shù)據(jù)都有關(guān)系嗎?需要我們掌握嗎?”別激動(dòng)!其實(shí),KB,MB,GB我們?cè)谌粘?a href="http://www.delux-kingway.cn/v/tag/1247/" target="_blank">電腦操作中已經(jīng)經(jīng)常碰到了。甚至TB級(jí)的大硬盤(pán),也已經(jīng)應(yīng)用于家用電腦中了。我們所說(shuō)的“大數(shù)據(jù)”,目前大多產(chǎn)品還處在了立足PB展望EB的級(jí)別。后面的那些什么ZB、YB、BB、NB、 DB……等,就暫時(shí)先當(dāng)他們是浮云吧~
第二個(gè)V, Variety。
關(guān)于這一點(diǎn),百度百科里是這么說(shuō)的“網(wǎng)絡(luò)日志、視頻、圖片、地理位置信息等等”。從專(zhuān)業(yè)一點(diǎn)的角度,我們可以說(shuō)“大數(shù)據(jù)”中,可以有結(jié)構(gòu)化數(shù)據(jù),但更多的是大量的非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。
結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)是什么意思?
結(jié)構(gòu)化數(shù)據(jù)是指,可以存儲(chǔ)在數(shù)據(jù)庫(kù)里,可以用二維表結(jié)構(gòu)來(lái)邏輯表達(dá)實(shí)現(xiàn)的數(shù)據(jù)。
非結(jié)構(gòu)化數(shù)據(jù),是指不方便用數(shù)據(jù)庫(kù)二維邏輯表來(lái)表現(xiàn)的數(shù)據(jù),包括所有格式的辦公文檔、文本、圖片、XML、HTML、各類(lèi)報(bào)表、圖像和音頻/視頻信息等等。
而半結(jié)構(gòu)化數(shù)據(jù),就是介于完全結(jié)構(gòu)化數(shù)據(jù)(如關(guān)系型數(shù)據(jù)庫(kù)、面向?qū)ο髷?shù)據(jù)庫(kù)中的數(shù)據(jù))和完全無(wú)結(jié)構(gòu)的數(shù)據(jù)(如聲音、圖像文件等)之間的數(shù)據(jù),HTML文檔就屬于半結(jié)構(gòu)化數(shù)據(jù)。它一般是自描述的,數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容混在一起,沒(méi)有明顯的區(qū)分。
上述的描述,其實(shí)還是有點(diǎn)不明確。用數(shù)據(jù)模型的列表來(lái)看,區(qū)別就更清晰一點(diǎn)了:
第三個(gè)V,Value。
價(jià)值密度低。以視頻為例,連續(xù)不間斷監(jiān)控過(guò)程中,可能有用的數(shù)據(jù)僅僅有一兩秒。
第四個(gè)V,Velocity。
處理速度快。如此龐大的數(shù)據(jù)量,需要在短時(shí)間內(nèi)迅速響應(yīng)。所使用的技術(shù),當(dāng)然是有別于傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)的。
釋疑解惑
“梳理完了四個(gè)V,咋還是云山霧罩的呢?”
下面來(lái)回答幾個(gè)初學(xué)者可能思考到的問(wèn)題吧!
針對(duì)大數(shù)據(jù)的四個(gè)V,有沒(méi)有什么對(duì)應(yīng)的技術(shù)來(lái)應(yīng)對(duì)呢?
目前,查詢(xún)“大數(shù)據(jù)”,你會(huì)發(fā)現(xiàn)度娘給出的各種信息中,Hadoop這個(gè)詞出現(xiàn)的很頻繁。而且,很多廠商提供的產(chǎn)品,也都會(huì)打上一個(gè)標(biāo)簽:“**產(chǎn)品已經(jīng)并入Hadoop分布式計(jì)算平臺(tái),以及將Hadoop引入**產(chǎn)品?!?/p>
什么是Hadoop?
Hadoop是由Apache基金會(huì)開(kāi)發(fā)的一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu)。它是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。用戶(hù)可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序,充分利用集群的威力高速運(yùn)算和存儲(chǔ)。
Hadoop包含了如下子項(xiàng)目:
1. Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他項(xiàng)目公共內(nèi)容,從0.21開(kāi)始HDFS和MapReduce被分離為獨(dú)立的子項(xiàng)目,其余內(nèi)容為Hadoop Common
2. HDFS: Hadoop 分布式文件系統(tǒng) (Distributed File System) - HDFS (Hadoop Distributed File System)
3. MapReduce:并行計(jì)算框架,0.20前使用 org.apache.hadoop.mapred 舊接口,0.20版本開(kāi)始引入org.apache.hadoop.mapreduce的新API
4. HBase: 類(lèi)似Google BigTable的分布式NoSQL列數(shù)據(jù)庫(kù)。
5. Hive:數(shù)據(jù)倉(cāng)庫(kù)工具,由Facebook貢獻(xiàn)。
6. Zookeeper:分布式鎖設(shè)施,提供類(lèi)似Google Chubby的功能,由Facebook貢獻(xiàn)。
7. Avro:新的數(shù)據(jù)序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機(jī)制。
8. Pig: 大數(shù)據(jù)分析平臺(tái),為用戶(hù)提供多種接口。
作為初學(xué)者,我們先撥開(kāi)一些浮云,看看這里面到底有些什么。有三個(gè)主體部分,是我們需要重點(diǎn)關(guān)注的:HDFS、MapReduce、HBase。
實(shí)際上,Apache Hadoop的HDFS是Google File System(GFS)的開(kāi)源實(shí)現(xiàn)。MapReduce是Google MapReduce的開(kāi)源實(shí)現(xiàn)。HBase是Google BigTable的開(kāi)源實(shí)現(xiàn)。
Hadoop是一個(gè)能夠讓用戶(hù)輕松架構(gòu)和使用的分布式計(jì)算平臺(tái)。它主要有以下幾個(gè)優(yōu)點(diǎn):1高可靠性2高擴(kuò)展性3高效性4高容錯(cuò)性。用戶(hù)可以輕松地在Hadoop上開(kāi)發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。而實(shí)際上,很多公司提供的大數(shù)據(jù)產(chǎn)品也是基于Hadoop進(jìn)行開(kāi)發(fā)的。
數(shù)據(jù)存儲(chǔ)空間占用大
針對(duì)數(shù)據(jù)存儲(chǔ)空間占用大,我們需要用到的是“分布式存儲(chǔ)”。分布式存儲(chǔ)系統(tǒng),就是將數(shù)據(jù)分散存儲(chǔ)在多***立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用集中的存儲(chǔ)服務(wù)器存放所有數(shù)據(jù),存儲(chǔ)服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點(diǎn),不能滿(mǎn)足大規(guī)模存儲(chǔ)應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。
前面我們介紹到的Hadoop,其中的HDFS就是現(xiàn)今最流行的分布式存儲(chǔ)平臺(tái)之一。
HDFS原理簡(jiǎn)要描述
HDFS(Hadoop Distributed File System),是一個(gè)分布式文件系統(tǒng)。HDFS有著高容錯(cuò)性(fault-tolerent)的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的(low-cost)硬件上。它提供高吞吐量(high throughput)來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實(shí)現(xiàn)流的形式訪問(wèn)(streaming access)文件系統(tǒng)中的數(shù)據(jù)。
HDFS是一個(gè)主從結(jié)構(gòu)的體系,一個(gè)HDFS集群是由一個(gè)名字節(jié)點(diǎn),它是一個(gè)管理文件的命名空間和調(diào)節(jié)客戶(hù)端訪問(wèn)文件的主服務(wù)器,當(dāng)然還有的數(shù)據(jù)節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)一個(gè),它來(lái)管理存儲(chǔ)。HDFS暴露文件命名空間和允許用戶(hù)數(shù)據(jù)存儲(chǔ)成文件。
對(duì)外部客戶(hù)機(jī)而言,HDFS 就像一個(gè)傳統(tǒng)的分級(jí)文件系統(tǒng)??梢詣?chuàng)建、刪除、移動(dòng)或重命名文件,等等。
內(nèi)部機(jī)制,是將一個(gè)文件分割成一個(gè)或多個(gè)的塊,這些塊存儲(chǔ)在一組數(shù)據(jù)節(jié)點(diǎn)中。名字節(jié)點(diǎn)(NameNode)操作文件命名空間的文件或目錄操作,如打開(kāi),關(guān)閉,重命名,等等。它同時(shí)確定塊與數(shù)據(jù)節(jié)點(diǎn)的映射。數(shù)據(jù)節(jié)點(diǎn)(DataNode)來(lái)負(fù)責(zé)來(lái)自文件系統(tǒng)客戶(hù)的讀寫(xiě)請(qǐng)求。數(shù)據(jù)節(jié)點(diǎn)同時(shí)還要執(zhí)行塊的創(chuàng)建,刪除,和來(lái)自名字節(jié)點(diǎn)的塊復(fù)制指示。這與傳統(tǒng)的 RAID 架構(gòu)大不相同。塊的大小(通常為 64MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時(shí)由客戶(hù)機(jī)決定。NameNode 可以控制所有文件操作。
HDFS 內(nèi)部的所有通信都基于標(biāo)準(zhǔn)的 TCP/IP 協(xié)議。
數(shù)據(jù)類(lèi)型繁多
大數(shù)據(jù)處理,有如下需求:對(duì)數(shù)據(jù)庫(kù)高并發(fā)讀寫(xiě)的需求、對(duì)海量數(shù)據(jù)的高效率存儲(chǔ)和訪問(wèn)的需求、對(duì)數(shù)據(jù)庫(kù)的高可擴(kuò)展性和高可用性的需求。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在此類(lèi)需求面前束手無(wú)策。此時(shí),一個(gè)新的概念被引入了----NoSQL。
評(píng)論
查看更多