大數(shù)據(jù)技術(shù)概述_第1頁(yè)
大數(shù)據(jù)技術(shù)概述_第2頁(yè)
大數(shù)據(jù)技術(shù)概述_第3頁(yè)
大數(shù)據(jù)技術(shù)概述_第4頁(yè)
大數(shù)據(jù)技術(shù)概述_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

大數(shù)據(jù)技術(shù)

1.什么是數(shù)據(jù)挖掘,什么是機(jī)器學(xué)習(xí):

什么是機(jī)器學(xué)習(xí)

關(guān)注的問(wèn)題:計(jì)算機(jī)程序如何隨著經(jīng)驗(yàn)枳累自動(dòng)提高性能:

研究計(jì)算機(jī)怎樣模擬或比現(xiàn)人類(lèi)的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自

身的性能;

通過(guò)輸入和輸出,來(lái)訓(xùn)練一個(gè)模型。

□數(shù)據(jù)挖掘(商務(wù)智能)

■通過(guò)特定的算法對(duì)大量的數(shù)據(jù)|進(jìn)行自動(dòng)分析,揭示

數(shù)據(jù)中隱藏的歷史規(guī)律和未來(lái)發(fā)展趨勢(shì),為決策者

提供參考

口加器學(xué)習(xí)(人工智能):盡可能減少人的影響

■通過(guò)給機(jī)器“嘿取”數(shù)據(jù),讓機(jī)器像人一樣通過(guò)學(xué)

習(xí)逐步自我提高、兔善,使挖掘和預(yù)測(cè)更準(zhǔn)確

2.大數(shù)據(jù)分析系統(tǒng)層次結(jié)構(gòu):應(yīng)用層、算法層、系統(tǒng)軟件層、基礎(chǔ)設(shè)施層

3.傳統(tǒng)的機(jī)器學(xué)習(xí)流程

預(yù)處理-》特征提取-》特征選擇一》再到推理-》預(yù)測(cè)或者識(shí)別。

手工地選取特征是一件非常費(fèi)力、啟發(fā)式(需要專(zhuān)業(yè)知識(shí))的方法,如果數(shù)據(jù)被很好的表達(dá)成了特征,通常線(xiàn)性

模型就能到達(dá)滿(mǎn)意的精度。

4.大數(shù)據(jù)分析的主要思想方法

4.1三個(gè)思維上的轉(zhuǎn)變

關(guān)注全集(不是隨機(jī)樣本而是全體數(shù)據(jù)):面臨大規(guī)模數(shù)據(jù)時(shí),依賴(lài)于采樣分析;統(tǒng)計(jì)學(xué)習(xí)的目的一一用盡可能

少的數(shù)據(jù)來(lái)證實(shí)盡可能重大的發(fā)現(xiàn);大數(shù)據(jù)是指不用隨機(jī)分析這樣的捷徑,而是采用大局部或全體數(shù)據(jù)。

關(guān)注概率(不是精確性而是概率):大數(shù)據(jù)的簡(jiǎn)單算法比小數(shù)據(jù)的復(fù)雜算法更有效

關(guān)注關(guān)系(不是因果關(guān)系而是相關(guān)關(guān)系):建立在相關(guān)關(guān)系分析法基礎(chǔ)上的預(yù)測(cè)是大數(shù)據(jù)的核心,相關(guān)關(guān)系的核

心是量化兩個(gè)數(shù)據(jù)值之間的數(shù)理關(guān)系,關(guān)聯(lián)物是預(yù)測(cè)的關(guān)鍵。

4.2數(shù)據(jù)創(chuàng)新的思維方式

可量?jī)|是數(shù)據(jù)的核心特征(將所有可能與不可能的信息數(shù)據(jù)化);挖掘數(shù)據(jù)潛在的價(jià)值是數(shù)據(jù)創(chuàng)新的核心;三類(lèi)

最有價(jià)值的信息:位置信息、信令信息以及網(wǎng)管和日志。

數(shù)據(jù)混搭為創(chuàng)造新應(yīng)用提供了重要支持。

數(shù)據(jù)墳?zāi)梗禾峁?shù)據(jù)效勞,其他人都比我聰明!

數(shù)據(jù)廢氣:是用戶(hù)在線(xiàn)交互的副產(chǎn)品,包括了瀏覽的頁(yè)面,停留了多久,鼠標(biāo)光標(biāo)停留的位置、輸入的信息。

4.3大數(shù)據(jù)分析的要素

人數(shù)據(jù)“價(jià)值鏈”構(gòu)成:數(shù)據(jù)、技術(shù)與需求(思維);數(shù)據(jù)的價(jià)值在于正確的解讀。

5.數(shù)據(jù)化與數(shù)字化的區(qū)別

數(shù)據(jù)億:將現(xiàn)象轉(zhuǎn)變?yōu)榭芍票矸治龅牧炕问降倪^(guò)程;

數(shù)字化:將模擬數(shù)據(jù)轉(zhuǎn)換成使用0、1表示的二進(jìn)制碼的過(guò)程

6.基于協(xié)同過(guò)濾的推薦機(jī)制

基于協(xié)同過(guò)濾的推薦(這種機(jī)制是現(xiàn)今應(yīng)用最為廣泛的推薦機(jī)制)一一基于模型的推薦(SVM、聚類(lèi)、潛在語(yǔ)義

分析、貝葉斯網(wǎng)絡(luò)、線(xiàn)性回歸、邏輯回歸)

余弦距離(又稱(chēng)余弦相似度):表示是否有相同的傾向

歐幾里得距離(又稱(chēng)歐幾里得相似度):表示絕對(duì)的距離

這種推薦方法的優(yōu)缺點(diǎn):

它不需要對(duì)物品或者用戶(hù)進(jìn)行嚴(yán)格的建模,而且不要求物品的描述是機(jī)器可理解的;推薦是開(kāi)放的,可以共用他

人的經(jīng)驗(yàn),很好的支持用戶(hù)發(fā)現(xiàn)潛在的興趣偏好。

數(shù)據(jù)稀疏性問(wèn)題,大量的用戶(hù)只是評(píng)價(jià)了一小局部的工程,而大多數(shù)的工程是沒(méi)有進(jìn)行評(píng)分;冷啟動(dòng)問(wèn)題,新物

品和新用戶(hù)依賴(lài)于用戶(hù)歷史偏好數(shù)據(jù)的多少和準(zhǔn)確性,一些特殊品味的用戶(hù)不能給予很好的推薦。

7.機(jī)器學(xué)習(xí):構(gòu)建復(fù)雜系統(tǒng)的可能方法/途徑

機(jī)器學(xué)習(xí)使用場(chǎng)景的核心三要素:存在潛在模式、不容易列出規(guī)貝!并編程實(shí)現(xiàn)、有歷史的數(shù)據(jù)

8.機(jī)器學(xué)習(xí)的基礎(chǔ)算法之PLA算法和Pocket算法(貪心PLA)

感知港一一線(xiàn)性二維分類(lèi)器,都屬于二分類(lèi)算法

二者的區(qū)別:迭代過(guò)程有所不同,結(jié)束條件有所不同;

證明了線(xiàn)性口J分的情況卜是PLA和Pocket可以收斂。

9,機(jī)器為什么能學(xué)習(xí)

W^n)+Xn]In-sampleerrorEin(h)

WX)^f(xnOut-of-sampleerrorE^fh)

學(xué)習(xí)過(guò)程被分解為兩個(gè)問(wèn)題:

能否確保Eout(g)與Ein(g)足夠相似?

能否使Ein(g)足夠?。?/p>

規(guī)模較大的N,有限的dVC,較低的Ein條件下,學(xué)習(xí)是可能的。

