




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一講:云計(jì)算概述1什么是云計(jì)算? 云計(jì)算是一種能夠?qū)?dòng)態(tài)伸縮的虛擬化資源通過互聯(lián)網(wǎng)以服務(wù)的方式提供給用戶的計(jì)算模式.根據(jù)云提供的服務(wù)類型,可以劃分為基礎(chǔ)設(shè)施云、平臺(tái)云、應(yīng)用云。根據(jù)云的服務(wù)方式,可以劃分為公有云、私有云、混合云.2云計(jì)算的優(yōu)勢?eq\o\ac(○,1)優(yōu)化產(chǎn)業(yè)布局–成本關(guān)鍵由硬件成本轉(zhuǎn)為電力成本、散熱成本–分散的、高能耗模式轉(zhuǎn)變?yōu)榧械?、資源友好的模式–自給自足資源作坊轉(zhuǎn)變?yōu)橐?guī)模效應(yīng)的工業(yè)化資源工廠eq\o\ac(○,2)推進(jìn)專業(yè)分工–專業(yè)的大型云計(jì)算廠商–實(shí)力雄厚的科研技術(shù)團(tuán)隊(duì)推動(dòng)硬件技術(shù)革新–具有豐富知識(shí)和經(jīng)驗(yàn)的維護(hù)管理團(tuán)隊(duì)和配套軟件–產(chǎn)業(yè)鏈中的新產(chǎn)業(yè)契機(jī)eq\o\ac(○,3)提升資源利用率–更加高效的解決常規(guī)業(yè)務(wù)–更好的應(yīng)對突發(fā)任務(wù)或事件–更加平衡的資源分配和負(fù)載eq\o\ac(○,4)減少初期投資–更少的IT基礎(chǔ)設(shè)施投入–更少的軟件投入–更少的人力投入–更短的培訓(xùn)周期–更靈活的轉(zhuǎn)型支持eq\o\ac(○,5)降低管理開銷–服務(wù)化管理–無需自己建立維護(hù)管理團(tuán)隊(duì)–隨需應(yīng)變的解決方案–知識(shí)、經(jīng)驗(yàn)更加豐富的管理隊(duì)伍–通過業(yè)務(wù)模塊的可配置提高系統(tǒng)的靈活性3云計(jì)算的動(dòng)因?eq\o\ac(○,1)芯片與硬件技術(shù)–硬件能力的激增、成本的大幅下降,使得獨(dú)立運(yùn)作的公司集中客觀的硬件能力實(shí)現(xiàn)規(guī)模效益成為可能eq\o\ac(○,2)資源虛擬化–資源在云端,需要被統(tǒng)一的管理–異構(gòu)硬件、兼容性問題–虛擬化技術(shù)eq\o\ac(○,3)應(yīng)用需求eq\o\ac(○,3)面向服務(wù)的架構(gòu)SOA–開放式數(shù)據(jù)模型–統(tǒng)一通信標(biāo)準(zhǔn)–更加豐富的服務(wù)–更加松散耦合、靈活的IT架構(gòu)–轉(zhuǎn)變了人們對IT系統(tǒng)的認(rèn)識(shí)eq\o\ac(○,4)軟件即服務(wù)SaaS–轉(zhuǎn)變了人們使用服務(wù)的方式–使得終端用戶熟悉服務(wù)的交互模式–改變了IT界的商業(yè)模式–實(shí)力雄厚的大公司負(fù)責(zé)基礎(chǔ)設(shè)施,小企業(yè)通過創(chuàng)新挖掘充滿潛力的市場–“長尾理論”eq\o\ac(○,5)互聯(lián)網(wǎng)技術(shù)–基礎(chǔ)設(shè)施–多種接入方式–更加廣闊的覆蓋–帶寬和可靠性得到大幅提升–使得IT新模式的穩(wěn)定性、可靠性、安全性、可用性、靈活性、可管理性、自動(dòng)化程度、節(jié)能環(huán)保等得到保障eq\o\ac(○,6)Web2。0技術(shù)–用戶從信息的獲得者變成信息的貢獻(xiàn)者–博客(微博)、內(nèi)容聚合、百科全書(Wiki)、社交網(wǎng)絡(luò)、對等網(wǎng)絡(luò)(P2P)–富互聯(lián)網(wǎng)應(yīng)用(RichInternetApplication)成為網(wǎng)絡(luò)應(yīng)用發(fā)展的趨勢–改變了人們的生活方式–為云計(jì)算提出了內(nèi)在需求4查找資料:業(yè)界主流的云計(jì)算產(chǎn)品典型的云計(jì)算應(yīng)用補(bǔ)充:1云計(jì)算特征是什么?eq\o\ac(○,1)硬件和軟件都是資源eq\o\ac(○,2)資源可以根據(jù)需要進(jìn)行動(dòng)態(tài)擴(kuò)展與配置eq\o\ac(○,3)按用計(jì)費(fèi)、無需管理eq\o\ac(○,4)物理上分布式共享,邏輯上以單一整體呈現(xiàn)2云計(jì)算的發(fā)展歷程?eq\o\ac(○,1)超級(jí)計(jì)算機(jī)eq\o\ac(○,2)集群計(jì)算eq\o\ac(○,3)分布式計(jì)算eq\o\ac(○,4)網(wǎng)格計(jì)算eq\o\ac(○,5)效用計(jì)算eq\o\ac(○,6)云計(jì)算第二講:云服務(wù)1云服務(wù)的基本層次? 云計(jì)算的基本層次分為三層,依次為IaaS,PaaS和SaaS。 IaaS(架構(gòu)即服務(wù)),提供了核心計(jì)算資源和網(wǎng)絡(luò)架構(gòu)的服務(wù)?;A(chǔ)設(shè)施棧包括操作系統(tǒng)訪問、防火墻、路由和負(fù)載平衡。示例產(chǎn)品:Flexiscale和AmazonEC2。 PaaS(平臺(tái)即服務(wù))提供平臺(tái)給系統(tǒng)管理員和開發(fā)人員,令其可以基于平臺(tái)構(gòu)建、測試及部署定制應(yīng)用程序。也降低了管理系統(tǒng)的成本.典型服務(wù)包括Storage、Database、Scalability。示例產(chǎn)品:GoogleAppEngine、AWS:S3、MicrosoftAzure。 SaaS(軟件即服務(wù))通過Internet提供軟件的模式,用戶向提供商租用基于Web的軟件來管理企業(yè)經(jīng)營活動(dòng),且無需對軟件進(jìn)行維護(hù),服務(wù)提供商會(huì)全權(quán)管理和維護(hù)軟件。示例產(chǎn)品:GoogleDocs、CRM、FinancialPlanning、HumanResources、WordProcessing等。2IaaS的基本功能?eq\o\ac(○,1)資源抽象eq\o\ac(○,2)資源監(jiān)控eq\o\ac(○,3)負(fù)載管理eq\o\ac(○,4)數(shù)據(jù)管理eq\o\ac(○,5)資源部署eq\o\ac(○,6)安全管理eq\o\ac(○,7)計(jì)費(fèi)管理3PaaS的基本功能?eq\o\ac(○,1)開發(fā)平臺(tái)eq\o\ac(○,2)運(yùn)行時(shí)環(huán)境eq\o\ac(○,3)運(yùn)營環(huán)境補(bǔ)充:1IaaS服務(wù)流程?規(guī)劃階段->部署階段-〉運(yùn)行階段2PaaS實(shí)現(xiàn)步驟?eq\o\ac(○,1)總體設(shè)計(jì)eq\o\ac(○,2)開發(fā)平臺(tái)eq\o\ac(○,3)運(yùn)行環(huán)境eq\o\ac(○,4)運(yùn)營環(huán)境3云平臺(tái)上開發(fā)應(yīng)用的優(yōu)勢?–提供高級(jí)編程接口,簡單易用,縮短編程人員上手時(shí)間–應(yīng)用的開發(fā)與運(yùn)行基于相同的平臺(tái),兼容性問題較少–開發(fā)者無需考慮應(yīng)用的可伸縮性、服務(wù)容量問題–平臺(tái)層的運(yùn)營管理功能還能夠幫助開發(fā)人員對應(yīng)用進(jìn)行監(jiān)控和計(jì)費(fèi)4應(yīng)用層的特征?–網(wǎng)絡(luò)訪問模式–租用付費(fèi)–高度整合第四講:虛擬化1虛擬化的概念? 虛擬化是表示計(jì)算機(jī)資源的抽象方法,通過虛擬化可以用與訪問抽象前資源一致的方法來訪問抽象后的資源。這種資源的抽象方法并不受實(shí)現(xiàn)、地理位置或底層資源的物理配置限制。(wiki)2服務(wù)器虛擬化的特性?eq\o\ac(○,1)多實(shí)例–一個(gè)物理服務(wù)器上可以運(yùn)行多個(gè)虛擬服務(wù)器–支持多個(gè)客戶操作系統(tǒng)–物理系統(tǒng)資源以可控的方式分配給虛擬機(jī)eq\o\ac(○,2)隔離性–虛擬機(jī)之間完全隔離–一個(gè)虛擬機(jī)的崩潰不會(huì)對其他虛擬機(jī)造成影響–虛擬機(jī)之間的數(shù)據(jù)相對獨(dú)立,不會(huì)泄露–虛擬機(jī)之間如果需要互相訪問,方式等同于獨(dú)立物理服務(wù)器之間的互相訪問eq\o\ac(○,3)封裝性–硬件無關(guān)–對外表現(xiàn)為單一的邏輯實(shí)體–一個(gè)虛擬機(jī)可以方便的在不同硬件之間復(fù)制、移動(dòng)–將不同訪問方式的硬件封裝成統(tǒng)一標(biāo)準(zhǔn)化的虛擬硬件設(shè)備,保證了虛擬機(jī)的兼容性eq\o\ac(○,4)高性能–可通過擴(kuò)展獲得“無限"的性能–虛擬化抽象層需要一定管理開銷3服務(wù)器虛擬化的關(guān)鍵技術(shù)?eq\o\ac(○,1)計(jì)算虛擬化–CPU虛擬化–計(jì)算負(fù)載的動(dòng)態(tài)分配–能耗管理eq\o\ac(○,2)存儲(chǔ)虛擬化–內(nèi)存虛擬化–磁盤存儲(chǔ)動(dòng)態(tài)分配eq\o\ac(○,3)設(shè)備與I/O虛擬化–軟件方式實(shí)現(xiàn)–統(tǒng)一、標(biāo)準(zhǔn)化的接口–操作指令轉(zhuǎn)譯eq\o\ac(○,4)實(shí)時(shí)遷移技術(shù)–將整個(gè)虛擬機(jī)的運(yùn)行狀態(tài)完整、快速地從原宿主機(jī)的硬件平臺(tái)轉(zhuǎn)移到新的宿主機(jī)硬件平臺(tái)。4創(chuàng)建虛擬化解決方案的步驟?eq\o\ac(○,1)創(chuàng)建虛擬化解決方案eq\o\ac(○,2)部署虛擬化解決方案eq\o\ac(○,3)管理虛擬化解決方案5什么是數(shù)據(jù)中心? 數(shù)據(jù)中心是一整套復(fù)雜的設(shè)施,它不僅僅包括計(jì)算機(jī)系統(tǒng)和其它與之配套的設(shè)備(例如通信和存儲(chǔ)系統(tǒng)),還包含冗余的數(shù)據(jù)通信連接、環(huán)境控制設(shè)備、監(jiān)控設(shè)置以及各種安全裝置。6虛擬化與云計(jì)算的關(guān)系? 虛擬化技術(shù)以及各種計(jì)算機(jī)科學(xué)概念,如效用計(jì)算、SOA等,的發(fā)展和商業(yè)實(shí)現(xiàn)打開了云計(jì)算的大門,而云計(jì)算本質(zhì)上說應(yīng)該就是虛擬化服務(wù)。從虛擬化和云計(jì)算的過程,我們實(shí)現(xiàn)了跨系統(tǒng)的資源調(diào)度,將大量的計(jì)算機(jī)資源組成資源池,用于動(dòng)態(tài)地創(chuàng)建高度虛擬化的資源提供給用戶,從而最終實(shí)現(xiàn)應(yīng)用、數(shù)據(jù)、IT資源以服務(wù)的方式通過網(wǎng)絡(luò)提供給客戶??梢哉f云計(jì)算是虛擬化的最高境界,虛擬化是云計(jì)算的底層結(jié)構(gòu)。補(bǔ)充:1虛擬化的典型類型?eq\o\ac(○,1)基礎(chǔ)設(shè)施虛擬化eq\o\ac(○,2)系統(tǒng)虛擬化eq\o\ac(○,3)軟件虛擬化2虛擬化的目的eq\o\ac(○,1)對象脫離原有環(huán)境eq\o\ac(○,2)在計(jì)算機(jī)上被表示eq\o\ac(○,3)通過計(jì)算機(jī)控制按需獲取第五講:OpenStack1AWS模式是什么,有什么優(yōu)點(diǎn)? AmazonWebServices(AWS) 模式:用戶應(yīng)用使用IaaS基礎(chǔ)IT資源,將PaaS和通用服務(wù)作為應(yīng)用架構(gòu)中的組件來構(gòu)建自己的服務(wù) 特點(diǎn):通過WebService接口開放數(shù)據(jù)和功能;一切以服務(wù)實(shí)現(xiàn);通過SOA框架使系統(tǒng)達(dá)到松耦合。2IaaS模式核心需求有哪些? 云擁有者:配置和操作基礎(chǔ)架構(gòu);服務(wù)的提供者:注冊云服務(wù)、查看服務(wù)的使用情況;查看服務(wù)的計(jì)算情況;服務(wù)的使用者:創(chuàng)建和存儲(chǔ)自定義的鏡像、啟動(dòng)監(jiān)控和終止實(shí)例。3Openstack都包含哪些核心項(xiàng)目,作用是什么? Nova(計(jì)算)、Swift(對象存儲(chǔ))、Glance(鏡像)、Keystone(身份)、Dashboard(自助門戶)、Quantum(網(wǎng)絡(luò)連接)、Cinder(塊存儲(chǔ)服務(wù))。4鏡像和實(shí)例有什么區(qū)別和聯(lián)系?鏡像:固定搭配實(shí)例:固定搭配的一個(gè)實(shí)例鏡像的存在便于對大量實(shí)例的管理,如歸類、縮短選擇時(shí)間、計(jì)費(fèi)等5Nova有哪些核心模塊,工作過程是什么? Nova是一套控制器,用于為單個(gè)用戶或使用群組啟動(dòng)虛擬機(jī)實(shí)例。將提供預(yù)制的鏡像或是為用戶創(chuàng)建的鏡像提供存儲(chǔ)機(jī)制,這樣用戶就能夠?qū)㈢R像以虛擬機(jī)的形式啟動(dòng)。 Nova—api:負(fù)責(zé)接收和響應(yīng)終端用戶有關(guān)虛擬機(jī)計(jì)算和云硬盤存儲(chǔ)的請求,是整個(gè)Nova的入口。 Nova—compute:主要的執(zhí)行守護(hù)進(jìn)程,職責(zé)是基于各種虛擬化技術(shù)實(shí)現(xiàn)創(chuàng)建和終止虛擬機(jī)。整合了CPU/內(nèi)存、存儲(chǔ)和網(wǎng)絡(luò)三類資源部署管理虛擬機(jī),實(shí)現(xiàn)計(jì)算能力的交付. Nova-volumn:職責(zé)是創(chuàng)建、掛載和卸載持久化的磁盤虛擬機(jī)。 Nova—network:職責(zé)是實(shí)現(xiàn)網(wǎng)絡(luò)資源池的管理. Nova-schedule:職責(zé)是調(diào)度虛擬機(jī)在哪個(gè)物理宿主機(jī)上部署。 AMQP消息中間件:實(shí)現(xiàn)服務(wù)接口與實(shí)現(xiàn)解耦以及子系統(tǒng)之間的通信.通過HTTP協(xié)議,采用REST風(fēng)格實(shí)現(xiàn)接口定義和響應(yīng),發(fā)送執(zhí)行消息指令至隊(duì)列,由具體的訂閱實(shí)現(xiàn)模塊執(zhí)行指令.6Keystone權(quán)限控制過程是什么? User:用戶,就是一個(gè)人的賬號(hào) Credential:用來證明用戶身份的證據(jù) Authentication:鑒權(quán),也即對用戶身份鑒別的一個(gè)過程。 Token:令牌。對用戶鑒權(quán)完畢之后,Keystone會(huì)為用戶頒發(fā)一個(gè)令牌,這樣用戶在請求其他服務(wù)的時(shí)候,只需要亮出自己的令牌即可,而不需要發(fā)送自己的密鑰.當(dāng)然以防仿冒令牌,令牌是有時(shí)限的。 Service:服務(wù),Keystone提供了系統(tǒng)能夠提供的服務(wù)目錄,例如Nova,Glance,Swift等。 Endpoint:直譯為端點(diǎn),其實(shí)指的是要訪問的服務(wù)的地址.如果細(xì)分的話,又可以進(jìn)一步分為對外提供服務(wù)的地址,管理地址等。 Role:即賦予該用戶的權(quán)限,Openstack提供的是一個(gè)多租戶環(huán)境,在Openstack中租戶對應(yīng)到項(xiàng)目(Project)。一個(gè)用戶可以同時(shí)屬于多個(gè)不同的項(xiàng)目,當(dāng)然在不同的項(xiàng)目中可以充當(dāng)不同的角色,也即擁有不同的權(quán)限。 關(guān)鍵的兩點(diǎn):1)User從Keystone獲取令牌以及服務(wù)列表;2)User訪問服務(wù)時(shí),亮出自己的令牌,相關(guān)的服務(wù)向Keystone求證令牌的合法性。7Quantum原理是什么? 實(shí)現(xiàn)網(wǎng)絡(luò)連接管理,解決網(wǎng)絡(luò)虛擬化問題。8Swift的核心概念有哪些?–Object:對象。基本的存儲(chǔ)實(shí)體,所有數(shù)據(jù)按照對象進(jìn)行存儲(chǔ).–Container:容器。對象的裝載體,組織數(shù)據(jù)的方式,存儲(chǔ)的隔間,類似于文件夾,但不能嵌套,object存儲(chǔ)于container中。–Account:賬戶。權(quán)限單位,account擁有若干container.9Swift的組件有哪些,都有什么作用? ProxyServer:提供SwiftAPI的服務(wù)器進(jìn)程,負(fù)責(zé)Swift其余組件間的相互通信 StorageServer:提供了磁盤設(shè)備上的存儲(chǔ)服務(wù) ConsistencyServer:查找并解決由數(shù)據(jù)損壞和硬件故障引起的錯(cuò)誤,包含Auditor、Updater和Replicator Ring:用于記錄存儲(chǔ)對象和物理位置間的映射關(guān)系10Ring算法思想是什么? 一致性哈希算法:Swift利用一致性哈希算法構(gòu)建了一個(gè)冗余的可擴(kuò)展的分布式對象存儲(chǔ)集群。Swift采用一致性哈希的主要目的是在改變集群的Node數(shù)量時(shí),能夠盡可能少地改變已存在Key和Node的映射關(guān)系。該算法的思路分為以下三個(gè)步驟。首先計(jì)算每個(gè)節(jié)點(diǎn)的哈希值,并將其分配到一個(gè)0~2^32的圓環(huán)區(qū)間上。其次使用相同方法計(jì)算存儲(chǔ)對象的哈希值,也將其分配到這個(gè)圓環(huán)上。隨后從數(shù)據(jù)映射到的位置開始順時(shí)針查找,將數(shù)據(jù)保存到找到的第一個(gè)節(jié)點(diǎn)上。如果超過2^32仍然找不到節(jié)點(diǎn),就會(huì)保存到第一個(gè)節(jié)點(diǎn)上。Replica。 Zone:把集群的Node分配到每個(gè)Zone中,其中同一個(gè)Partition的Replica不能同時(shí)放在同一個(gè)Node上或同一個(gè)Zone內(nèi)。 Weight:未來添加存儲(chǔ)能力更大的Node時(shí),分配到更多的Partition。11Quorum協(xié)議的內(nèi)容是什么? 在分布式存儲(chǔ)系統(tǒng)中用于控制一致性級(jí)別的一種策略。 N=numbersofnodesthatstoredata(同一份數(shù)據(jù)的Replica的份數(shù)) W=numberofsuccessfulwritesinaputrequest(更新一個(gè)數(shù)據(jù)對象時(shí)需要確保成功更新的份數(shù)) R=numberofsuccessfulreadsinagetrequest(讀取數(shù)據(jù)時(shí)需要讀取的Replica的份數(shù)) W+R〉NW>N/2(常用:N=3、w=R=2)第六講:云存儲(chǔ)1大規(guī)模數(shù)據(jù)存儲(chǔ)面臨的新問題與挑戰(zhàn)–成本問題–容量問題–可靠問題–使用問題2GFS體系結(jié)構(gòu) Client:GFS提供給應(yīng)用程序的庫文件形式訪問接口;Master:GFS的管理節(jié)點(diǎn),邏輯上只有一個(gè),保存系統(tǒng)元數(shù)據(jù);ChunkServer:GFS的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),大小固定(64MB)。采用中心服務(wù)器模式,不緩存數(shù)據(jù),在用戶態(tài)下實(shí)現(xiàn),提供專用的訪問接口。 Master節(jié)點(diǎn)任務(wù):存儲(chǔ)元數(shù)據(jù);文件系統(tǒng)目錄管理與加鎖;與ChunkServer進(jìn)行周期性通信;數(shù)據(jù)塊創(chuàng)建、復(fù)制與負(fù)載均衡;垃圾回收;陳舊數(shù)據(jù)塊刪除。3GFS的容錯(cuò)機(jī)制eq\o\ac(○,1)Master容錯(cuò)–三類元數(shù)據(jù):命名空間(目錄結(jié)構(gòu))、Chunk與文件名的映射以及Chunk副本的位置信息.–前兩類通過日志提供容錯(cuò),Chunk副本信息存儲(chǔ)于ChunkServer,Master出現(xiàn)故障時(shí)可恢復(fù).eq\o\ac(○,2)ChunkServer容錯(cuò)–每個(gè)Chunk有多個(gè)存儲(chǔ)副本(通常是3個(gè)),分別存儲(chǔ)于不通的服務(wù)器上。–每個(gè)Chunk又劃分為若干Block(64KB),每個(gè)Block對應(yīng)一個(gè)32bit的校驗(yàn)碼,保證數(shù)據(jù)正確(若某個(gè)Block錯(cuò)誤,則轉(zhuǎn)移至其他Chunk副本).4Paxos協(xié)議 分布式環(huán)境下保持一致性的協(xié)議。–決議(value)只有在被proposers提出后才能被批準(zhǔn),未經(jīng)批準(zhǔn)的決議稱為“提案(proposal)”.–在一次Paxos算法的執(zhí)行實(shí)例中,只批準(zhǔn)(chosen)一個(gè)value。–learners只能獲得被批準(zhǔn)(chosen)的value。5Chubby鎖機(jī)制 Chubby是Google為解決分布式一致性問題而設(shè)計(jì)的提供粗粒度鎖服務(wù)的文件系統(tǒng).Chubby系統(tǒng)本質(zhì)上就是一個(gè)分布式的、存儲(chǔ)大量小文件的文件系統(tǒng).Chubby中的鎖就是文件,創(chuàng)建文件就是進(jìn)行加鎖操作.用戶通過打開、關(guān)閉和存取文件,獲取共享鎖或獨(dú)占鎖,并且通過通信機(jī)制,向用戶發(fā)送更新信息.6Chubby的通信協(xié)議 操作的允許授權(quán)是通過限時(shí)的、倒計(jì)時(shí)“租期”系統(tǒng)來處理的。7Bigtable數(shù)據(jù)結(jié)構(gòu)–分布式多維映射表–通過行關(guān)鍵字+列關(guān)鍵字+時(shí)間戳進(jìn)行索引–Bigtable對存儲(chǔ)的數(shù)據(jù)不做解析,看做字符串,具體數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)需要用戶自行處理–每行數(shù)據(jù)有一個(gè)可排序的關(guān)鍵字和任意列項(xiàng);–可將多個(gè)列歸并為一組,稱為“族”,同一個(gè)族的數(shù)據(jù)被壓縮在一起保存。–邏輯上的表被劃分成若干子表,每個(gè)子表存儲(chǔ)了table的一部分行(每個(gè)子表由多個(gè)SSTable文件組成,SSTable文件存儲(chǔ)在GFS上)8Bigtable優(yōu)化機(jī)制eq\o\ac(○,1)局部性群組–根據(jù)需要,將原本不存儲(chǔ)在一起的數(shù)據(jù),以列族為單位存儲(chǔ)至單獨(dú)的子表。eq\o\ac(○,2)布隆過濾器–判斷某個(gè)元素是否隸屬于集合。eq\o\ac(○,3)合并壓縮–合并壓縮操作讀取多個(gè)SSTable,創(chuàng)建一個(gè)新的SSTable來保持其中的最新數(shù)據(jù)。9云存儲(chǔ)應(yīng)用的特點(diǎn) 通用的設(shè)備支持;數(shù)據(jù)同步與共享;任意格式/大小文件;免費(fèi)+付費(fèi)。第七講:MapReduce算法原理1Mapreduce算法的架構(gòu) 每個(gè)mapreduce任務(wù)都被初始化為一個(gè)job,每個(gè)job分為兩個(gè)階段,實(shí)現(xiàn)了Map和Reduce兩個(gè)功能: Map:把一個(gè)函數(shù)應(yīng)用于集合中所有成員,然后返回一個(gè)基于這個(gè)處理的結(jié)果集。 Reduce:對結(jié)果集進(jìn)行分類和歸納。2Wordcount算例eq\o\ac(○,1)自動(dòng)分割文本.eq\o\ac(○,2)分割后的每一對〈key,value〉進(jìn)行用戶定義的map處理,生成新的〈key,value>對。eq\o\ac(○,3)系統(tǒng)自動(dòng)對輸出結(jié)果集歸攏排序,傳給reduce。eq\o\ac(○,4)通過reduce生成最后結(jié)果。3Hadoop執(zhí)行MR的過程eq\o\ac(○,1)master節(jié)點(diǎn)運(yùn)行jobTracker實(shí)例,接收客戶端job請求,一個(gè)job是對一個(gè)數(shù)據(jù)集的處理,slave節(jié)點(diǎn)運(yùn)行TaskTracker實(shí)例,一個(gè)task是一次map或者reduce處理過程.eq\o\ac(○,2)MR程序由一個(gè)jar文件和一個(gè)xml文件組成,jar包含程序代碼,xml包含程序配置操作。eq\o\ac(○,3)客戶端設(shè)定配置之后,交job,將job數(shù)據(jù)發(fā)送到j(luò)obTracker的文件系統(tǒng)中,Mapreduce庫會(huì)把所輸入文件分割成M塊,放到不同的datanote上。 eq\o\ac(○,4)JobTracker將job放入隊(duì)列進(jìn)行調(diào)度,并把jar和配置文件放到共享空間 eq\o\ac(○,5)Hadoop有一個(gè)機(jī)器內(nèi)進(jìn)程間操作通信的機(jī)制,taskTracker周期性告訴jobTracker工作狀態(tài),如果空,job給task分配任務(wù),開一個(gè)進(jìn)程處理。eq\o\ac(○,6)MR程序被傳送到各個(gè)數(shù)據(jù)所在的HDFS的datanote上運(yùn)行,mapper被輸送到數(shù)據(jù)節(jié)點(diǎn)上進(jìn)行計(jì)算,中間結(jié)果被輸送到reducer上進(jìn)行計(jì)算,Reducer將計(jì)算結(jié)果分布式保存到HDFS。 eq\o\ac(○,7)當(dāng)所有map和reduce任務(wù)完成時(shí),master會(huì)喚醒用戶程序,通知任務(wù)完成,再取執(zhí)行新的任務(wù)。4MR算法執(zhí)行過程中的數(shù)據(jù)流轉(zhuǎn)過程eq\o\ac(○,1)用戶文件上傳到HDFS,由mapreduce庫切割分別存儲(chǔ)到datanote上 eq\o\ac(○,2)以行號(hào),文本形式傳入map中,經(jīng)過自定義map處理產(chǎn)生<key,value〉對,構(gòu)成中間結(jié)果集緩存在本地內(nèi)存中。eq\o\ac(○,3)reducer接到master的收集中間結(jié)果集任務(wù)后,通過遠(yuǎn)程調(diào)用讀取中間結(jié)果,并將其排序,key相同的value進(jìn)行合并處理化簡。 eq\o\ac(○,4)最終結(jié)果寫入到GFS文件系統(tǒng)中 補(bǔ)充:1什么是MapReduce?eq\o\ac(○,1)一個(gè)軟件架構(gòu),是一種處理海量數(shù)據(jù)的并行編程模式;eq\o\ac(○,2)用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并行運(yùn)算;eq\o\ac(○,3)MapReduce實(shí)現(xiàn)了Map和Reduce兩個(gè)功能:–Map把一個(gè)函數(shù)應(yīng)用于集合中的所有成員,然后返回一個(gè)基于這個(gè)處理的結(jié)果集–Reduce對結(jié)果集進(jìn)行分類和歸納–Map()和Reduce()兩個(gè)函數(shù)可能會(huì)并行運(yùn)行,即使不是在同一的系統(tǒng)的同一時(shí)刻2MapReduce的優(yōu)化?–任務(wù)備份機(jī)制–本地處理–跳過有問題的記錄3MapReduce中的術(shù)語? job:MapReduce的一整個(gè)過程 task:在一個(gè)job中,每個(gè)mapper和每個(gè)reducer做的事情 taskattempt:運(yùn)行一個(gè)task。 主節(jié)點(diǎn)運(yùn)行JobTracker實(shí)例,它接受來自客戶端的工作要求。JobTracker的主要功能包括: eq\o\ac(○,1)作業(yè)控制:在hadoop中每個(gè)應(yīng)用程序被表示成一個(gè)作業(yè),每個(gè)作業(yè)又被分成多個(gè)任務(wù),JobTracker的作業(yè)控制模塊則負(fù)責(zé)作業(yè)的分解和狀態(tài)監(jiān)控。 eq\o\ac(○,2)資源管理。 taskTracker實(shí)例運(yùn)行在slave節(jié)點(diǎn).TaskTracker的功能包括: eq\o\ac(○,1)匯報(bào)心跳:Tracker周期性將所有節(jié)點(diǎn)上各種信息通過心跳機(jī)制匯報(bào)給JobTracker. eq\o\ac(○,2)執(zhí)行命令:JobTracker會(huì)給TaskTracker下達(dá)各種命令,主要包括:啟動(dòng)任務(wù)(LaunchTaskAction)、提交任務(wù)(CommitTaskAction)、殺死任務(wù)(KillTaskAction)、殺死作業(yè)(KillJobAction)和重新初始化(TaskTrackerReinitAction)。第八講:MapReduce算法應(yīng)用1Mapreduce算法設(shè)計(jì)思想 任務(wù)的分解與結(jié)果的匯總。2運(yùn)用mapreduce算法解決實(shí)際問題eq\o\ac(○,1)詞頻: WordCount基礎(chǔ)上map函數(shù)中,加入〈*,num〉鍵值對,一次mapreduce過程得到每個(gè)詞出現(xiàn)的個(gè)數(shù)及總數(shù) eq\o\ac(○,2)invertedindex(若干文本文件->倒排索引結(jié)果): map輸出:〈{token,fileID},one〉 combiner 輸出:<{token,fileID},sum〉 reduce 輸出:<key,value〉 = 〈word,articleId:num〉 eq\o\ac(○,3)計(jì)算文本相似度: —進(jìn)行倒排索引 —計(jì)算兩兩文章對的相似性 map:同一個(gè)詞對應(yīng)的文章鏈表中,兩兩文章構(gòu)成一組<{article1,article2},num〉 reduce:進(jìn)行收集 —統(tǒng)計(jì)文章相似度 3算法調(diào)優(yōu) 給shuffle過程盡可能多的內(nèi)存空間;Map和Reduce函數(shù)盡量少用內(nèi)存;運(yùn)行Map和Reduce任務(wù)的JVM的內(nèi)存盡量大;Map端盡量估算Map輸入的大小,減少溢出寫磁盤的次數(shù);Reduce端的中間數(shù)據(jù)盡可能的多駐留在內(nèi)存;增加Hadoop的文件緩沖區(qū)。4Mapreduce運(yùn)行過程中的各種參數(shù)及其作用 緩沖區(qū)大小(100MB);緩沖區(qū)容量閾值(0。8);最多合并流數(shù)(10);溢出寫次數(shù)最小值(3);壓縮標(biāo)志(false);壓縮方式;TaskTracker的工作線程數(shù)(40);Reduce任務(wù)復(fù)制線程(5);Reduce獲取一個(gè)Map輸出最大時(shí)間(300s);Map輸出內(nèi)存緩沖區(qū)占堆空間的百分比(0.7);緩沖區(qū)溢出閾值(0.66);Map輸出閾值(1000);合并因子(10);輸入內(nèi)存閾值(0.0);Hadoop文件緩沖區(qū)(4KB)5參數(shù)調(diào)優(yōu) 將map輸出作為輸入傳給reducer,確保每個(gè)reducer的輸入都按鍵排序的過程叫shuffle,shuffle是調(diào)優(yōu)的重點(diǎn)。eq\o\ac(○,1)Map —產(chǎn)生輸出時(shí),通過緩沖寫入內(nèi)存:緩沖區(qū)大小,容量閾值,指定路徑 —按照要傳送到的reducer對數(shù)據(jù)進(jìn)行partirion,每個(gè)partition內(nèi)部按照key進(jìn)行鍵內(nèi)排序:合并流數(shù); —壓縮map輸出效率更高:壓縮標(biāo)志;壓縮方式 —reducer通過http方式從map處得到輸出文件分區(qū),分區(qū)的工作線程數(shù)由tasktracker控制:工作線程數(shù)(tracker.http。threads) eq\o\ac(○,2)Reduce -只要一個(gè)map任務(wù)完成,reduce任務(wù)就開始復(fù)制其輸出:復(fù)制線程數(shù);獲取map最大時(shí)間 -若map輸出小,復(fù)制到內(nèi)存中;否則先寫入到內(nèi)存緩沖區(qū),達(dá)到閾值后寫到磁盤:內(nèi)存緩沖區(qū)占堆空間百分比;溢出閾值;map輸出閾值; —后臺(tái)線程根據(jù)合并因子將其合并成更大的排好序的文件:合并因子 -reduce開始時(shí),內(nèi)存中map輸出大小不能超過輸入內(nèi)存閾值,以便為reduce?供盡可能多的內(nèi)存:輸入內(nèi)存閾值 —輸出結(jié)果寫入HDFS系統(tǒng):hadoop文件緩沖區(qū)大小 6案例的mapreduce算法第九講:Hadoop1Hadoop項(xiàng)目的由來 起源于一個(gè)開源的網(wǎng)絡(luò)搜索引擎項(xiàng)目Apache Nutch,借鑒GFS,實(shí)現(xiàn)了一個(gè)開源的實(shí)現(xiàn)HDFS,05年nutch上實(shí)現(xiàn)了一個(gè)mapreduce系統(tǒng),完成了所有主要算法的mapreduce+HDFS移植。2HDFS的體系結(jié)構(gòu) 采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群是由一個(gè)NameNode和若干DataNode組成,其中NameNode作為主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端對文件的訪問操作。DataNode管理存儲(chǔ)的數(shù)據(jù)。 HDFS允許用戶以文件的形式存儲(chǔ)數(shù)據(jù),文件被分成若干個(gè)數(shù)據(jù)塊,而且這若干個(gè)數(shù)據(jù)塊存放在一組DataNode上.NameNode是整個(gè)HDFS的核心,它通過維護(hù)一些數(shù)據(jù)結(jié)構(gòu)來記錄每一個(gè)文件被分割成了多少個(gè)塊、這些塊可以從哪些DataNode中獲得,以及各個(gè)DataNode的狀態(tài)等重要信息。NameNode 執(zhí)行文件系統(tǒng)的命名空間操作,如打開、關(guān)閉、重命名文件或目錄等,也負(fù)責(zé)數(shù)據(jù)塊到具體DataNode的映射.DataNode負(fù)責(zé)處理文件系統(tǒng)客戶端的文件讀寫操作,并在 NameNode 的統(tǒng)一調(diào)度下進(jìn) 行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制操作。3HDFS的運(yùn)行機(jī)制eq\o\ac(○,1)可靠性保障: 冗余機(jī)制——數(shù)據(jù)復(fù)制 故障檢測——datanode(心跳包,塊報(bào)告,數(shù)據(jù)完整性監(jiān)測)namenode(日志和鏡像)eq\o\ac(○,2)讀文件流程: –客戶端調(diào)用DistributedFileSystem對象的open()方法–DistributedFileSystem通過RPC聯(lián)系namenode,得到所有數(shù)據(jù)塊信息,對每個(gè)數(shù)據(jù)塊,namenode返回存有該塊副本的datanode地址,并且這些datanode根據(jù)他們與客戶端的距離進(jìn)行排序–DistributedFileSystem類返回一個(gè)FSDataInputStream對象給客戶端并讀取數(shù)據(jù)–客戶端對該對象調(diào)用read()方法讀取數(shù)據(jù)–FSDataInputStream連接距離最近的datanode讀取數(shù)據(jù),數(shù)據(jù)讀取完畢時(shí)FSDataInputStream會(huì)關(guān)閉與該datanode的連接,然后尋找下一個(gè)塊的datanode–FSDataInputStream可能并行讀取多個(gè)datanode,當(dāng)客戶端完成讀取時(shí),對FSDataInputStream調(diào)用close()方法—FSDataInputStream從datanode讀取數(shù)據(jù)時(shí)如果遇到錯(cuò)誤,會(huì)嘗試從該塊的另外一個(gè)最近的datanode讀取數(shù)據(jù),并記住故障datanode保證以后不會(huì)繼續(xù)從該節(jié)點(diǎn)讀取其他塊–每個(gè)讀取的塊通過校驗(yàn)和確認(rèn)以保證數(shù)據(jù)完整–如果FSDataInputStream發(fā)現(xiàn)一個(gè)損壞的塊,則在從其他datanode讀取塊之前通知namenodeeq\o\ac(○,3)寫文件流程: –客戶端調(diào)用DistributedFileSystem對象的create()方法創(chuàng)建文件–DistributedFileSystem通過RPC聯(lián)系namenode,namenode執(zhí)行各種檢查確保待建立的文件不存在,且客戶端擁有創(chuàng)建該文件的權(quán)限–如果檢查通過,namenode為新文件創(chuàng)建一條記錄,否則拋出一個(gè)IOException異常–DistributedFileSystem給客戶端返回一個(gè)FSDataOutputStream對象進(jìn)行寫數(shù)據(jù)–FSDataOutputStream將待寫入數(shù)據(jù)分成數(shù)據(jù)包并寫入內(nèi)部隊(duì)列dataqueue–DataStreamer處理dataqueue,根據(jù)datanode列表要求namenode分配適合的新塊來存儲(chǔ)數(shù)據(jù)備份–namenode分配的數(shù)據(jù)備份datanode(通常3個(gè))形成一個(gè)管線,DataStreamer將數(shù)據(jù)包傳輸給管線中的第一個(gè)節(jié)點(diǎn),然后該節(jié)點(diǎn)存儲(chǔ)完之后發(fā)送給第二個(gè)節(jié)點(diǎn),以此類推–FSDataOutputStream維護(hù)一個(gè)確認(rèn)隊(duì)列ackqueue,當(dāng)收到管線中所有datanode的確認(rèn)后,該數(shù)據(jù)包從確認(rèn)隊(duì)列中刪除–如果datanode發(fā)生故障,則關(guān)閉管線,將確認(rèn)隊(duì)列中的數(shù)據(jù)包添加回?cái)?shù)據(jù)隊(duì)列的最前端,將故障的數(shù)據(jù)塊和datanode信息返回給namenode以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年哈爾濱電力職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫必考題
- 2025至2030年中國氟苯乙考粉數(shù)據(jù)監(jiān)測研究報(bào)告
- -教科版高中信息技術(shù)選修3教學(xué)設(shè)計(jì)-2.2.2 IP 地址的管理
- 2025至2030年中國板式輸送機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 江蘇省南京、鎮(zhèn)江、徐州等十校2024-2025學(xué)年高一上學(xué)期12月聯(lián)考地理試題(解析版)
- 第三單元課外古詩詞誦讀《晚春》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語文七年級(jí)下冊
- 浙教版信息技術(shù)五年級(jí)上冊《第1課 身邊的算法》教學(xué)設(shè)計(jì)
- 湖南省永州市2024-2025學(xué)年高三上學(xué)期第一次模擬考試地理試題(解析版)
- 湖南省衡陽市衡南縣2024-2025學(xué)年高一上學(xué)期期末考試地理試題(A)(解析版)
- 機(jī)器學(xué)習(xí)原理與應(yīng)用課件 第9章 K均值聚類
- 初中英語 滬教牛津版 9A U7-1 Reading Tom Sawyer paints the fence 課件
- 騙提個(gè)人住房公積金檢討書
- 監(jiān)控系統(tǒng)維保方案計(jì)劃及報(bào)價(jià)
- 無線通信與網(wǎng)絡(luò)復(fù)習(xí)資料
- ABCD2評分量表(TIA早期卒中風(fēng)險(xiǎn)預(yù)測工具)
- E-learning平臺(tái)使用手冊(培訓(xùn)管理員版)
- 自動(dòng)化物料編碼規(guī)則
- 人教版小學(xué)數(shù)學(xué)五年級(jí)下冊教材分析
- 小學(xué)音樂教材分析
- 委托收款三方協(xié)議
- 黃岡市2021-2022高一上學(xué)期期末考試數(shù)學(xué)試題及答案
評論
0/150
提交評論