




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度績(jī)效考核及薪資增長(zhǎng)證明(7篇)
- 讀小王子的心靈觸動(dòng)讀后感話(huà)題展開(kāi)(12篇)
- 銀符考試試題及答案
- 六一全套活動(dòng)方案
- 六一鹵味店活動(dòng)方案
- 六一商場(chǎng)游園活動(dòng)方案
- 六一官方活動(dòng)方案
- 六一操場(chǎng)活動(dòng)策劃方案
- 醫(yī)學(xué)導(dǎo)論考試試題及答案
- 六一法治活動(dòng)方案
- 習(xí)近平總書(shū)記關(guān)于應(yīng)急管理的重要論述
- 2025年陜西省新高考語(yǔ)文試卷(含答案解析)
- 期末試卷(試題)(含答案)-2024-2025學(xué)年一年級(jí)下冊(cè)數(shù)學(xué)北師大版
- 《編織美好》教學(xué)課件-2024-2025學(xué)年魯教版(五四學(xué)制)(2024)初中美術(shù)六年級(jí)上冊(cè)
- 2025年江西省高考物理真題
- 2025年《國(guó)際金融》課程標(biāo)準(zhǔn)
- 國(guó)際道路運(yùn)輸管理制度
- 客戶(hù)拜訪(fǎng)跟進(jìn)管理制度
- 湘教版七年級(jí)數(shù)學(xué)下冊(cè)期末考試卷(附答案和解析)
- 2025湖南長(zhǎng)沙市軌道交通運(yùn)營(yíng)限公司招聘372人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025智聯(lián)銀行筆試題庫(kù)及答案
評(píng)論
0/150
提交評(píng)論