切入點(diǎn):利用具體特征的,基于有監(jiān)督方式的,批量學(xué)習(xí)的分析,進(jìn)行二分類(lèi)預(yù)測(cè)。

1O.VC維:

〃的vc維表示為vc(〃)

■代能好機(jī)〃分收的乘人祭冬的大小。若〃能分收任意大小的

條金,邱么VC(〃)為無(wú)宏大。

■裊衽一介模用分類(lèi)區(qū)的復(fù)條度

分散(shatter)

■對(duì)于一個(gè)給定善含S="/,…,xd},人果一個(gè)分類(lèi)我,,能夠?qū)?/p>

祟合S中所有元樂(lè)的任云一鐘標(biāo)記方式限行分類(lèi),時(shí)稱(chēng)〃統(tǒng)

號(hào)今致5

■例如:二維筏性分類(lèi)工〃,就是平面上的fi.線(xiàn),番金S包合3

個(gè)支的情況小的推度是3),只要存與一希S中3個(gè)樣本的

核無(wú)關(guān)夕:,使得它的所有標(biāo)卷分M方式’2八3=8種J,郁是

二般線(xiàn)性分類(lèi)區(qū)可分的,就耕為可被分收,因此”的VC維

曼少為3

IVC維反映了函數(shù)集的學(xué)習(xí)能力,VC維越大則學(xué)習(xí)機(jī)

器越復(fù)雜(農(nóng)量越大)

I目前尚沒(méi)有通用的關(guān)于任意舀教集VC維計(jì)算的理論

,只對(duì)一些特殊的函數(shù)集知道其VC維

■如:N維空間中式性分類(lèi)衰才。為性實(shí)舀教的VC維是N+1

11.噪聲的種類(lèi):

數(shù)據(jù)噪聲:Eiu

g的VC維度過(guò)高帶來(lái)的噪聲:dvc

訓(xùn)練集過(guò)小帶來(lái)的噪聲:N

12.誤差函數(shù)(損失函數(shù))上似。E°'"<S>=列或切=公川

兩種重要的諼差法數(shù)

□“是必K

■是我第由的兩米(poim、vHc):A*—4*XX<+Mt累*

■藥”重#?的:0Icnror.squarederror

E/g/=訟-err(g(x)f(x.?9(。)記為y'J(。:記為y

errfy'.y)-\y^y\a14ft*,位*用Xl分矣區(qū)上

errfy*,y)=(X-y)2+方婚港.統(tǒng)*用左9用分期J.

13.給出數(shù)據(jù)計(jì)算誤差

1輸入數(shù)據(jù)

P(y=1\x)=0.2,P(y=2\x)=0.7fP(y=3x)=0.1

0/1誤差的情況平方誤差的情況

972

err(y'fy)=[[yVy]]err(yty)=(y-y)

r1avg.err0.84f1avg.err1.1

12avg.err0.3avg.err0.3

|3avg.err0.9avg.err1.5

11.9avg.err1.01.9avg.err0.29

f(x)=argmaxP(y\x)f(x)=^y-P(y\x)

yer

14.線(xiàn)性回歸算法:簡(jiǎn)單并且有效的方法,典型公式〃㈤=卬小

□左數(shù)據(jù)條D上,構(gòu)建輸入矩陣X,構(gòu)建.輸出向量y

--Xi--]ryf

xNLYA-

□i+Xpseudo-inverse

□X+的維度(d+1JxN

□返回最優(yōu)的w=X*y

線(xiàn)性回歸的誤差函數(shù):使得各點(diǎn)到目標(biāo)線(xiàn)/平面的平均距離最小!

fz2

erv(yfy)=(y-y)

2

4(w)=^Xn=i(h(xn)-yn)f

九(4)就是w%

目標(biāo),錄小化E/M,,

15.線(xiàn)性回歸重點(diǎn)算法局部:

最優(yōu)化的線(xiàn)性回歸斛(解空河)

OTT

VEin(w)=^XXw-Xy)=()

XLY如果可用rx如果不可逆

果是奇異矩陣,

WLN=XX)TXTy則不可逆;

(XTX)TX7記為犬,其他方式定義

款為pseudo-inverse

N>d+1叫川=乂十y

上述條件保證大部分情況下NX可逆

戰(zhàn)性回歸算注

口在數(shù)據(jù)集D上,構(gòu)建輸入矩陣X,構(gòu)建輸出向量y

■y/

--%7%

x=y=???

__V*——

L八」yN.

□計(jì)算pseudo-inverse

□X+的維度Cd+1JxN

□返回最優(yōu)的w=xfy

簡(jiǎn)單并且有效的方:去!

16.線(xiàn)性分類(lèi)與線(xiàn)性回歸的區(qū)別:

□線(xiàn)性分類(lèi),NP-hard,沒(méi)有解淅解

y={“,+】}{-1,+1}UR

7

h(x)=signfw^任用線(xiàn)性回歸來(lái)做分類(lèi)?

errfy',y)=[v7yj

NP-Hard1.在救據(jù)條D上跑一遍或性

回歸;

□線(xiàn)性回歸,有效的臀折斛

2.g(x)=sign(JVh?X).

ycR

h(x)=M,7X

etr(yf,y)=(yz-y)2

離權(quán)率的解祈解

2

mnEin(w)=IIXw-y||Ejn(w),連續(xù),可微分,凸函教

膏(w)1

0-

如、0

(卬)—

VEinM=3%

■■■???

£^121.0.

-0%(卬)-

尋找W曲,使得V&W/3=0

有好的并且E。,〃是好的,發(fā)生了學(xué)習(xí),

T7.過(guò)擬合:

原因:模型復(fù)雜太高,噪聲,數(shù)據(jù)量規(guī)模有限。

解決方案:使用簡(jiǎn)單的模型,數(shù)據(jù)清洗(整形),正則化,驗(yàn)證。

18.正則化

n*l

H(Q?f9.X同時(shí)K及“下外泉,

10

¥同于求M如下大孑的反小化:

£/M+

求解」/(%明)+號(hào)%£「0

最優(yōu)解:W.£C=0Z+入I尸2ry.

19.分布式文件系統(tǒng),

一種通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)文件在多臺(tái)主機(jī)上進(jìn)行分布式存儲(chǔ)的文件系統(tǒng);分布式文件系統(tǒng)?般采用C/S模式,客戶(hù)端以

特定的通信協(xié)議通過(guò)網(wǎng)絡(luò)與效勞器建立連接,提出文件訪(fǎng)問(wèn)請(qǐng)求;客戶(hù)端和效勞器可以通過(guò)設(shè)置訪(fǎng)問(wèn)權(quán)限來(lái)限制

請(qǐng)求方對(duì)底層數(shù)據(jù)存儲(chǔ)塊的訪(fǎng)問(wèn)。

20.計(jì)算機(jī)集群結(jié)構(gòu):

分布式文件系統(tǒng)把文件分布存儲(chǔ)到多個(gè)計(jì)算機(jī)節(jié)點(diǎn)上,成千上萬(wàn)的計(jì)算機(jī)節(jié)點(diǎn)構(gòu)成計(jì)算機(jī)集群.

與之前使用多個(gè)處理器和專(zhuān)用高級(jí)硬件的并行化處理裝置不同的是,目前的分布式文件系統(tǒng)所采用的計(jì)算機(jī)集群

都是由普通硬件構(gòu)成的,因此大大降低了硬件上的開(kāi)銷(xiāo)。

21.分布式文件系統(tǒng)的結(jié)構(gòu):

分布式文件系統(tǒng)在物理結(jié)構(gòu)上是由計(jì)算機(jī)集群中的多個(gè)節(jié)點(diǎn)構(gòu)成,這些節(jié)點(diǎn)分為兩類(lèi),一類(lèi)叫“主節(jié)點(diǎn)”

