




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
云計算導(dǎo)論主講老師:云計算導(dǎo)論主講老師:1云計算中的數(shù)據(jù)處理技術(shù)第三章云計算中的數(shù)據(jù)第三章2云計算中的數(shù)據(jù)處理技術(shù)
數(shù)據(jù)處理一直是計算機(jī)科學(xué)研究的重要課題。作為一個復(fù)雜的系統(tǒng),云計算系統(tǒng)的發(fā)展過程就是其數(shù)據(jù)處理技術(shù)不斷完善和進(jìn)步的過程。本章導(dǎo)讀學(xué)習(xí)目標(biāo)了解大數(shù)據(jù)的概念及其與云計算的關(guān)系。理解分布式系統(tǒng)的概念。理解分布式數(shù)據(jù)存儲的概念及為其提供技術(shù)支持的分布式文件系統(tǒng)。理解并行編程技術(shù)。了解數(shù)據(jù)管理技術(shù)。認(rèn)識ApacheHadoop項(xiàng)目。云計算中的數(shù)據(jù)處理技術(shù)數(shù)據(jù)處理一直是計算機(jī)科學(xué)3云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)目數(shù)據(jù)管理技術(shù)云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲并行編程技術(shù)實(shí)例-Apache4云計算與大數(shù)據(jù)
大數(shù)據(jù)(bigdata)也稱海量數(shù)據(jù)或巨量數(shù)據(jù),是指數(shù)據(jù)量大到無法利用傳統(tǒng)的數(shù)據(jù)處理技術(shù)在合理的時間內(nèi)獲取、存儲、管理和分析的數(shù)據(jù)集合?!按髷?shù)據(jù)”一詞除用于描述信息時代產(chǎn)生的海量數(shù)據(jù)外,也可用于指代與之相關(guān)的技術(shù)、創(chuàng)新與應(yīng)用3.1.1什么是大數(shù)據(jù)海量的數(shù)據(jù)規(guī)模(volume)快速的數(shù)據(jù)流轉(zhuǎn)(velocity)多樣的數(shù)據(jù)類型(variety)較低的價值密度(value)4V特征云計算與大數(shù)據(jù)大數(shù)據(jù)(bigdata)也稱海5大數(shù)據(jù)技術(shù)是指用非傳統(tǒng)的方式對大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處理,以挖掘出數(shù)據(jù)中蘊(yùn)含的價值的技術(shù)。根據(jù)數(shù)據(jù)的處理流程,可以將大數(shù)據(jù)的關(guān)鍵技術(shù)分為:數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)存儲與管理、數(shù)據(jù)分析與挖掘、數(shù)據(jù)可視化等。云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)采集
數(shù)據(jù)采集就是將網(wǎng)絡(luò)上各種來源的數(shù)據(jù)寫入數(shù)據(jù)倉庫,并整合在一起,以便對數(shù)據(jù)進(jìn)行綜合分析。數(shù)據(jù)采集包括網(wǎng)絡(luò)日志采集、網(wǎng)絡(luò)文件采集(提取網(wǎng)頁中的圖片、文本等)、關(guān)系型數(shù)據(jù)庫的接入等,常用的工具有Flume、Kafka、Sqoop等。大數(shù)據(jù)技術(shù)是指用非傳統(tǒng)的方式對大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處6云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)存儲與管理數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理是指將雜亂無章的數(shù)據(jù)轉(zhuǎn)化為相對單一且便于處理的結(jié)構(gòu)(數(shù)據(jù)抽?。?,或者去除沒有價值甚至可能對分析造成干擾的數(shù)據(jù)(數(shù)據(jù)清洗),從而為后期的數(shù)據(jù)分析奠定基礎(chǔ)。
數(shù)據(jù)存儲是指用存儲器把采集到的數(shù)據(jù)存儲起來,并建立相應(yīng)的文件系統(tǒng)和數(shù)據(jù)庫,以便對數(shù)據(jù)進(jìn)行管理和調(diào)用。云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)存儲與管理數(shù)據(jù)預(yù)處7云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)分析與挖掘
數(shù)據(jù)分析與挖掘是指通過各種算法從大量的數(shù)據(jù)中找出潛在的有用信息,并研究數(shù)據(jù)的內(nèi)在規(guī)律和相互之間的關(guān)系。常用的數(shù)據(jù)分析與挖掘技術(shù)包括批處理、流處理、實(shí)時處理和交互處理等技術(shù)名稱技術(shù)實(shí)例特
點(diǎn)應(yīng)用案例批處理Hadoop分布式高速計算和存儲社交網(wǎng)絡(luò)、推薦系統(tǒng)流處理Storm低時延,高響應(yīng)圖像處理、社交媒體實(shí)時處理Spark低延遲計算視頻分析、實(shí)時廣告交互處理Dremel快速處理PB級海量數(shù)據(jù)電商平臺云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)分析與挖掘8云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)可視化
數(shù)據(jù)可視化是指利用可視化手段對數(shù)據(jù)進(jìn)行分析,并將分析結(jié)果用圖表或文字等形式展現(xiàn)出來,從而使讀者對數(shù)據(jù)的分布、發(fā)展趨勢、相關(guān)性和統(tǒng)計信息等一目了然云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)可視化9云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系
作為引領(lǐng)未來技術(shù)變革的兩項(xiàng)關(guān)鍵技術(shù),云計算與大數(shù)據(jù)既緊密相連,又相互區(qū)別。從整體上看,兩者是相輔相成的。一方面,云計算為大數(shù)據(jù)提供了技術(shù)支持和實(shí)現(xiàn)途徑;另一方面,大數(shù)據(jù)讓云計算更有價值,并推動著云計算相關(guān)技術(shù)的不斷更新和完善。服務(wù)領(lǐng)域相同。云計算與大數(shù)據(jù)的聯(lián)系關(guān)鍵技術(shù)相同。云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系10云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系云計算與大數(shù)據(jù)的區(qū)別處理對象不同。目的不同。產(chǎn)生的背景不同。35推動力不同。421帶來的價值不同。云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系云計算與大數(shù)據(jù)11云計算與大數(shù)據(jù)并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)目數(shù)據(jù)管理技術(shù)分布式數(shù)據(jù)存儲云計算與大數(shù)據(jù)并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)123.2分布式數(shù)據(jù)存儲分布式數(shù)據(jù)存儲
云計算最主要的特征是擁有大規(guī)模的數(shù)據(jù)集,基于該數(shù)據(jù)集向用戶提供服務(wù)。為了保證高可用性、高可靠性和經(jīng)濟(jì)性,云計算采用了分布式數(shù)據(jù)存儲方式。存儲3.2分布式數(shù)據(jù)存儲分布式數(shù)據(jù)存儲云計算最主要133.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲
分布式系統(tǒng)(distributedsystem)是指一組通過網(wǎng)絡(luò)連接的計算機(jī)及其軟件系統(tǒng),這些計算機(jī)的耦合度較低,相互之間協(xié)調(diào)工作以實(shí)現(xiàn)整體負(fù)載均衡。3.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲分布式系統(tǒng)143.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲升級性能
的方法
縱向擴(kuò)展是指升級當(dāng)前集中式系統(tǒng)中的主機(jī),其優(yōu)勢是數(shù)據(jù)備份和恢復(fù)簡單、部署方便、安全性高、穩(wěn)定性好、維護(hù)成本低;
橫向擴(kuò)展是指增加主機(jī)數(shù)量,將各主機(jī)通過網(wǎng)絡(luò)連接組成分布式系統(tǒng),共同存儲數(shù)據(jù)和處理任務(wù)??v向擴(kuò)展橫向擴(kuò)展3.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲升級性能縱15分布式數(shù)據(jù)存儲
分布式數(shù)據(jù)存儲即利用分布式系統(tǒng)來存儲數(shù)據(jù),而用于存儲數(shù)據(jù)的分布式系統(tǒng)也稱為分布式存儲系統(tǒng)(distributedstoragesystem)。分布式存儲系統(tǒng)@SMS分布式數(shù)據(jù)存儲分布式數(shù)據(jù)存儲即利用分布式系統(tǒng)來16分布式存儲系統(tǒng)分布式數(shù)據(jù)存儲低成本高
性
能可
擴(kuò)
展易
用
性自
治
性分布式存儲系統(tǒng)分布式數(shù)據(jù)存儲低成本高性能可17分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲
為分布式數(shù)據(jù)存儲提供技術(shù)支持的是分布式文件系統(tǒng)(distributedfilesystem)。分布式文件系統(tǒng)又稱集群文件系統(tǒng),它是由分布式存儲系統(tǒng)中多個節(jié)點(diǎn)通過網(wǎng)絡(luò)共同組建和共享的文件系統(tǒng)。分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲為分布式數(shù)據(jù)存儲18分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS是谷歌公司設(shè)計并開發(fā)的大型分布式文件系統(tǒng),它是通過廉價設(shè)備進(jìn)行大規(guī)模數(shù)據(jù)存儲的解決方案,與MapReduce并行編程模型及Bigtable分布式數(shù)據(jù)庫共同構(gòu)成了谷歌公司云計算的技術(shù)體系,并合稱為拉動谷歌公司海量數(shù)據(jù)處理和搜索引擎等服務(wù)的“三駕馬車”。GFS采用了客戶機(jī)/服務(wù)器的設(shè)計模式。一個GFS由一個主控服務(wù)器(masterserver)和若干數(shù)據(jù)塊服務(wù)器(chunkserver)組成,并供許多GFS客戶端(GFSclient)訪問,如圖3-2所示。系統(tǒng)中的元數(shù)據(jù)以數(shù)據(jù)分片的形式存儲在數(shù)據(jù)塊服務(wù)器中,數(shù)據(jù)塊服務(wù)器越多,能存儲的數(shù)據(jù)總量越大,因此數(shù)據(jù)塊服務(wù)器的數(shù)量往往決定了整個GFS的規(guī)模。主控服務(wù)器是整個GFS的核心,它存儲著系統(tǒng)中所有元數(shù)據(jù)的信息(如創(chuàng)建時間、索引等)??蛻舳嗽L問系統(tǒng)文件時,必須向主控服務(wù)器發(fā)送請求,主控服務(wù)器返回給客戶端要與之交互的數(shù)據(jù)塊服務(wù)器信息,然后客戶端直接訪問這些數(shù)據(jù)塊服務(wù)器完成數(shù)據(jù)的存取。分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS是谷歌公19分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS的系統(tǒng)架構(gòu)分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS20云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop項(xiàng)目數(shù)據(jù)管理技術(shù)并行編程技術(shù)云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop213.3并行編程技術(shù)并行編程技術(shù)
并行編程(parallelprogramming)也稱并行程序設(shè)計、平行編程,是針對并行計算的程序設(shè)計方法,在云計算領(lǐng)域,并行編程則是指對分布式并行計算進(jìn)行程序設(shè)計。3.3并行編程技術(shù)并行編程技術(shù)并行編程(pa223.3.1分布式并行計算并行編程技術(shù)分布式計算
分布式計算(distributedcomputing)是一種計算方法,是與集中式計算相對的概念。它可以將大任務(wù)拆分成許多小任務(wù),然后把這些任務(wù)派發(fā)給多臺計算機(jī)進(jìn)行計算,最后將所有的計算結(jié)果進(jìn)行匯總,以得到最終結(jié)果。1.分布式計算2.并行計算3.3.1分布式并行計算并行編程技術(shù)分布式計算233.3.1分布式并行計算并行編程技術(shù)并行計算
并行計算(parallelcomputing)又稱平行計算,是相對于串行計算來說的。它是一種允許讓多條指令以平行的方式同時進(jìn)行計算的模式,存在時間并行和空間并行兩種方式。1.分布式計算2.并行計算3.3.1分布式并行計算并行編程技術(shù)并行計算243.3.2MapReduce并行編程模型并行編程技術(shù)MapReduce并行編程模型(以下簡稱模型)是一個針對大規(guī)模集群中的分布式文件進(jìn)行并行處理的計算模型。MapReduce模型中的“Map”和“Reduce”的設(shè)計靈感受到了函數(shù)式編程中的Map()和Reduce()兩個功能函數(shù)的啟發(fā)。在MapReduce模型中,“Map”意為“映射”,是指將一個大任務(wù)分割為多個小任務(wù),以便對這些小任務(wù)進(jìn)行并行計算;“Reduce”意為“歸約”,是指將并行計算后得到的結(jié)果進(jìn)行匯總。因此,可以說,“Map”和“Reduce”就是MapReduce模型的核心思想的最好詮釋。MR3.3.2MapReduce并行編程模型并行編程技術(shù)253.3.2MapReduce并行編程模型并行編程技術(shù)MapReduce模型的大致執(zhí)行過程輸入Input分解Split映射Map重排Shuffle歸約Reduce輸出Finalize3.3.2MapReduce并行編程模型并行編程技術(shù)Ma263.3.2MapReduce并行編程模型并行編程技術(shù)使用MapReduce模型建立倒排索引3.3.2MapReduce并行編程模型并行編程技術(shù)使用27云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop項(xiàng)目并行編程技術(shù)數(shù)據(jù)管理技術(shù)云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop283.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)
云計算的特點(diǎn)是對海量數(shù)據(jù)進(jìn)行存儲和分析,這要求云計算的數(shù)據(jù)管理系統(tǒng)必須支持海量數(shù)據(jù)的高速存儲(hugestorage)、高頻的并行讀寫和并發(fā)訪問(highperformance)、快速的橫向擴(kuò)展(highscalability)和高可用性(highavailability)。
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫無法滿足云計算的數(shù)據(jù)管理需求,因此,人們提出了“NoSQL數(shù)據(jù)庫”的概念。3.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)云計算的特點(diǎn)是293.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)
關(guān)系型數(shù)據(jù)庫(relationaldatabase)是指采用關(guān)系模型組織和存儲數(shù)據(jù)的數(shù)據(jù)庫,關(guān)系模型可將實(shí)體數(shù)據(jù)抽象為邏輯關(guān)系,并存儲在由行和列組成的二維表格中。表格中的數(shù)據(jù)稱為行數(shù)據(jù)或結(jié)構(gòu)化數(shù)據(jù),它們遵循嚴(yán)格的存儲規(guī)范(如數(shù)據(jù)格式和長度規(guī)范等),用戶可通過結(jié)構(gòu)化查詢語言(structuredquerylanguage,SQL)對數(shù)據(jù)進(jìn)行查詢、控制和定義等操作。由于關(guān)系型數(shù)據(jù)庫普遍使用SQL作為查詢語言,因此SQL數(shù)據(jù)庫逐漸成為了關(guān)系型數(shù)據(jù)庫的代名詞。3.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)關(guān)系型數(shù)據(jù)庫(303.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL數(shù)據(jù)庫采用了松耦合的數(shù)據(jù)存儲模式,它不再使用關(guān)系模型作為數(shù)據(jù)存儲模型(故NoSQL也稱為“非關(guān)系型數(shù)據(jù)庫”),數(shù)據(jù)不必存儲在行列分明的二維表格中,也無須遵循嚴(yán)格的存儲規(guī)范,開發(fā)人員可自行制定存儲規(guī)范。3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)313.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
在數(shù)據(jù)庫中存儲的數(shù)據(jù)單位稱為“值(value)”,每個值均有與之相匹配的“鍵(key)”,通過“鍵”可迅速查找到“值”.原理鍵值映射
查找速度較快,但數(shù)據(jù)庫整體的存儲結(jié)構(gòu)較混亂特性
線上多媒體或社交平臺(如Youtube、Instagram)適用場景Redis、Riak、AWSDynamoDB代表產(chǎn)品3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL323.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
可看作SQL數(shù)據(jù)庫中表的擴(kuò)展,表中仍存在鍵,但鍵不再指向某一列,而是若干列,稱為列族或列簇。原理列族
相關(guān)數(shù)據(jù)可存放在一起,查找和擴(kuò)展方便。特性博客平臺
(如Facebook)適用場景HbaseCassandra代表產(chǎn)品3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL333.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
也可看作一種鍵值映射。一個文檔即為數(shù)據(jù)庫的最小存儲單位,每個文檔本身即為“值”,且均具有與之對應(yīng)的“鍵”(如文檔標(biāo)題、哈希值等)以便于查找文檔.文檔
文檔查找速度快,數(shù)據(jù)庫對數(shù)據(jù)結(jié)構(gòu)和存儲規(guī)范要求不嚴(yán)格。特性企業(yè)日志(如SAP)適用場景MongoDBRavenDB代表產(chǎn)品原理3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL343.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
使用了最短路徑尋址、N度關(guān)系查詢等圖結(jié)構(gòu)算法,以圖存儲為核心的數(shù)據(jù)庫。原理圖
可實(shí)現(xiàn)圖片的快速存儲和查找等操作。特性適用場景以圖片存儲為主的云存儲服務(wù)(如AdobeCreativeCloud)Neo4J代表產(chǎn)品3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL353.4.2Bigtable數(shù)據(jù)管理技術(shù)Bigtable是一個由谷歌公司設(shè)計并開發(fā)的NoSQL數(shù)據(jù)庫模型,它是谷歌公司云計算數(shù)據(jù)處理的關(guān)鍵技術(shù)之一,用于管理Google各服務(wù)(如GoogleAnalytics、GoogleFinance、GoogleEarth等)產(chǎn)生的海量數(shù)據(jù)。
與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫相比,Bigtable的數(shù)據(jù)存儲方式更加靈活,它不再使用傳統(tǒng)的關(guān)系模型,而是為用戶提供了簡單靈活的數(shù)據(jù)存儲模型,甚至可以說,存儲在Bigtable中的數(shù)據(jù)沒有固定的格式,用戶可以動態(tài)地控制數(shù)據(jù)的分布和格式,也可以自定義數(shù)據(jù)格式。3.4.2Bigtable數(shù)據(jù)管理技術(shù)Bi363.4.2Bigtable數(shù)據(jù)管理技術(shù)Bigtable采用了鍵值映射的數(shù)據(jù)存儲模式,在一個鍵值映射中,每個鍵由行關(guān)鍵字(row)、列關(guān)鍵字(column)和時間戳(time)3個維度共同組成。其中,行關(guān)鍵字和列關(guān)鍵字的數(shù)據(jù)類型均為字節(jié)數(shù)組(string),時間戳的數(shù)據(jù)類型則為64位整型(int)。Bigtable的鍵值映射數(shù)據(jù)模型3.4.2Bigtable數(shù)據(jù)管理技術(shù)Bi373.4.2Bigtable數(shù)據(jù)管理技術(shù)
在Bigtable
中
存
儲
數(shù)
據(jù)
時
的
鍵
值
映
射
假設(shè)要存儲一個項(xiàng)目,這個項(xiàng)目包括海量的網(wǎng)頁及相關(guān)數(shù)據(jù),現(xiàn)將此項(xiàng)目中的所有文件均存儲在一張稱為Webtable的表中,其數(shù)據(jù)結(jié)構(gòu)如圖所示。在Webtable表中存儲網(wǎng)頁時,行關(guān)鍵字是網(wǎng)頁的URL(假設(shè)為),并將URL的倒排形式(即)作為行名;列關(guān)鍵字由內(nèi)容列和錨鏈接文本列族組成,其中內(nèi)容列存儲著網(wǎng)頁的內(nèi)容,列名為“contents:”,錨鏈接文本列族由兩個存儲著鏈接文本的列組成(假設(shè)每個文本占用1列),列名為“anchor:”;時間戳代表數(shù)據(jù)進(jìn)入Bigtable的準(zhǔn)確時間,數(shù)據(jù)的不同版本按照時間戳降序存儲,例如,可以用(“”,“contents”,t5)找到主頁在t5時刻的內(nèi)容。3.4.2Bigtable數(shù)據(jù)管理技術(shù)在383.4.2Bigtable數(shù)據(jù)管理技術(shù)
在Bigtable
中
存
儲
數(shù)
據(jù)
時
的
鍵
值
映
射
3.4.2Bigtable數(shù)據(jù)管理技術(shù)在39云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲數(shù)據(jù)管理技術(shù)并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)目云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲數(shù)據(jù)管理技術(shù)并行編程技術(shù)實(shí)例-A403.5實(shí)例—ApacheHadoop項(xiàng)目實(shí)例—ApacheHadoop項(xiàng)目谷歌
谷歌公司在2003年、2004年和2006年分別發(fā)表了3篇論文,依次闡釋和論證了GFS、MapReduce模型和Bigtable的基本思想和原理。這3篇論文不僅成為谷歌公司云計算技術(shù)設(shè)計和開發(fā)的理論基礎(chǔ),確立了谷歌公司在云計算領(lǐng)域的先驅(qū)和領(lǐng)跑者地位,還奠定了云計算與大數(shù)據(jù)技術(shù)的基本框架。受到谷歌公司3篇論文的啟發(fā),各互聯(lián)網(wǎng)公司或組織均開始嘗試研發(fā)自家的分布式計算平臺,其中最著名的是Apache軟件基金會的Hadoop項(xiàng)目。3.5實(shí)例—ApacheHadoop項(xiàng)目實(shí)例—Apach413.5.1Hadoop簡介
實(shí)例—ApacheHadoop項(xiàng)目Hadoop最初的設(shè)計目的是解決其ApacheLucence項(xiàng)目中Nutch子項(xiàng)目的數(shù)據(jù)存儲和擴(kuò)展性問題,后來獨(dú)立成為Apache的頂級項(xiàng)目,并在云計算和大數(shù)據(jù)領(lǐng)域大放異彩,成為各大軟件廠商廣泛使用的大數(shù)據(jù)分析與挖掘工具。Hadoop的核心設(shè)計目標(biāo)01
易于編程
Hadoop對分布式系統(tǒng)上的程序設(shè)計進(jìn)行了簡化,將底層的設(shè)計細(xì)節(jié)抽象化、模塊化后交由系統(tǒng)實(shí)現(xiàn),從而使得用戶可以更關(guān)心應(yīng)用的邏輯實(shí)現(xiàn),大大減少了開發(fā)人員的工作量,提高了程序開發(fā)效率。0302
良好的擴(kuò)展性Hadoop力求通過簡單易行且成本較低的橫向擴(kuò)展方案擴(kuò)大分布式系統(tǒng)的集群規(guī)模,確保隨著任務(wù)規(guī)模的不斷擴(kuò)大,集群的性能也可以同步增長。
高容錯性
隨著集群規(guī)模的增大,集群中節(jié)點(diǎn)的故障率也會顯著增加,如磁盤損壞或節(jié)點(diǎn)宕機(jī)導(dǎo)致的數(shù)據(jù)丟失。Hadoop復(fù)制因子的概念可通過多地備份,自動遷移和復(fù)制等特性來達(dá)到集群可用性和容錯性的要求。3.5.1Hadoop簡介實(shí)例—ApacheHadoo423.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目
作為Google云計算體系的開源實(shí)現(xiàn),Hadoop也具有3大核心技術(shù),即與GFS對應(yīng)的HDFS、與MapReduce模型相對應(yīng)的HadoopMapReduce,以及與Bigtable對應(yīng)的Hbase?;谶@3大核心技術(shù)的Hadoop現(xiàn)已發(fā)展成了一個龐大的多元化生態(tài)系統(tǒng)。MahoutAmbariZookeeperFlumePigHiveSqoopSparkHadoopKafka3.5.2Hadoop生態(tài)系統(tǒng)實(shí)例—ApacheHad433.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目Hadoop
生
態(tài)
系
統(tǒng)
中
的3
大
核
心
技
術(shù)HDFS
是Apache基金會受到谷歌GFS論文《谷歌文件系統(tǒng)》啟發(fā)而設(shè)計和開發(fā)的分布
式
文件系統(tǒng),它可部署在由幾十臺、上百臺甚至上千臺主機(jī)組成的分布式系統(tǒng)
中,并具有高可用性、高容錯率、高性能和高擴(kuò)展性等特點(diǎn),因此常用于存儲
和管理海量數(shù)據(jù)。3.5.2Hadoop生態(tài)系統(tǒng)實(shí)例—ApacheHad443.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目Hadoop
生
態(tài)
系
統(tǒng)
中
的3
大
核
心
技
術(shù)3.5.2Hadoop生態(tài)系統(tǒng)實(shí)例—ApacheHad453.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目Hadoop
生
態(tài)
系
統(tǒng)
中
的3
大
核
心
技
術(shù)NameNode是集群的核心管理部分,一個Hadoop集群中只有一個NameNode,它負(fù)責(zé)管理HDFS的目錄樹和維護(hù)相關(guān)的文件元數(shù)據(jù)信息,這些信息包括HDFS元數(shù)據(jù)鏡像文件和文件改動日志等。NameNodeDataNode是HDFS系統(tǒng)中的各存儲節(jié)點(diǎn),它們將數(shù)據(jù)以固定大?。J(rèn)為64MB)的塊(block)進(jìn)行存儲。DataNode01023.5.2Hadoop生態(tài)系統(tǒng)實(shí)例—ApacheHad463.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目Hadoop
生
態(tài)
系
統(tǒng)
中
的3
大
核
心
技
術(shù)HadoopMapReduce
是根據(jù)谷歌MapReduce論文《MapReduce:大規(guī)模集群中的簡化數(shù)據(jù)處理》設(shè)計的一個并行編程模型的開源版本,它可將大型數(shù)據(jù)處理任務(wù)進(jìn)行分片處理,分配給分布式系統(tǒng)中的多臺計算機(jī)進(jìn)行并行計算,并將最終的結(jié)果進(jìn)行匯總,以實(shí)現(xiàn)大數(shù)據(jù)的并行計算。MapReduce是整個Hadoop生態(tài)系統(tǒng)的核心技術(shù),也是HDFS得以實(shí)現(xiàn)的技術(shù)支撐。3.5.2Hadoop生態(tài)系統(tǒng)實(shí)例—ApacheHad473.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目Hadoop
生
態(tài)
系
統(tǒng)
中
的3
大
核
心
技
術(shù)Hbase根據(jù)谷歌的Bigtable論文《Bigtable:一個針對結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系
統(tǒng)》設(shè)計和開發(fā),是GoogleBigtable的克隆版本和開源實(shí)現(xiàn)。Hbase是一個
針對海量數(shù)據(jù)存儲的動態(tài)模式的數(shù)據(jù)庫。與傳統(tǒng)關(guān)系數(shù)據(jù)庫不同,HBase的
數(shù)據(jù)存儲模式為鍵值映射。3.5.2Hadoop生態(tài)系統(tǒng)實(shí)例—ApacheHad48本章小結(jié)cloudcomputing2、為分布式數(shù)據(jù)存儲提供技術(shù)支持的是分布
式文件系統(tǒng),在眾多分布式文件系統(tǒng)中,
以谷歌的GFS和ApacheHadoop的HDFS
最具有代表性。3、MapReduce模型的核心思想是“分而治
之”。用戶在使用MapReduce模型進(jìn)行
并行編程時,只需實(shí)現(xiàn)映射函數(shù)Map()和
歸約函數(shù)Reduce(),而無須關(guān)心并行計算
過程中的其他步驟。云計算中的數(shù)據(jù)處理1、云計算與大數(shù)據(jù)的關(guān)系。兩者是一體兩面
的關(guān)系,云計算為大數(shù)據(jù)提供技術(shù)支持和
實(shí)現(xiàn)途徑,大數(shù)據(jù)推動云計算相關(guān)技術(shù)的
不斷更新和完善。本章小結(jié)cloudcomputing2、為分布式數(shù)據(jù)存儲提49本章小結(jié)cloudcomputing5、谷歌公司的3篇論文在云計算和大數(shù)據(jù)領(lǐng)域具
有里程碑意義,Hadoop生態(tài)系統(tǒng)中的核心
技術(shù)HDFS、HadoopMapReduce和Hbase
是這3篇論文中技術(shù)的開源實(shí)現(xiàn),同時也是Hadoop生態(tài)系統(tǒng)的3大關(guān)鍵技術(shù)。云計算中的數(shù)據(jù)處理4、數(shù)據(jù)庫是實(shí)現(xiàn)數(shù)據(jù)管理的重要手段。過去,
數(shù)據(jù)量較少,數(shù)據(jù)種類相對單一,因此往往
采用集中式文件系統(tǒng)和關(guān)系型數(shù)據(jù)庫進(jìn)行數(shù)
據(jù)的存儲和管理;但到了大數(shù)據(jù)時代,由于
數(shù)據(jù)量暴增,且種類愈發(fā)多樣化,傳統(tǒng)的方
式已經(jīng)不足以應(yīng)對如此規(guī)模的數(shù)據(jù)
集合,因
此,云計算技術(shù)
中,采用了NoSQL數(shù)據(jù)庫
對這些數(shù)據(jù)進(jìn)行存儲和管理。本章小結(jié)cloudcomputing5、谷歌公司的3篇論文50感謝觀看THANKS感謝觀看THANKS51云計算導(dǎo)論主講老師:云計算導(dǎo)論主講老師:52云計算中的數(shù)據(jù)處理技術(shù)第三章云計算中的數(shù)據(jù)第三章53云計算中的數(shù)據(jù)處理技術(shù)
數(shù)據(jù)處理一直是計算機(jī)科學(xué)研究的重要課題。作為一個復(fù)雜的系統(tǒng),云計算系統(tǒng)的發(fā)展過程就是其數(shù)據(jù)處理技術(shù)不斷完善和進(jìn)步的過程。本章導(dǎo)讀學(xué)習(xí)目標(biāo)了解大數(shù)據(jù)的概念及其與云計算的關(guān)系。理解分布式系統(tǒng)的概念。理解分布式數(shù)據(jù)存儲的概念及為其提供技術(shù)支持的分布式文件系統(tǒng)。理解并行編程技術(shù)。了解數(shù)據(jù)管理技術(shù)。認(rèn)識ApacheHadoop項(xiàng)目。云計算中的數(shù)據(jù)處理技術(shù)數(shù)據(jù)處理一直是計算機(jī)科學(xué)54云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)目數(shù)據(jù)管理技術(shù)云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲并行編程技術(shù)實(shí)例-Apache55云計算與大數(shù)據(jù)
大數(shù)據(jù)(bigdata)也稱海量數(shù)據(jù)或巨量數(shù)據(jù),是指數(shù)據(jù)量大到無法利用傳統(tǒng)的數(shù)據(jù)處理技術(shù)在合理的時間內(nèi)獲取、存儲、管理和分析的數(shù)據(jù)集合?!按髷?shù)據(jù)”一詞除用于描述信息時代產(chǎn)生的海量數(shù)據(jù)外,也可用于指代與之相關(guān)的技術(shù)、創(chuàng)新與應(yīng)用3.1.1什么是大數(shù)據(jù)海量的數(shù)據(jù)規(guī)模(volume)快速的數(shù)據(jù)流轉(zhuǎn)(velocity)多樣的數(shù)據(jù)類型(variety)較低的價值密度(value)4V特征云計算與大數(shù)據(jù)大數(shù)據(jù)(bigdata)也稱海56大數(shù)據(jù)技術(shù)是指用非傳統(tǒng)的方式對大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處理,以挖掘出數(shù)據(jù)中蘊(yùn)含的價值的技術(shù)。根據(jù)數(shù)據(jù)的處理流程,可以將大數(shù)據(jù)的關(guān)鍵技術(shù)分為:數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)存儲與管理、數(shù)據(jù)分析與挖掘、數(shù)據(jù)可視化等。云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)采集
數(shù)據(jù)采集就是將網(wǎng)絡(luò)上各種來源的數(shù)據(jù)寫入數(shù)據(jù)倉庫,并整合在一起,以便對數(shù)據(jù)進(jìn)行綜合分析。數(shù)據(jù)采集包括網(wǎng)絡(luò)日志采集、網(wǎng)絡(luò)文件采集(提取網(wǎng)頁中的圖片、文本等)、關(guān)系型數(shù)據(jù)庫的接入等,常用的工具有Flume、Kafka、Sqoop等。大數(shù)據(jù)技術(shù)是指用非傳統(tǒng)的方式對大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處57云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)存儲與管理數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理是指將雜亂無章的數(shù)據(jù)轉(zhuǎn)化為相對單一且便于處理的結(jié)構(gòu)(數(shù)據(jù)抽?。?,或者去除沒有價值甚至可能對分析造成干擾的數(shù)據(jù)(數(shù)據(jù)清洗),從而為后期的數(shù)據(jù)分析奠定基礎(chǔ)。
數(shù)據(jù)存儲是指用存儲器把采集到的數(shù)據(jù)存儲起來,并建立相應(yīng)的文件系統(tǒng)和數(shù)據(jù)庫,以便對數(shù)據(jù)進(jìn)行管理和調(diào)用。云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)存儲與管理數(shù)據(jù)預(yù)處58云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)分析與挖掘
數(shù)據(jù)分析與挖掘是指通過各種算法從大量的數(shù)據(jù)中找出潛在的有用信息,并研究數(shù)據(jù)的內(nèi)在規(guī)律和相互之間的關(guān)系。常用的數(shù)據(jù)分析與挖掘技術(shù)包括批處理、流處理、實(shí)時處理和交互處理等技術(shù)名稱技術(shù)實(shí)例特
點(diǎn)應(yīng)用案例批處理Hadoop分布式高速計算和存儲社交網(wǎng)絡(luò)、推薦系統(tǒng)流處理Storm低時延,高響應(yīng)圖像處理、社交媒體實(shí)時處理Spark低延遲計算視頻分析、實(shí)時廣告交互處理Dremel快速處理PB級海量數(shù)據(jù)電商平臺云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)分析與挖掘59云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)可視化
數(shù)據(jù)可視化是指利用可視化手段對數(shù)據(jù)進(jìn)行分析,并將分析結(jié)果用圖表或文字等形式展現(xiàn)出來,從而使讀者對數(shù)據(jù)的分布、發(fā)展趨勢、相關(guān)性和統(tǒng)計信息等一目了然云計算與大數(shù)據(jù)3.1.1什么是大數(shù)據(jù)數(shù)據(jù)可視化60云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系
作為引領(lǐng)未來技術(shù)變革的兩項(xiàng)關(guān)鍵技術(shù),云計算與大數(shù)據(jù)既緊密相連,又相互區(qū)別。從整體上看,兩者是相輔相成的。一方面,云計算為大數(shù)據(jù)提供了技術(shù)支持和實(shí)現(xiàn)途徑;另一方面,大數(shù)據(jù)讓云計算更有價值,并推動著云計算相關(guān)技術(shù)的不斷更新和完善。服務(wù)領(lǐng)域相同。云計算與大數(shù)據(jù)的聯(lián)系關(guān)鍵技術(shù)相同。云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系61云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系云計算與大數(shù)據(jù)的區(qū)別處理對象不同。目的不同。產(chǎn)生的背景不同。35推動力不同。421帶來的價值不同。云計算與大數(shù)據(jù)3.1.2云計算與大數(shù)據(jù)的關(guān)系云計算與大數(shù)據(jù)62云計算與大數(shù)據(jù)并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)目數(shù)據(jù)管理技術(shù)分布式數(shù)據(jù)存儲云計算與大數(shù)據(jù)并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)633.2分布式數(shù)據(jù)存儲分布式數(shù)據(jù)存儲
云計算最主要的特征是擁有大規(guī)模的數(shù)據(jù)集,基于該數(shù)據(jù)集向用戶提供服務(wù)。為了保證高可用性、高可靠性和經(jīng)濟(jì)性,云計算采用了分布式數(shù)據(jù)存儲方式。存儲3.2分布式數(shù)據(jù)存儲分布式數(shù)據(jù)存儲云計算最主要643.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲
分布式系統(tǒng)(distributedsystem)是指一組通過網(wǎng)絡(luò)連接的計算機(jī)及其軟件系統(tǒng),這些計算機(jī)的耦合度較低,相互之間協(xié)調(diào)工作以實(shí)現(xiàn)整體負(fù)載均衡。3.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲分布式系統(tǒng)653.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲升級性能
的方法
縱向擴(kuò)展是指升級當(dāng)前集中式系統(tǒng)中的主機(jī),其優(yōu)勢是數(shù)據(jù)備份和恢復(fù)簡單、部署方便、安全性高、穩(wěn)定性好、維護(hù)成本低;
橫向擴(kuò)展是指增加主機(jī)數(shù)量,將各主機(jī)通過網(wǎng)絡(luò)連接組成分布式系統(tǒng),共同存儲數(shù)據(jù)和處理任務(wù)。縱向擴(kuò)展橫向擴(kuò)展3.2.1分布式系統(tǒng)分布式數(shù)據(jù)存儲升級性能縱66分布式數(shù)據(jù)存儲
分布式數(shù)據(jù)存儲即利用分布式系統(tǒng)來存儲數(shù)據(jù),而用于存儲數(shù)據(jù)的分布式系統(tǒng)也稱為分布式存儲系統(tǒng)(distributedstoragesystem)。分布式存儲系統(tǒng)@SMS分布式數(shù)據(jù)存儲分布式數(shù)據(jù)存儲即利用分布式系統(tǒng)來67分布式存儲系統(tǒng)分布式數(shù)據(jù)存儲低成本高
性
能可
擴(kuò)
展易
用
性自
治
性分布式存儲系統(tǒng)分布式數(shù)據(jù)存儲低成本高性能可68分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲
為分布式數(shù)據(jù)存儲提供技術(shù)支持的是分布式文件系統(tǒng)(distributedfilesystem)。分布式文件系統(tǒng)又稱集群文件系統(tǒng),它是由分布式存儲系統(tǒng)中多個節(jié)點(diǎn)通過網(wǎng)絡(luò)共同組建和共享的文件系統(tǒng)。分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲為分布式數(shù)據(jù)存儲69分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS是谷歌公司設(shè)計并開發(fā)的大型分布式文件系統(tǒng),它是通過廉價設(shè)備進(jìn)行大規(guī)模數(shù)據(jù)存儲的解決方案,與MapReduce并行編程模型及Bigtable分布式數(shù)據(jù)庫共同構(gòu)成了谷歌公司云計算的技術(shù)體系,并合稱為拉動谷歌公司海量數(shù)據(jù)處理和搜索引擎等服務(wù)的“三駕馬車”。GFS采用了客戶機(jī)/服務(wù)器的設(shè)計模式。一個GFS由一個主控服務(wù)器(masterserver)和若干數(shù)據(jù)塊服務(wù)器(chunkserver)組成,并供許多GFS客戶端(GFSclient)訪問,如圖3-2所示。系統(tǒng)中的元數(shù)據(jù)以數(shù)據(jù)分片的形式存儲在數(shù)據(jù)塊服務(wù)器中,數(shù)據(jù)塊服務(wù)器越多,能存儲的數(shù)據(jù)總量越大,因此數(shù)據(jù)塊服務(wù)器的數(shù)量往往決定了整個GFS的規(guī)模。主控服務(wù)器是整個GFS的核心,它存儲著系統(tǒng)中所有元數(shù)據(jù)的信息(如創(chuàng)建時間、索引等)。客戶端訪問系統(tǒng)文件時,必須向主控服務(wù)器發(fā)送請求,主控服務(wù)器返回給客戶端要與之交互的數(shù)據(jù)塊服務(wù)器信息,然后客戶端直接訪問這些數(shù)據(jù)塊服務(wù)器完成數(shù)據(jù)的存取。分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS是谷歌公70分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS的系統(tǒng)架構(gòu)分布式數(shù)據(jù)存儲技術(shù)分布式數(shù)據(jù)存儲GFS71云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop項(xiàng)目數(shù)據(jù)管理技術(shù)并行編程技術(shù)云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop723.3并行編程技術(shù)并行編程技術(shù)
并行編程(parallelprogramming)也稱并行程序設(shè)計、平行編程,是針對并行計算的程序設(shè)計方法,在云計算領(lǐng)域,并行編程則是指對分布式并行計算進(jìn)行程序設(shè)計。3.3并行編程技術(shù)并行編程技術(shù)并行編程(pa733.3.1分布式并行計算并行編程技術(shù)分布式計算
分布式計算(distributedcomputing)是一種計算方法,是與集中式計算相對的概念。它可以將大任務(wù)拆分成許多小任務(wù),然后把這些任務(wù)派發(fā)給多臺計算機(jī)進(jìn)行計算,最后將所有的計算結(jié)果進(jìn)行匯總,以得到最終結(jié)果。1.分布式計算2.并行計算3.3.1分布式并行計算并行編程技術(shù)分布式計算743.3.1分布式并行計算并行編程技術(shù)并行計算
并行計算(parallelcomputing)又稱平行計算,是相對于串行計算來說的。它是一種允許讓多條指令以平行的方式同時進(jìn)行計算的模式,存在時間并行和空間并行兩種方式。1.分布式計算2.并行計算3.3.1分布式并行計算并行編程技術(shù)并行計算753.3.2MapReduce并行編程模型并行編程技術(shù)MapReduce并行編程模型(以下簡稱模型)是一個針對大規(guī)模集群中的分布式文件進(jìn)行并行處理的計算模型。MapReduce模型中的“Map”和“Reduce”的設(shè)計靈感受到了函數(shù)式編程中的Map()和Reduce()兩個功能函數(shù)的啟發(fā)。在MapReduce模型中,“Map”意為“映射”,是指將一個大任務(wù)分割為多個小任務(wù),以便對這些小任務(wù)進(jìn)行并行計算;“Reduce”意為“歸約”,是指將并行計算后得到的結(jié)果進(jìn)行匯總。因此,可以說,“Map”和“Reduce”就是MapReduce模型的核心思想的最好詮釋。MR3.3.2MapReduce并行編程模型并行編程技術(shù)763.3.2MapReduce并行編程模型并行編程技術(shù)MapReduce模型的大致執(zhí)行過程輸入Input分解Split映射Map重排Shuffle歸約Reduce輸出Finalize3.3.2MapReduce并行編程模型并行編程技術(shù)Ma773.3.2MapReduce并行編程模型并行編程技術(shù)使用MapReduce模型建立倒排索引3.3.2MapReduce并行編程模型并行編程技術(shù)使用78云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop項(xiàng)目并行編程技術(shù)數(shù)據(jù)管理技術(shù)云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲實(shí)例-ApacheHadoop793.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)
云計算的特點(diǎn)是對海量數(shù)據(jù)進(jìn)行存儲和分析,這要求云計算的數(shù)據(jù)管理系統(tǒng)必須支持海量數(shù)據(jù)的高速存儲(hugestorage)、高頻的并行讀寫和并發(fā)訪問(highperformance)、快速的橫向擴(kuò)展(highscalability)和高可用性(highavailability)。
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫無法滿足云計算的數(shù)據(jù)管理需求,因此,人們提出了“NoSQL數(shù)據(jù)庫”的概念。3.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)云計算的特點(diǎn)是803.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)
關(guān)系型數(shù)據(jù)庫(relationaldatabase)是指采用關(guān)系模型組織和存儲數(shù)據(jù)的數(shù)據(jù)庫,關(guān)系模型可將實(shí)體數(shù)據(jù)抽象為邏輯關(guān)系,并存儲在由行和列組成的二維表格中。表格中的數(shù)據(jù)稱為行數(shù)據(jù)或結(jié)構(gòu)化數(shù)據(jù),它們遵循嚴(yán)格的存儲規(guī)范(如數(shù)據(jù)格式和長度規(guī)范等),用戶可通過結(jié)構(gòu)化查詢語言(structuredquerylanguage,SQL)對數(shù)據(jù)進(jìn)行查詢、控制和定義等操作。由于關(guān)系型數(shù)據(jù)庫普遍使用SQL作為查詢語言,因此SQL數(shù)據(jù)庫逐漸成為了關(guān)系型數(shù)據(jù)庫的代名詞。3.4數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)關(guān)系型數(shù)據(jù)庫(813.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL數(shù)據(jù)庫采用了松耦合的數(shù)據(jù)存儲模式,它不再使用關(guān)系模型作為數(shù)據(jù)存儲模型(故NoSQL也稱為“非關(guān)系型數(shù)據(jù)庫”),數(shù)據(jù)不必存儲在行列分明的二維表格中,也無須遵循嚴(yán)格的存儲規(guī)范,開發(fā)人員可自行制定存儲規(guī)范。3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)823.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
在數(shù)據(jù)庫中存儲的數(shù)據(jù)單位稱為“值(value)”,每個值均有與之相匹配的“鍵(key)”,通過“鍵”可迅速查找到“值”.原理鍵值映射
查找速度較快,但數(shù)據(jù)庫整體的存儲結(jié)構(gòu)較混亂特性
線上多媒體或社交平臺(如Youtube、Instagram)適用場景Redis、Riak、AWSDynamoDB代表產(chǎn)品3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL833.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
可看作SQL數(shù)據(jù)庫中表的擴(kuò)展,表中仍存在鍵,但鍵不再指向某一列,而是若干列,稱為列族或列簇。原理列族
相關(guān)數(shù)據(jù)可存放在一起,查找和擴(kuò)展方便。特性博客平臺
(如Facebook)適用場景HbaseCassandra代表產(chǎn)品3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL843.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
也可看作一種鍵值映射。一個文檔即為數(shù)據(jù)庫的最小存儲單位,每個文檔本身即為“值”,且均具有與之對應(yīng)的“鍵”(如文檔標(biāo)題、哈希值等)以便于查找文檔.文檔
文檔查找速度快,數(shù)據(jù)庫對數(shù)據(jù)結(jié)構(gòu)和存儲規(guī)范要求不嚴(yán)格。特性企業(yè)日志(如SAP)適用場景MongoDBRavenDB代表產(chǎn)品原理3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL853.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL
數(shù)
據(jù)
庫
的
常
用
存
儲
模
式
使用了最短路徑尋址、N度關(guān)系查詢等圖結(jié)構(gòu)算法,以圖存儲為核心的數(shù)據(jù)庫。原理圖
可實(shí)現(xiàn)圖片的快速存儲和查找等操作。特性適用場景以圖片存儲為主的云存儲服務(wù)(如AdobeCreativeCloud)Neo4J代表產(chǎn)品3.4.1NoSQL數(shù)據(jù)庫概述數(shù)據(jù)管理技術(shù)NoSQL863.4.2Bigtable數(shù)據(jù)管理技術(shù)Bigtable是一個由谷歌公司設(shè)計并開發(fā)的NoSQL數(shù)據(jù)庫模型,它是谷歌公司云計算數(shù)據(jù)處理的關(guān)鍵技術(shù)之一,用于管理Google各服務(wù)(如GoogleAnalytics、GoogleFinance、GoogleEarth等)產(chǎn)生的海量數(shù)據(jù)。
與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫相比,Bigtable的數(shù)據(jù)存儲方式更加靈活,它不再使用傳統(tǒng)的關(guān)系模型,而是為用戶提供了簡單靈活的數(shù)據(jù)存儲模型,甚至可以說,存儲在Bigtable中的數(shù)據(jù)沒有固定的格式,用戶可以動態(tài)地控制數(shù)據(jù)的分布和格式,也可以自定義數(shù)據(jù)格式。3.4.2Bigtable數(shù)據(jù)管理技術(shù)Bi873.4.2Bigtable數(shù)據(jù)管理技術(shù)Bigtable采用了鍵值映射的數(shù)據(jù)存儲模式,在一個鍵值映射中,每個鍵由行關(guān)鍵字(row)、列關(guān)鍵字(column)和時間戳(time)3個維度共同組成。其中,行關(guān)鍵字和列關(guān)鍵字的數(shù)據(jù)類型均為字節(jié)數(shù)組(string),時間戳的數(shù)據(jù)類型則為64位整型(int)。Bigtable的鍵值映射數(shù)據(jù)模型3.4.2Bigtable數(shù)據(jù)管理技術(shù)Bi883.4.2Bigtable數(shù)據(jù)管理技術(shù)
在Bigtable
中
存
儲
數(shù)
據(jù)
時
的
鍵
值
映
射
假設(shè)要存儲一個項(xiàng)目,這個項(xiàng)目包括海量的網(wǎng)頁及相關(guān)數(shù)據(jù),現(xiàn)將此項(xiàng)目中的所有文件均存儲在一張稱為Webtable的表中,其數(shù)據(jù)結(jié)構(gòu)如圖所示。在Webtable表中存儲網(wǎng)頁時,行關(guān)鍵字是網(wǎng)頁的URL(假設(shè)為),并將URL的倒排形式(即)作為行名;列關(guān)鍵字由內(nèi)容列和錨鏈接文本列族組成,其中內(nèi)容列存儲著網(wǎng)頁的內(nèi)容,列名為“contents:”,錨鏈接文本列族由兩個存儲著鏈接文本的列組成(假設(shè)每個文本占用1列),列名為“anchor:”;時間戳代表數(shù)據(jù)進(jìn)入Bigtable的準(zhǔn)確時間,數(shù)據(jù)的不同版本按照時間戳降序存儲,例如,可以用(“”,“contents”,t5)找到主頁在t5時刻的內(nèi)容。3.4.2Bigtable數(shù)據(jù)管理技術(shù)在893.4.2Bigtable數(shù)據(jù)管理技術(shù)
在Bigtable
中
存
儲
數(shù)
據(jù)
時
的
鍵
值
映
射
3.4.2Bigtable數(shù)據(jù)管理技術(shù)在90云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲數(shù)據(jù)管理技術(shù)并行編程技術(shù)實(shí)例-ApacheHadoop項(xiàng)目云計算與大數(shù)據(jù)分布式數(shù)據(jù)存儲數(shù)據(jù)管理技術(shù)并行編程技術(shù)實(shí)例-A913.5實(shí)例—ApacheHadoop項(xiàng)目實(shí)例—ApacheHadoop項(xiàng)目谷歌
谷歌公司在2003年、2004年和2006年分別發(fā)表了3篇論文,依次闡釋和論證了GFS、MapReduce模型和Bigtable的基本思想和原理。這3篇論文不僅成為谷歌公司云計算技術(shù)設(shè)計和開發(fā)的理論基礎(chǔ),確立了谷歌公司在云計算領(lǐng)域的先驅(qū)和領(lǐng)跑者地位,還奠定了云計算與大數(shù)據(jù)技術(shù)的基本框架。受到谷歌公司3篇論文的啟發(fā),各互聯(lián)網(wǎng)公司或組織均開始嘗試研發(fā)自家的分布式計算平臺,其中最著名的是Apache軟件基金會的Hadoop項(xiàng)目。3.5實(shí)例—ApacheHadoop項(xiàng)目實(shí)例—Apach923.5.1Hadoop簡介
實(shí)例—ApacheHadoop項(xiàng)目Hadoop最初的設(shè)計目的是解決其ApacheLucence項(xiàng)目中Nutch子項(xiàng)目的數(shù)據(jù)存儲和擴(kuò)展性問題,后來獨(dú)立成為Apache的頂級項(xiàng)目,并在云計算和大數(shù)據(jù)領(lǐng)域大放異彩,成為各大軟件廠商廣泛使用的大數(shù)據(jù)分析與挖掘工具。Hadoop的核心設(shè)計目標(biāo)01
易于編程
Hadoop對分布式系統(tǒng)上的程序設(shè)計進(jìn)行了簡化,將底層的設(shè)計細(xì)節(jié)抽象化、模塊化后交由系統(tǒng)實(shí)現(xiàn),從而使得用戶可以更關(guān)心應(yīng)用的邏輯實(shí)現(xiàn),大大減少了開發(fā)人員的工作量,提高了程序開發(fā)效率。0302
良好的擴(kuò)展性Hadoop力求通過簡單易行且成本較低的橫向擴(kuò)展方案擴(kuò)大分布式系統(tǒng)的集群規(guī)模,確保隨著任務(wù)規(guī)模的不斷擴(kuò)大,集群的性能也可以同步增長。
高容錯性
隨著集群規(guī)模的增大,集群中節(jié)點(diǎn)的故障率也會顯著增加,如磁盤損壞或節(jié)點(diǎn)宕機(jī)導(dǎo)致的數(shù)據(jù)丟失。Hadoop復(fù)制因子的概念可通過多地備份,自動遷移和復(fù)制等特性來達(dá)到集群可用性和容錯性的要求。3.5.1Hadoop簡介實(shí)例—ApacheHadoo933.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目
作為Google云計算體系的開源實(shí)現(xiàn),Hadoop也具有3大核心技術(shù),即與GFS對應(yīng)的HDFS、與MapReduce模型相對應(yīng)的HadoopMapReduce,以及與Bigtable對應(yīng)的Hbase。基于這3大核心技術(shù)的Hadoop現(xiàn)已發(fā)展成了一個龐大的多元化生態(tài)系統(tǒng)。MahoutAmbariZookeeperFlumePigHiveSqoopSparkHadoopKafka3.5.2Hadoop生態(tài)系統(tǒng)實(shí)例—ApacheHad943.5.2Hadoop生態(tài)系統(tǒng)
實(shí)例—ApacheHadoop項(xiàng)目Hadoop
生
態(tài)
系
統(tǒng)
中
的3
大
核
心
技
術(shù)HDFS
是Apache基金會受到谷歌GFS論文《谷歌文件系統(tǒng)》啟發(fā)而設(shè)計和開發(fā)的分布
式
文件系統(tǒng),它可部署在由幾十臺、上百臺甚至上千臺主機(jī)組成的分布式系統(tǒng)
中,并具有高可用性、高容錯率、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江國企招聘2025臺州灣新區(qū)招聘7人筆試參考題庫附帶答案詳解
- 浙江國企招聘2024浙江省文化產(chǎn)業(yè)投資集團(tuán)有限公司招聘14人筆試參考題庫附帶答案詳解
- 二零二五年度企業(yè)入駐高新技術(shù)產(chǎn)業(yè)園區(qū)入駐合同
- 二零二五年度工程款抵扣工程結(jié)算審計協(xié)議
- 二零二五年度地下停車場車位出售合同協(xié)議
- 二零二五年度事業(yè)單位解聘合同模板(綠化養(yǎng)護(hù)人員崗位)
- 2025年度深圳租房合同租賃期限變更與租賃物維護(hù)服務(wù)協(xié)議
- 二零二五年度電商直播平臺主播勞動合同
- 2025年度新能源儲能技術(shù)股東合作協(xié)議書
- 二零二五年度新能源電池回收利用合作開發(fā)協(xié)議范本
- 2024年新疆區(qū)公務(wù)員錄用考試《行測》真題及答案解析
- 嚴(yán)重創(chuàng)傷患者緊急救治血液保障模式與輸血策略中國專家共識(2024版)
- 【川教版】《生命 生態(tài) 安全》五下全冊課件
- 英文在職證明模版
- 中國無人機(jī)市場分析
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):圓中鬼魅阿波羅尼斯圓(含答案)
- 2024年新課標(biāo)培訓(xùn)2022年小學(xué)英語新課標(biāo)學(xué)習(xí)培訓(xùn)課件
- 中學(xué)八年級信息技術(shù)Excel-電子表格教案
- 大學(xué)生職業(yè)素養(yǎng)訓(xùn)練(第六版)課件 第十二單元養(yǎng)成友善品格
- 哲學(xué)與人生 第二課 樹立科學(xué)的世界觀2.1
- 傳感器技術(shù)-武漢大學(xué)
評論
0/150
提交評論