(MasterNode)或者也被稱(chēng)為“名稱(chēng)結(jié)點(diǎn)〃(NameNode),另一類(lèi)叫“從節(jié)點(diǎn)”(SlaveNode)或者也被稱(chēng)為“數(shù)據(jù)

節(jié)點(diǎn)。

22.HDFS

主要特性:兼容廉價(jià)的硬件設(shè)備、支持大數(shù)據(jù)存儲(chǔ)、流數(shù)據(jù)讀寫(xiě)、簡(jiǎn)單的文件模型、強(qiáng)大的跨平臺(tái)兼容性;

局限性:不適合低延遲數(shù)據(jù)處理、無(wú)法高校存儲(chǔ)大量小文件、入支持多用戶(hù)寫(xiě)入及任意修改文件

塊:

hdfs的名稱(chēng)節(jié)點(diǎn)存儲(chǔ)元數(shù)據(jù)、元數(shù)據(jù)保存在內(nèi)存中、保存文件,block,datanode之間的映射關(guān)系;hdfs

的數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)文件內(nèi)容、文件內(nèi)容保存在磁盤(pán)、維護(hù)了blockid到datanode本地文件的映射關(guān)系。

?在HDFS中,名稱(chēng)節(jié)點(diǎn)(NameNode)負(fù)責(zé)管理分布式文件系

統(tǒng)的命名空間(Namespace),保存了兩個(gè)核心的數(shù)據(jù)結(jié)

構(gòu),即FsImage和EditLog:

①Fslmage用于維護(hù)文件系統(tǒng)樹(shù)以及文件樹(shù)中所有的文件和文件夾的元數(shù)據(jù)

②操作日志文件EditLog中記錄了所有針對(duì)文件創(chuàng)建、刪除、重命名等操作

?名稱(chēng)節(jié)點(diǎn)記錄了每個(gè)文件中各個(gè)塊所在的數(shù)據(jù)節(jié)點(diǎn)的位置

名稱(chēng)節(jié)點(diǎn)的啟動(dòng)

在名稱(chēng)節(jié)點(diǎn)啟動(dòng)的時(shí)候,它會(huì)將FsImage文件中的內(nèi)容加

載到內(nèi)存中,之后再執(zhí)行EditLog文件中的各項(xiàng)操作,使

得內(nèi)存中的元數(shù)據(jù)和實(shí)際的同步,存在內(nèi)存中的元數(shù)據(jù)

支持客戶(hù)端的讀操作。

名稱(chēng)節(jié)點(diǎn)啟動(dòng)后,HDFS中的更新操作會(huì)重新寫(xiě)到EditLog

文件中,因?yàn)镕slmage文件一般都很大(GB級(jí)別的很常見(jiàn)

),如果所有的更新操作都往Fslmage文件中添加,這樣

會(huì)導(dǎo)致系統(tǒng)運(yùn)行的十分緩慢,因此,HDFS的所有更新操

作都是直接寫(xiě)到EditLog中。

Fslma^e文件

rFsImage文件包含文件系統(tǒng)中所有口錄和文件'node的并

列化形式。每個(gè)inode是一個(gè)文件或目錄的元數(shù)據(jù)的內(nèi)部

表示,并包含此類(lèi)信息:對(duì)于目錄,存儲(chǔ)修改時(shí)間、權(quán)

限和配額元數(shù)據(jù);對(duì)于文件,存儲(chǔ)復(fù)制等級(jí)、修改和訪(fǎng)

問(wèn)時(shí)間、訪(fǎng)問(wèn)權(quán)限、塊大小以及組成文件的塊。

,F(xiàn)sImage文件沒(méi)有記錄塊存儲(chǔ)在哪個(gè)數(shù)據(jù)節(jié)點(diǎn)。而是由名

稱(chēng)節(jié)點(diǎn)把這些映射保留在內(nèi)存中,當(dāng)數(shù)據(jù)節(jié)點(diǎn)加入HDFS

集群時(shí),數(shù)據(jù)節(jié)點(diǎn)會(huì)把自己所包含的塊列表告知給名稱(chēng)

節(jié)點(diǎn),此后會(huì)定期執(zhí)行這種告知操作,以確保名稱(chēng)節(jié)點(diǎn)

的塊映射是最新的。

約式文件系統(tǒng)小結(jié)

分布式文件系統(tǒng)是大教據(jù)時(shí)代解決大規(guī)模數(shù)據(jù)存儲(chǔ)問(wèn)邈的有效解決方

案,HDFS開(kāi)源實(shí)現(xiàn)了GFS,可以利用由廉價(jià)破件構(gòu)成的計(jì)算機(jī)集群實(shí)

現(xiàn)海量數(shù)據(jù)的分布式存儲(chǔ)。

HDFS具有美容廉價(jià)的硬件設(shè)備、流數(shù)據(jù)讀寫(xiě)、大數(shù)據(jù)集、簡(jiǎn)單的文件

模型、強(qiáng)大的跨平臺(tái)兼字性等特點(diǎn)。但是.也要注意到,HDFS也有自

身的局F艮性,比如不適合低延遲數(shù)據(jù)訪(fǎng)問(wèn)、無(wú)法高效存儲(chǔ)大量小文件

和不支持多用戶(hù)寫(xiě)入及任意修改文件等。

塊是HDFS核心的極念,一個(gè)大的文件會(huì)敕拆分成很多個(gè)塊。HDFS采用

抽象的塊概念,具有支持大規(guī)模文件存儲(chǔ)、簡(jiǎn)化系統(tǒng)設(shè)計(jì)等優(yōu)點(diǎn)。

HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群包括一個(gè)

名稱(chēng)節(jié)點(diǎn)和若干個(gè)數(shù)據(jù)節(jié)點(diǎn)。名稱(chēng)節(jié)點(diǎn)4賁管理分布式文件系統(tǒng)的命

名空間:款據(jù)節(jié)點(diǎn)是分布式文件系統(tǒng)HDFS的工作節(jié)點(diǎn),負(fù)方數(shù)據(jù)的存

儲(chǔ)和讀取?

HDFS采用了冗余數(shù)據(jù)存儲(chǔ),增強(qiáng)了數(shù)據(jù)可靠性,加快了數(shù)據(jù)傳輸速度

oHDFS還采用了相應(yīng)的數(shù)據(jù)存放、數(shù)據(jù)讀取和數(shù)據(jù)復(fù)制策略,表提升

系統(tǒng)槃體讀寫(xiě)響應(yīng)性能。HDFS把我件出錯(cuò)看作一種常態(tài),設(shè)計(jì)了錯(cuò)誤

恢復(fù)機(jī)制。

23.分布式數(shù)據(jù)庫(kù)概述:

四類(lèi)典型的作用于大數(shù)據(jù)存儲(chǔ)和管理的分布式數(shù)據(jù)庫(kù):并行數(shù)據(jù)庫(kù)、NoSQL數(shù)據(jù)管理

系統(tǒng)、NewSQL數(shù)據(jù)管理系統(tǒng)、云數(shù)據(jù)管理系統(tǒng)。

并行數(shù)據(jù)庫(kù):

?定義

,通it封行使用多個(gè)CPU和網(wǎng)盒梟精請(qǐng)媼裂我找找、建立京

引、執(zhí)行女詢(xún)等操作并懺化以攝升也能的代提張系統(tǒng).a

往運(yùn)行在通用計(jì)算機(jī)如成的臬”環(huán)境中.

?優(yōu)點(diǎn)

,通遼3個(gè)節(jié)點(diǎn)畀什執(zhí)行敦疆厚任務(wù).提高終個(gè)敦裾以累統(tǒng)

的帆能和可用帆.

?不足

,并行負(fù)據(jù)以諛計(jì)和優(yōu)化時(shí)認(rèn)為集“中節(jié)依數(shù)量是國(guó)定的.

若果對(duì)某“進(jìn)什"展義收饗.數(shù)據(jù)外移戌本高,還會(huì)小改

系統(tǒng)一稹時(shí)用不可用.

,認(rèn)為節(jié)點(diǎn)做陣是特例.國(guó)此只找供事務(wù)域別的咨懵,如果

查詢(xún)過(guò)包中節(jié)點(diǎn)出借.簽個(gè)查詢(xún)名條立運(yùn)行.

NoSQL數(shù)據(jù)管理系統(tǒng):

定義

沒(méi)有固定微提根K并且可以水平如黑妁系統(tǒng)械林為NoSOL.ftoSQL不支

馬關(guān)系家施根里?

優(yōu)點(diǎn)

夸泰記錄胡有唯一的便.一次操作笈,取單個(gè)記錄帽強(qiáng)

了系統(tǒng)可始展41.

身并行第據(jù)@不同.NoSOL數(shù)推品優(yōu)能夠£于依端硬件《道月PCR)

選行水平療及,靈活性方.成本傀.

NoSOL軟務(wù)系優(yōu)&吐量化傳統(tǒng)關(guān)系做探管理系統(tǒng)臬高很S.W*.

GoogI。帕BigtabIe每天可處理20P6的敦?fù)?jù).

不足

^lHACID4Ht.ACID時(shí)性胞物使系統(tǒng)在中斷的情況■下果證在

線(xiàn)亨務(wù)能的準(zhǔn)硝執(zhí)行■,

NoSOL系比提供不同的查詢(xún)娛也增加了開(kāi)發(fā)者。把.)44*年人孑

NewSQL數(shù)據(jù)管理系統(tǒng):

定義

筑能物支持傳統(tǒng)關(guān)系型式提去的ACID事務(wù),/代和SOL查詢(xún)

,又能否提供NoSOL欲依管理樂(lè)優(yōu)的可“晨姓妁收握管JT

系統(tǒng).NerSOL是時(shí)傳統(tǒng)基于$01的關(guān)系型數(shù)楣牌?的釗新。

特性

文持美看數(shù)探根型

仗用SQL作為正受快。

其行高吞吐量和高可獷展性

云數(shù)據(jù)管理系統(tǒng):

定義

基于云計(jì)算技術(shù)的數(shù)據(jù)管理系統(tǒng),用戶(hù)無(wú)需在本地安裝數(shù)

據(jù)庫(kù)軟件,只需使用“云數(shù)據(jù)庫(kù)服務(wù)提供商”拄供的數(shù)據(jù)

庫(kù)服務(wù)即可.

優(yōu)點(diǎn)

用戶(hù)無(wú)需購(gòu)買(mǎi)基礎(chǔ)設(shè)施和軟件,性?xún)r(jià)比高。

用戶(hù)可以根據(jù)自己的需求申請(qǐng)存儲(chǔ)資源即可,并且可以根

據(jù)應(yīng)用蒿汆動(dòng)態(tài)變化,刃伸縮性好?

用戶(hù)無(wú)需考慮云數(shù)據(jù)庫(kù)底層的硬件和軟件實(shí)現(xiàn).只需要通

過(guò)其提供的接口使用其服務(wù)。

不足

存儲(chǔ)在云數(shù)據(jù)庫(kù)中的數(shù)據(jù)可能會(huì)造成除私泄舞與"1t*+入.

Nosql簡(jiǎn)介:數(shù)據(jù)模型靈活、簡(jiǎn)潔;水平可擴(kuò)展性強(qiáng);系統(tǒng)吞吐量高;

關(guān)系數(shù)據(jù)庫(kù)無(wú)法滿(mǎn)足大數(shù)據(jù)表現(xiàn):無(wú)法滿(mǎn)足海量數(shù)據(jù)的管理需求、無(wú)法滿(mǎn)足數(shù)據(jù)高并發(fā)的需求、無(wú)法滿(mǎn)足而可拓

展性和高可用性的需求。

關(guān)系數(shù)據(jù)庫(kù)的關(guān)鍵特性包括完善的事務(wù)機(jī)制和高效的查

詢(xún)機(jī)制。但是,關(guān)系數(shù)據(jù)庫(kù)引以為傲的兩個(gè)關(guān)鍵特性,到了

大數(shù)據(jù)時(shí)代卻不一定是必須,主要表現(xiàn)在以下幾個(gè)方面:

(1)網(wǎng)絡(luò)大數(shù)據(jù)系統(tǒng)通常不要求嚴(yán)格的數(shù)據(jù)庫(kù)事務(wù)

(2)網(wǎng)絡(luò)大數(shù)據(jù)系統(tǒng)往往并不要求嚴(yán)格的讀寫(xiě)實(shí)時(shí)性

(3)網(wǎng)絡(luò)大數(shù)據(jù)系統(tǒng)通常不包含大量復(fù)雜的SQL查詢(xún)

Nosql與關(guān)系數(shù)據(jù)庫(kù)的比較:

關(guān)系數(shù)據(jù)庫(kù)

?優(yōu)勢(shì):以完善的關(guān)系代數(shù)理淪作為基礎(chǔ),有嚴(yán)格的標(biāo)準(zhǔn),支持事務(wù)

ACID四性,借助索引機(jī)制可以實(shí)現(xiàn)高效的查詢(xún),技術(shù)成熟,有專(zhuān)業(yè)公

司的技術(shù)支持

?劣勢(shì):可擴(kuò)展性較差,無(wú)法較好支持海量數(shù)據(jù)存儲(chǔ),敷據(jù)模型過(guò)于死

板、無(wú)法較好支持大數(shù)據(jù)應(yīng)用,事務(wù)機(jī)制影響了系統(tǒng)的整體性能等

NoSQL數(shù)據(jù)庫(kù)

?優(yōu)勢(shì):可以支持超大規(guī)模數(shù)據(jù)存儲(chǔ),靈活的數(shù)據(jù)模型可以很好地支持

大數(shù)據(jù)應(yīng)用,具有強(qiáng)大的橫向擴(kuò)展能力等

?劣勢(shì):塊乏數(shù)學(xué)理論基礎(chǔ),復(fù)雜查詢(xún)性能不高,大都不能實(shí)現(xiàn)事務(wù)強(qiáng)

一致性,很難實(shí)現(xiàn)數(shù)據(jù)完整性,技術(shù)尚不成熟,缺乏專(zhuān)業(yè)團(tuán)隊(duì)的技術(shù)

支持,維護(hù)較困難等

NoSQL的四大類(lèi)型:鍵值數(shù)據(jù)庫(kù)、

相關(guān)產(chǎn)品RedisxRiakxSimpleDB.Memcached>Scalaris等等

鍵/值對(duì)

數(shù)據(jù)模型鍵是一個(gè)字符串對(duì)象

值可以是任意類(lèi)型的數(shù)據(jù),比如整型、字符型、數(shù)組、列表、集合等

涉及頻繁讀寫(xiě)、擁有簡(jiǎn)單數(shù)據(jù)模型的應(yīng)用

典型應(yīng)用

內(nèi)容緩存(例如,會(huì)話(huà)、配置文件、參數(shù)、購(gòu)物車(chē)等)

優(yōu)點(diǎn)擴(kuò)展性好,靈活性好,大量寫(xiě)操作時(shí)性能高

缺點(diǎn)難以存儲(chǔ)結(jié)構(gòu)化信息,條件查詢(xún)效率較低

不足通過(guò)鍵而是通過(guò)值來(lái)查:鍵值數(shù)據(jù)庫(kù)根本沒(méi)有通過(guò)值查詢(xún)的途徑

需要存儲(chǔ)數(shù)據(jù)之間的關(guān)系:在鍵值數(shù)據(jù)庫(kù)中,不能通過(guò)兩個(gè)或兩個(gè)以上

不適用場(chǎng)景的鍵來(lái)關(guān)聯(lián)數(shù)據(jù)

需要事務(wù)的支持:在一些鍵值數(shù)據(jù)庫(kù)中,產(chǎn)生故障時(shí),不可以回滾

百度(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Redis

使用者和Memcached)、StackOverFlow(Redis)、Instagram(Redis)、

Youtube(Memcached)、Wikipedia(Memcached)

列族數(shù)據(jù)庫(kù)、

相關(guān)產(chǎn)品BigTable、HBase、Cassandra、HadoopDB、GreenPhmi等等

數(shù)據(jù)模型列存儲(chǔ)

數(shù)據(jù)在地理上分布于多個(gè)數(shù)據(jù)中心的應(yīng)用程序

可以容忍副本中存在短期不一致情況的應(yīng)用程序

典型應(yīng)用

擁有動(dòng)態(tài)字段的應(yīng)用程序

擁有潛在大量數(shù)據(jù)的應(yīng)用程序(TB級(jí)以上)

優(yōu)點(diǎn)查找速度快,可擴(kuò)展性強(qiáng),容易進(jìn)行擴(kuò)展,旦雜性低

缺點(diǎn)功能較少,大都不支持強(qiáng)事務(wù)一致性

不適用場(chǎng)景需要ACID事務(wù)支持的場(chǎng)景

eBay(Cassandra)、Instagram(Cassandra)、NASA

使用者(Cassandra)、Twitter(CassandraandHBase)、Facebook

、Yahool(HRa<je)

文檔數(shù)據(jù)庫(kù)、

相關(guān)產(chǎn)品MongoDB,CouchDB,RavenDB%TerrastorexThniDB等等

鍵/值

數(shù)據(jù)模型值(value)是版本化的(有結(jié)構(gòu))文檔

存儲(chǔ)、索引并管理面向文檔的數(shù)據(jù)或者類(lèi)似的半結(jié)構(gòu)化數(shù)據(jù)

典型應(yīng)用例如,用于后臺(tái)具有大量讀寫(xiě)操作的網(wǎng)站、使用JSON數(shù)據(jù)結(jié)構(gòu)

的應(yīng)用、使用嵌套結(jié)構(gòu)等非規(guī)范化數(shù)據(jù)的應(yīng)用程序

數(shù)據(jù)結(jié)構(gòu)靈活.豆雜性低,性能好(高并發(fā))

優(yōu)點(diǎn)提供嵌入式文檔功能,將經(jīng)常查詢(xún)的數(shù)據(jù)存儲(chǔ)在同一個(gè)文檔中

既可以根據(jù)鍵來(lái)構(gòu)建索引,也可以根據(jù)內(nèi)容構(gòu)建索引

缺點(diǎn)缺乏統(tǒng)一的查詢(xún)語(yǔ)法

不適用場(chǎng)景在不同文檔上添加事務(wù)的場(chǎng)景、需要支持文檔間的事務(wù)的場(chǎng)景

百度云數(shù)據(jù)庫(kù)()、、

使用者M(jìn)ongoDBSAP(MongoDB)Foursquare

(MongoDB)、NBCNews?RavenDB)

圖形數(shù)據(jù)庫(kù)

相關(guān)產(chǎn)品Neo4J、OnentDB>InfoGrid>InfiniteGraphsTrinity等等

數(shù)據(jù)模型圖結(jié)構(gòu)

曲羽應(yīng)用專(zhuān)門(mén)用于處理具有高度相互關(guān)聯(lián)關(guān)系的數(shù)據(jù),比較適合于社交網(wǎng)

央里回用絡(luò)分析、路徑規(guī)劃、依賴(lài)分析等問(wèn)題

優(yōu)點(diǎn)可用于構(gòu)建復(fù)雜的關(guān)系圖譜,并支持復(fù)雜的圖算法

缺點(diǎn)復(fù)雜性高,只能支持一定的數(shù)據(jù)規(guī)模

使用者Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)

NoSQL的理論基礎(chǔ)(CAP與ACID、BASE)

C(Consistency):一致性,是指任何一個(gè)讀操作總是能夠讀到之前

完成的寫(xiě)操作的結(jié)果,也就是在分布式環(huán)境中,多點(diǎn)的數(shù)據(jù)是一致的

,或者說(shuō),所有節(jié)點(diǎn)在同一時(shí)間具有相同的數(shù)據(jù)

A:(Availability):可用性,是指快速獲取數(shù)據(jù),可以在確定的時(shí)

間內(nèi)返回操作結(jié)果,保證每個(gè)請(qǐng)求不管成功或者失敗都有響應(yīng):

P(ToleranceofNetworkPartition):分區(qū)容忍性,是指當(dāng)出現(xiàn)

網(wǎng)絡(luò)分區(qū)的情況時(shí)(即系統(tǒng)中的一部分節(jié)點(diǎn)無(wú)法和其他節(jié)點(diǎn)進(jìn)行通信

),分離的系統(tǒng)也能夠正常運(yùn)行,也就是說(shuō),系統(tǒng)中任意信息的丟失

CAP:或去敗不會(huì)匯響系統(tǒng)的繼饌運(yùn)作。

一個(gè)分布式系統(tǒng)不可能同時(shí)滿(mǎn)足一致性、可用性和分區(qū)容忍性這三個(gè)需求。

當(dāng)處理CAP的問(wèn)題時(shí),可以有幾個(gè)明顯的選擇:

?CA:也就是強(qiáng)調(diào)一致性(C)和可用性(A),放棄分區(qū)容忍性(P)

,最簡(jiǎn)單的做法是把所有與事務(wù)相關(guān)的內(nèi)室都放到同一臺(tái)機(jī)器上。很

顯然,這種做法會(huì)嚴(yán)重影響系統(tǒng)的可擴(kuò)展性。傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)(

MySQL、SOLServer和PostgreSQL),都采用了這種設(shè)計(jì)原則,因此

,擴(kuò)展性都比較差

?CP:也就是強(qiáng)調(diào)一致性(C)和分區(qū)容忍性(P),放棄可用性(A)

,當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時(shí),受影響的服務(wù)需要等待數(shù)據(jù)一致,因此

在等待期間就無(wú)法對(duì)外提供服務(wù)

?AP:也就是強(qiáng)調(diào)可用性(A)和分區(qū)容忍性(P),放棄一致性(C)

,允許系統(tǒng)返回不一致的數(shù)據(jù):》:北#勺碌大停

ACID(關(guān)系數(shù)據(jù)庫(kù)的事務(wù)具有的四個(gè)特性)

A(Atomicity):原子性,是指事務(wù)必須是原子工作單元,對(duì)于其數(shù)

據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行

C(Consistency):一致性,是指事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)

都保持一致?tīng)顟B(tài)

I(Isolation):隔離性,是指由并發(fā)事務(wù)所做的修改必須與任何其

它并發(fā)事務(wù)所做的修改隔離

D(Durability):持久性,是指事務(wù)完成之后,它對(duì)于系統(tǒng)的影響

是永久性的,該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持

必要才貌中大厚

BASE

BASE的基本含義是基本可用(BasicallyAvailbIe

)、軟狀態(tài)(Soft-state)和最終一^致性(Eventual

consistency):

?基本可用

基本可用,是指一個(gè)分布式系統(tǒng)的一部分發(fā)生問(wèn)題變得不可用

時(shí),其他部分仍然可以正常使用,也就是允許分區(qū)失敗的情形出現(xiàn)

“軟狀態(tài)(soft-state)”是與"硬狀態(tài)(hard-state)”相對(duì)應(yīng)

的一種提法。數(shù)據(jù)庫(kù)保存的數(shù)據(jù)是“理狀態(tài)”時(shí),可以保證數(shù)據(jù)一致性

,即保證數(shù)據(jù)一直是正確的?!败洜顟B(tài)”是指允許系統(tǒng)中的數(shù)據(jù)存在中

間狀態(tài),并認(rèn)為該中間狀態(tài)的存在不會(huì)影響系統(tǒng)的整體可用性,即允許

系統(tǒng)在不同節(jié)點(diǎn)的數(shù)據(jù)副本之間進(jìn)行數(shù)據(jù)同步的過(guò)程存在延時(shí)。

?最終一致性

一致性的類(lèi)型包括強(qiáng)一致性和弱一致性,二者的主要區(qū)別在于高并

發(fā)的數(shù)據(jù)訪(fǎng)問(wèn)操作下,后續(xù)操作是否能夠獲取最新的數(shù)據(jù)。對(duì)于強(qiáng)一致

性而言,當(dāng)執(zhí)行完一次更新操作后,后續(xù)的其他讀操作就可以保證讀到

更新后的最新數(shù)據(jù):反之,如果不能保證后續(xù)訪(fǎng)問(wèn)讀到的都是更新后的

最新數(shù)據(jù),那么就是弱一致性。而最終一致性只不過(guò)是弱一致性的一種

特例,允許后續(xù)的訪(fǎng)問(wèn)操作可以暫時(shí)讀不到更新后的數(shù)據(jù),但是經(jīng)過(guò)一

段時(shí)間之后,必須最終讀到更新后的數(shù)據(jù)。

NoSQL到NewSQL:

NoSQL

>提供良好的擴(kuò)展性和靈活性,很好地彌補(bǔ)了傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的缺

陷,較好的滿(mǎn)足了互聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用需求

》由于采用非關(guān)系數(shù)據(jù)模型,不具備結(jié)構(gòu)化查詢(xún)等特性,查詢(xún)效率

尤其是發(fā)雜查詢(xún)方面不如關(guān)系數(shù)據(jù)庫(kù),并且不支持事務(wù)ACID四性

NewSQL

>最近NewSQL開(kāi)始逐漸升溫

>不僅具有NoSQL對(duì)海量數(shù)據(jù)的存儲(chǔ)和管理能力,還保持了傳統(tǒng)數(shù)據(jù)

庫(kù)支持ACID和SQL等特性

》雖然NewSQL數(shù)據(jù)庫(kù)內(nèi)部結(jié)構(gòu)差異很大,但都有兩個(gè)共同特點(diǎn):都

支持關(guān)系數(shù)據(jù)模型:都是用SQL作為其主要接口

>目前具有代表性的NewSQL數(shù)據(jù)庫(kù)有Spanner、VoltDB等

大數(shù)據(jù)應(yīng)用:

百度大數(shù)據(jù)引擎的構(gòu)成:開(kāi)放云、數(shù)據(jù)工廠(chǎng)、百度大腦

開(kāi)放云:

百度的大規(guī)模分布式計(jì)算和超大規(guī)模存儲(chǔ)云,開(kāi)放云開(kāi)放的是基

礎(chǔ)設(shè)施和硬件能力。過(guò)去的百度云主要面向開(kāi)發(fā)者,大數(shù)據(jù)引擎

的開(kāi)放云則是面向有大數(shù)據(jù)存儲(chǔ)和處理需求的“大開(kāi)發(fā)者”。

數(shù)據(jù)工廠(chǎng):

數(shù)據(jù)工廠(chǎng)提供將海量數(shù)據(jù)組織、管理的軟件能力,與數(shù)據(jù)庫(kù)作用

類(lèi)似,不同的是數(shù)據(jù)工廠(chǎng)是被用作處理TB級(jí)甚至更大的數(shù)據(jù)。百

度數(shù)據(jù)工廠(chǎng)支持超大規(guī)模異構(gòu)數(shù)據(jù)查詢(xún),支持SQL-1ike以及更復(fù)

雜的查詢(xún)語(yǔ)句,支持各種查詢(xún)業(yè)務(wù)場(chǎng)景。

百度大腦:

百度大腦將百度此前在人工智能方面的能力開(kāi)放出來(lái),主要是大

規(guī)模機(jī)器學(xué)習(xí)能力和深度學(xué)習(xí)能力。此前它們被應(yīng)用在語(yǔ)音、圖

像、文本識(shí)別,以及自然語(yǔ)言和語(yǔ)義理解方面,并通過(guò)百度

Inside等平臺(tái)開(kāi)放給了智能硬件。現(xiàn)在這些能力將被用來(lái)對(duì)大數(shù)

據(jù)進(jìn)行亨能化的分析、學(xué)習(xí)、處理、利用,并對(duì)外開(kāi)放。

阿里大數(shù)據(jù)應(yīng)用:去IOE

為什么要去IOE?

?集中式架構(gòu),制約服務(wù)能力

A無(wú)法快速擴(kuò)容(無(wú)法滿(mǎn)足雙11快速擴(kuò)容需求)

》穩(wěn)定性差(一臺(tái)服務(wù)器出現(xiàn)問(wèn)題產(chǎn)生,嚴(yán)重影響服務(wù)

質(zhì)量)

,技術(shù)面臨失控,創(chuàng)新潛力受限

A黑盒技術(shù),只能依靠廠(chǎng)商解決問(wèn)題

A黑盒技術(shù)壓制了工程師的聰明才智

?專(zhuān)用設(shè)備難以規(guī)?;?/p>

》成本高昂

》專(zhuān)用機(jī)架、專(zhuān)用電源

大數(shù)據(jù)在電信行業(yè)的應(yīng)用:

運(yùn)營(yíng)商的數(shù)據(jù)資源優(yōu)勢(shì)

電信運(yùn)營(yíng)商擁有多年的數(shù)據(jù)積累,其數(shù)據(jù)資源的廣度和深度是移動(dòng)互聯(lián)網(wǎng)企

業(yè)難以相提并論的。電信運(yùn)營(yíng)商在人數(shù)據(jù)應(yīng)用_L的優(yōu)勢(shì)主要體現(xiàn)為數(shù)據(jù)資

源的知性、完整性和連續(xù)性:

□豐富性:是指電信運(yùn)營(yíng)商擁有的數(shù)據(jù)涉及的范圍廣,堆度豐富,信息量巨

大。如前所述,這些數(shù)據(jù)涉及到數(shù)億用戶(hù)的各類(lèi)行為信息,數(shù)據(jù)量級(jí)已從

TB(1012GB)發(fā)展至PB乃至ZB,不但涉及到如財(cái)勞收入、業(yè)務(wù)發(fā)展量

等結(jié)構(gòu)化數(shù)據(jù),也會(huì)涉及到圖片、文本、音頻、視頻等非結(jié)構(gòu)化數(shù)據(jù)。

口完整性:是指電信運(yùn)營(yíng)商翔白的數(shù)據(jù)涵蓋全業(yè)務(wù)、全客戶(hù)和全渠道,數(shù)據(jù)

信息會(huì)L3G時(shí)代運(yùn)營(yíng)商的數(shù)據(jù)涉及移切語(yǔ)言、固定電詁、固網(wǎng)接入和尢

線(xiàn)上網(wǎng)等所有業(yè)若,也會(huì)涉及公眾客戶(hù)、政企客戶(hù)和家庭客戶(hù),同時(shí)也會(huì)

收集至IJ實(shí)體渠道、電子渠道、直銷(xiāo)渠道等所有類(lèi)型渠道的接觸信息。

□朝使:是指電信運(yùn)營(yíng)商擁有的數(shù)據(jù)記錄周期長(zhǎng)、留存時(shí)間長(zhǎng),數(shù)據(jù)延續(xù)

性好,覆蓋客戶(hù)的從入網(wǎng)到離網(wǎng)前的全生命周期的海量信息。

國(guó)內(nèi)外電信運(yùn)營(yíng)商已經(jīng)在大數(shù)據(jù)應(yīng)用方面做出了積極的

探索,主要從以下五個(gè)方面運(yùn)用大數(shù)據(jù):

①網(wǎng)絡(luò)管理和優(yōu)化,包括基礎(chǔ)設(shè)施建設(shè)優(yōu)化、網(wǎng)絡(luò)運(yùn)營(yíng)管

理和優(yōu)化;

②精準(zhǔn)營(yíng)銷(xiāo),包括客戶(hù)畫(huà)像、關(guān)系鏈研究、個(gè)性化推薦和

精準(zhǔn)廣告投放;

③客戶(hù)關(guān)系管理,包括客服中心優(yōu)化以及客戶(hù)生命周期管

理;

④企業(yè)運(yùn)營(yíng)管理,包括業(yè)務(wù)運(yùn)營(yíng)監(jiān)控和經(jīng)營(yíng)分析;

⑤數(shù)據(jù)變現(xiàn),包括提供數(shù)據(jù)訪(fǎng)問(wèn)API、直接發(fā)布數(shù)據(jù)或統(tǒng)計(jì)

結(jié)果。

24.分布式并行編程框架MapReduce

“摩爾定律”,CPU性能大約每隔18個(gè)月翻一番

摩爾定律從2005年開(kāi)始逐漸失效,然而需要處理的

數(shù)據(jù)量快速增力口,人們開(kāi)始借助于分布式并行計(jì)算

來(lái)提高程序性能

程序運(yùn)行在大規(guī)模計(jì)算機(jī)集群上,可以分布式并行

執(zhí)行大規(guī)模數(shù)據(jù)處理任務(wù),從而獲得更強(qiáng)的計(jì)算能

谷歌公司提出了新型分布式并行編程框架MapReduce

25

傳統(tǒng)并行計(jì)算框架MapReduce

集群架構(gòu)/容錯(cuò)性共享式(共享內(nèi)存/共享存儲(chǔ)),容非共享式,容錯(cuò)性好

錯(cuò)性差

硬件/價(jià)格/擴(kuò)展性專(zhuān)用服務(wù)器、高速網(wǎng)、SAN,價(jià)格普通PC機(jī),便宜,擴(kuò)展性

貴,擴(kuò)展性差好

編程/學(xué)習(xí)難度what-how,難胃hat,簡(jiǎn)單

適用場(chǎng)景實(shí)時(shí)、細(xì)粒度計(jì)算、計(jì)算密集型批處理、非實(shí)時(shí)、數(shù)據(jù)密

集型

MapReduce將復(fù)雜的、運(yùn)行于大規(guī)模集群上的并行計(jì)算過(guò)

程高度地抽象到了兩個(gè)函數(shù):Map和Reduce

編程容易,不需要掌握分布式并行編程細(xì)節(jié),也可以很容

易把自己的程序運(yùn)行在分布式系統(tǒng)上,完成海量數(shù)據(jù)的計(jì)

MapReduce采用“分而治之”策略,一個(gè)存儲(chǔ)在分布式文

件系統(tǒng)中的大規(guī)模數(shù)據(jù)集會(huì)被切分成許多獨(dú)立的分片(

split),然后進(jìn)行分布式并行處理

MapReduce框架采用了Master/Slave架構(gòu),包括一

Master和若干個(gè)SIave

MapReduce的體系結(jié)構(gòu):ClientsJobTracker>TaskTracker>Task

1)CIient

—用戶(hù)編寫(xiě)的MapReduce程序通過(guò)Client提交到

JobTracker

-用戶(hù)可通過(guò)Client提供的一些接口查看作業(yè)運(yùn)行狀態(tài)

2)JobTracker

-JobTracker負(fù)責(zé)資源監(jiān)控和作業(yè)調(diào)度

①JobTracker監(jiān)控所有TaskTracker的健康狀況,一旦

發(fā)現(xiàn)失敗,就將相應(yīng)的任務(wù)轉(zhuǎn)移到其他節(jié)點(diǎn)

②JobTracker會(huì)跟蹤任務(wù)的執(zhí)行進(jìn)度、資源使用量等信

息,并將這些信息告訴任務(wù)調(diào)度器(TaskScheduIer

),而調(diào)度器會(huì)在資源出現(xiàn)空閑時(shí),選擇合適的任務(wù)

去使用這些資源

?!ALAi.?

3)TaskTracker

-TaskTracker會(huì)周期性地通過(guò)“心跳”將本節(jié)點(diǎn)上資源

的使用情況和任務(wù)的運(yùn)行進(jìn)度匯報(bào)給JobTracker,同時(shí)

接收J(rèn)obTracker發(fā)送過(guò)來(lái)的命令并執(zhí)行相應(yīng)的操作(如

啟動(dòng)新任務(wù)、殺死任務(wù)等)

-TaskTracker使用“slot”等量劃分本節(jié)點(diǎn)上的資源量

(CPU、內(nèi)存等)o一個(gè)Task獲取到一個(gè)slot后才有機(jī)

會(huì)運(yùn)行,而Hadoop調(diào)度器的作用就是將各個(gè)TaskTracker

上的空閑slot分配給Task使用。slot分為Mapslot和

Reduceslot兩種,分別供MapTask和ReduceTask使

4)Task

-Task分為MapTask和ReduceTask兩種,圖里嗖”

TaskTracker啟動(dòng)

MapReduce的工作流程:

?不同的Map任務(wù)之間不會(huì)進(jìn)行通信

?不同的Reduce任務(wù)之間也不會(huì)發(fā)生任何信息交換

?用戶(hù)不能顯式地從一臺(tái)機(jī)器向另一臺(tái)機(jī)器發(fā)送消息

?所有的數(shù)據(jù)交換都是通過(guò)MapReduce框架自身去實(shí)現(xiàn)的

Split(分片):

HDFS以固定大小的block為基本單位存儲(chǔ)數(shù)據(jù),而對(duì)于MapReduce而%,其處

理單位是split。split是一個(gè)邏輯榛念,它只包含一些元數(shù)據(jù)信息,比如數(shù)據(jù)

起始位置、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)所在節(jié)點(diǎn)等。它的劃分方法完全由吃自己去冷。

Map端的Shuffle過(guò)程詳解:

2.Map端的Shuffle過(guò)程

①輸入數(shù)據(jù)和執(zhí)行MaM£務(wù)?每個(gè)Map任務(wù)分配一個(gè)緩存(默認(rèn)100MB)

?溢寫(xiě)比例默認(rèn)為0.8

Map任務(wù)?分區(qū)默認(rèn)采用哈希函數(shù)

?排序是默認(rèn)的操作

?排序后可以合并(Combine)

?合并不能改變最終結(jié)果

?在Map任務(wù)全部結(jié)束之前進(jìn)行歸并

?歸并得到一個(gè)大的文件,放在木地磁盤(pán)

?文件歸并時(shí),如果溢寫(xiě)文件數(shù)量大于預(yù)定

俏(默認(rèn)昂3)則可以再次啟動(dòng)Combiner,

減少寫(xiě)入磁盤(pán)的數(shù)據(jù)量

?JobTracker會(huì)一總監(jiān)測(cè)Map任務(wù)的執(zhí)行,并

通知Reduce任務(wù)來(lái)領(lǐng)取數(shù)據(jù)

合并(Combine)和歸并(Merge)的區(qū)別:

兩個(gè)鍵值對(duì)和如果合并,會(huì)得到<“a”,2>,如果歸并,會(huì)得到

Reduce端的shuffle詳解:

?Reduce任務(wù)通過(guò)RPC向JobTracker詢(xún)問(wèn)Map任務(wù)是否已經(jīng)完成,若完成,則領(lǐng)取數(shù)據(jù)

?Reduce領(lǐng)取數(shù)據(jù)先放入緩存,來(lái)自不同Map機(jī)器,先歸并,再合并,寫(xiě)入磁盤(pán)

?多個(gè)溢寫(xiě)文件歸并成一個(gè)或多個(gè)大文件,文件中的鍵值對(duì)是排序的

?當(dāng)數(shù)據(jù)很少時(shí),不需要溢寫(xiě)到磁盤(pán),直接在緩存中歸并,然后輸出給Reduce

MapReduce小結(jié):

介紹了MapReduce編程模型的相關(guān)知識(shí)。MapReduce將復(fù)雜

的、運(yùn)行于大規(guī)模集群上的并行計(jì)算過(guò)程高度地抽象到了

兩個(gè)屬數(shù):Map和Reduce.并極大地方便了分布式編程工

作,編程人員在不會(huì)分布式并行編程的情況下,也可以很

容易將自己的程序運(yùn)行在分布式系統(tǒng)上,完成海量數(shù)據(jù)集

的并算。

MapReduce執(zhí)行的全過(guò)程包括以下幾個(gè)主要階段:從分布

式文件系統(tǒng)讀入數(shù)據(jù)、執(zhí)行Map任務(wù)輸出中間結(jié)果、通過(guò)

ShuffIe階段把中間結(jié)果分區(qū)排序整理后傳遞給Reduce任

務(wù)、執(zhí)行Reduce任務(wù)得到最終結(jié)果并寫(xiě)入分布式文件系統(tǒng)

26.Spark特點(diǎn):

運(yùn)行速度快:采用DAG執(zhí)行引擎和內(nèi)|存計(jì)算

容易使用:支持包括Scala、Java、Python和R語(yǔ)

言在內(nèi)的多種語(yǔ)言進(jìn)行編程

與HDFS等存儲(chǔ)層兼容:可以獨(dú)立運(yùn)行,也可以運(yùn)

行在YARN等集群管理系統(tǒng)之上,特別地,它可以

運(yùn)行在任何的Hadoop數(shù)據(jù)源上,例如,HDFS和

HBase

通用性:類(lèi)似Hadoop,Spark提供了完整而強(qiáng)大

的技術(shù)棧,包括SQL查詢(xún)、流式計(jì)算、機(jī)器學(xué)習(xí)

和圖算法等組件

Hadoop的局限性:

表達(dá)能力有限

-計(jì)算都要轉(zhuǎn)換成Map和Reduce操作,難以描述復(fù)雜的數(shù)

據(jù)處理過(guò)程

磁盤(pán)10開(kāi)銷(xiāo)大

-每次執(zhí)行都需從磁盤(pán)讀數(shù)據(jù),計(jì)算過(guò)程中,需要將中

間結(jié)果寫(xiě)入磁盤(pán)

延遲高

-一次計(jì)算分解成一些列按順序執(zhí)行的MR任務(wù),任務(wù)間

銜接涉及10開(kāi)銷(xiāo),產(chǎn)生較高延遲,且一個(gè)任務(wù)完成前

,其他任務(wù)無(wú)法開(kāi)始

Spark與Hadoop相比

-其計(jì)算模式也屬于MR,但不局限與此,還提供多種RDD

(ResiIientDistributedDataset)操作,編程模型

更加靈活

-Spark提供內(nèi)存計(jì)算,中間結(jié)果放在內(nèi)存中,10開(kāi)銷(xiāo),

延遲低,擁有更高地迭代運(yùn)算效率

-基于DAG任務(wù)調(diào)度執(zhí)行機(jī)制,優(yōu)于MR迭代執(zhí)行機(jī)制

-使用Hadoop需要編寫(xiě)不少相對(duì)底層的代碼,而Spark提

供高層次、簡(jiǎn)潔的API

-Spark主要替代Hadoop中的MR,而不能完全替代Hadoop

,它很好地融入了Hadoop生態(tài)圈,可借助于YARN實(shí)現(xiàn)

資源調(diào)度管理,借助HDFS實(shí)現(xiàn)分布式存儲(chǔ)

-Hadoop可使用廉價(jià)、異構(gòu)的機(jī)器實(shí)現(xiàn)分布或考償交計(jì)

算,而Spark對(duì)硬件(內(nèi)存、CPU)要求稍高(③進(jìn)3攵生冬交

Spark生態(tài)系統(tǒng):

在實(shí)際應(yīng)用中,大數(shù)據(jù)處理主要包括以下三個(gè)類(lèi)型:

①?gòu)?fù)雜的批量數(shù)據(jù)處理:通常時(shí)間跨度在數(shù)十分鐘到數(shù)小時(shí)之間

②基于歷史數(shù)據(jù)的交互式查詢(xún):通常時(shí)間跨度在數(shù)十秒到數(shù)分鐘之間

③基于實(shí)時(shí)數(shù)據(jù)流的數(shù)據(jù)處理:通常時(shí)間跨度|在數(shù)百毫秒到數(shù)秒之間

當(dāng)同時(shí)存在以上三種場(chǎng)景時(shí),就需要同時(shí)部署三種不同的大數(shù)據(jù)處理

平臺(tái),這樣做難免會(huì)帶來(lái)一些問(wèn)題:

①不同場(chǎng)景之間揄入輸出數(shù)據(jù)不能做到無(wú)縫共享,通常需要進(jìn)行數(shù)

據(jù)格式的轉(zhuǎn)換

②不同的軟件需要不同的開(kāi)發(fā)和維護(hù)團(tuán)隊(duì),帶來(lái)了較高的使用成本

③比較難以對(duì)同一個(gè)集群中的各個(gè)系統(tǒng)進(jìn)行統(tǒng)一的資源協(xié)調(diào)和分配

Spark的設(shè)計(jì)遵循“一個(gè)軟件棧滿(mǎn)足不同應(yīng)用場(chǎng)景”的理

念,逐漸形成了一套完整的生態(tài)系統(tǒng),BDAS(Berkeley

DataAnaIyticsStack)

以Spark為核心的BDAS既能夠提供內(nèi)存計(jì)算框架,也可以

支持SQL查詢(xún)、實(shí)時(shí)流式計(jì)算、圖計(jì)算和機(jī)器學(xué)習(xí)等

另外Spark可以部署在Hadoop2.0的資源管理器YARN之上

融入Hadoop生態(tài)系統(tǒng)—m

RDD:

?RDD是Spark中對(duì)數(shù)據(jù)和計(jì)算的抽象,是Spark中最核心的

概念

?一個(gè)RDD就是一個(gè)分布式對(duì)象集合,本質(zhì)上是一個(gè)只讀的

分區(qū)記錄集合,每個(gè)RDD可分成多個(gè)分區(qū),每個(gè)分區(qū)就是

一個(gè)數(shù)據(jù)集片段,并且一個(gè)RDD的不同分區(qū)可以被保存到

集群中不同的節(jié)點(diǎn)上,從而可以在集群中的不同節(jié)點(diǎn)上進(jìn)

行并行計(jì)算

?RDD提供了一種高度受限的共享內(nèi)存模型,即RDD是只讀的

記錄分區(qū)的集合,不能直接修改,只能基于穩(wěn)定的物理存

儲(chǔ)中的數(shù)據(jù)集創(chuàng)建RDD,或者通過(guò)其他已有的RDD上執(zhí)行確

定的轉(zhuǎn)換操作(如map、join和groupby)而創(chuàng)建得到新

的RDD

RDD提供了一組豐富的操作以支持常見(jiàn)的數(shù)據(jù)運(yùn)算,分為“

動(dòng)作”(Action)和“轉(zhuǎn)換”(Transformation)兩種類(lèi)型

Transf

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論