




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一講:云計算概述1什么是云計算?云計算是一種能夠?qū)討B(tài)伸縮的虛擬化資源通過互聯(lián)網(wǎng)以服務(wù)的方式提供給用戶的計算模式。根據(jù)云提供的服務(wù)類型,可以劃分為基礎(chǔ)設(shè)施云、平臺云、應(yīng)用云。根據(jù)云的服務(wù)方式,可以劃分為公有云、私有云、混合云。2云計算的優(yōu)勢?。優(yōu)化產(chǎn)業(yè)布局一成本關(guān)鍵由硬件成本轉(zhuǎn)為電力成本、散熱成本- 分散的、高能耗模式轉(zhuǎn)變?yōu)榧械?、資源友好的模式- 自給自足資源作坊轉(zhuǎn)變?yōu)橐?guī)模效應(yīng)的工業(yè)化資源工廠推進(jìn)專業(yè)分工- 專業(yè)的大型云計算廠商- 實力雄厚的科研技術(shù)團(tuán)隊推動硬件技術(shù)革新- 具有豐富知識和經(jīng)驗的維護(hù)管理團(tuán)隊和配套軟件- 產(chǎn)業(yè)鏈中的新產(chǎn)業(yè)契機(jī)提升資源利用率- 更加高效的解決常規(guī)業(yè)務(wù)- 更好的應(yīng)
2、對突發(fā)任務(wù)或事件- 更加平衡的資源分配和負(fù)載減少初期投資- 更少的IT基礎(chǔ)設(shè)施投入- 更少的軟件投入- 更少的人力投入- 更短的培訓(xùn)周期- 更靈活的轉(zhuǎn)型支持降低管理開銷- 服務(wù)化管理- 無需自己建立維護(hù)管理團(tuán)隊- 隨需應(yīng)變的解決方案- 知識、經(jīng)驗更加豐富的管理隊伍- 通過業(yè)務(wù)模塊的可配置提高系統(tǒng)的靈活性3云計算的動因?。芯片與硬件技術(shù)- 硬件能力的激增、成本的大幅下降,使得獨立運(yùn)作的公司集中客觀的硬件能力實現(xiàn)規(guī)模效益成為可能資源虛擬化- 資源在云端,需要被統(tǒng)一的管理- 異構(gòu)硬件、兼容性問題- 虛擬化技術(shù)。3應(yīng)用需求面向服務(wù)的架構(gòu)SOA- 開放式數(shù)據(jù)模型- 統(tǒng)一通信標(biāo)準(zhǔn)- 更加豐富的服務(wù)- 更加
3、松散耦合、靈活的IT架構(gòu)- 轉(zhuǎn)變了人們對IT系統(tǒng)的認(rèn)識軟件即服務(wù)SaaS- 轉(zhuǎn)變了人們使用服務(wù)的方式使得終端用戶熟悉服務(wù)的交互模式- 改變了IT界的商業(yè)模式- 實力雄厚的大公司負(fù)責(zé)基礎(chǔ)設(shè)施,小企業(yè)通過創(chuàng)新挖掘充滿潛力的市場- “長尾理論”互聯(lián)網(wǎng)技術(shù)- 基礎(chǔ)設(shè)施- 多種接入方式- 更加廣闊的覆蓋- 帶寬和可靠性得到大幅提升- 使得IT新模式的穩(wěn)定性、可靠性、安全性、可用性、靈活性、可管理性、自動化程度、節(jié)能環(huán)保等得到保障Web2.0技術(shù)- 用戶從信息的獲得者變成信息的貢獻(xiàn)者- 博客(微博)、內(nèi)容聚合、百科全書(Wiki)、社交網(wǎng)絡(luò)、對等網(wǎng)絡(luò)(P2P)- 富互聯(lián)網(wǎng)應(yīng)用(RichInternetAp
4、plication)成為網(wǎng)絡(luò)應(yīng)用發(fā)展的趨勢- 改變了人們的生活方式- 為云計算提出了內(nèi)在需求4查找資料:業(yè)界主流的云計算產(chǎn)品典型的云計算應(yīng)用補(bǔ)充:1云計算特征是什么?硬件和軟件都是資源資源可以根據(jù)需要進(jìn)行動態(tài)擴(kuò)展與配置按用計費(fèi)、無需管理物理上分布式共享,邏輯上以單一整體呈現(xiàn)2云計算的發(fā)展歷程?C1超級計算機(jī)集群計算分布式計算網(wǎng)格計算效用計算云計算第二講:云服務(wù)1云服務(wù)的基本層次?云計算的基本層次分為三層,依次為IaaS,PaaS和SaaSIaaS(架構(gòu)即服務(wù)),提供了核心計算資源和網(wǎng)絡(luò)架構(gòu)的服務(wù)?;A(chǔ)設(shè)施棧包括操作系統(tǒng)訪問、防火墻、路由和負(fù)載平衡。示例產(chǎn)品:Flexiscale和AmazonE
5、C2PaaS(平臺即服務(wù))提供平臺給系統(tǒng)管理員和開發(fā)人員,令其可以基于平臺構(gòu)建、測試及部署定制應(yīng)用程序。也降低了管理系統(tǒng)的成本。典型服務(wù)包括StorageDatabaseScalability。示例產(chǎn)品:GoogleAppEngine、AWS:S3MicrosoftAzure。SaaS(軟件即服務(wù))通過Internet提供軟件的模式,用戶向提供商租用基于Web的軟件來管理企業(yè)經(jīng)營活動,且無需對軟件進(jìn)行維護(hù),服務(wù)提供商會全權(quán)管理和維護(hù)軟件。示例產(chǎn)品:GoogleDocs、CRMFinancialPlanning、HumanResourcesWordProcessing等。2IaaS的基本功能?O
6、資源抽象資源監(jiān)控負(fù)載管理0數(shù)據(jù)管理資源部署安全管理計費(fèi)管理3PaaS的基本功能?O開發(fā)平臺C2運(yùn)行時環(huán)境運(yùn)營環(huán)境補(bǔ)充:1 IaaS服務(wù)流程?規(guī)劃階段-部署階段-運(yùn)行階段2 PaaS實現(xiàn)步驟?O總體設(shè)計開發(fā)平臺運(yùn)行環(huán)境為運(yùn)營環(huán)境3 云平臺上開發(fā)應(yīng)用的優(yōu)勢?-提供高級編程接口,簡單易用,縮短編程人員上手時間-應(yīng)用的開發(fā)與運(yùn)行基于相同的平臺,兼容性問題較少開發(fā)者無需考慮應(yīng)用的可伸縮性、服務(wù)容量問題- 平臺層的運(yùn)營管理功能還能夠幫助開發(fā)人員對應(yīng)用進(jìn)行監(jiān)控和計費(fèi)4應(yīng)用層的特征?- 網(wǎng)絡(luò)訪問模式- 租用付費(fèi)- 高度整合第四講:虛擬化1虛擬化的概念?虛擬化是表示計算機(jī)資源的抽象方法,通過虛擬化可以用與訪問抽
7、象前資源一致的方法來訪問抽象后的資源。這種資源的抽象方法并不受實現(xiàn)、地理位置或底層資源的物理配置限制。(wiki)2服務(wù)器虛擬化的特性?多實例- 一個物理服務(wù)器上可以運(yùn)行多個虛擬服務(wù)器- 支持多個客戶操作系統(tǒng)- 物理系統(tǒng)資源以可控的方式分配給虛擬機(jī)隔離性- 虛擬機(jī)之間完全隔離- 一個虛擬機(jī)的崩潰不會對其他虛擬機(jī)造成影響- 虛擬機(jī)之間的數(shù)據(jù)相對獨立,不會泄露- 虛擬機(jī)之間如果需要互相訪問,方式等同于獨立物理服務(wù)器之間的互相訪問封裝性硬件無關(guān)對外表現(xiàn)為單一的邏輯實體- 一個虛擬機(jī)可以方便的在不同硬件之間復(fù)制、移動- 將不同訪問方式的硬件封裝成統(tǒng)一標(biāo)準(zhǔn)化的虛擬硬件設(shè)備,保證了虛擬機(jī)的兼容性高性能-
8、可通過擴(kuò)展獲得“無限”的性能- 虛擬化抽象層需要一定管理開銷3服務(wù)器虛擬化的關(guān)鍵技術(shù)?計算虛擬化- CPU虛擬化- 計算負(fù)載的動態(tài)分配- 能耗管理CD存儲虛擬化- 內(nèi)存虛擬化- 磁盤存儲動態(tài)分配設(shè)備與I/O虛擬化- 軟件方式實現(xiàn)- 統(tǒng)一、標(biāo)準(zhǔn)化的接口- 操作指令轉(zhuǎn)譯實時遷移技術(shù)-將整個虛擬機(jī)的運(yùn)行狀態(tài)完整、快速地從原宿主機(jī)的硬件平臺轉(zhuǎn)移到新的宿主機(jī)硬件平臺。4創(chuàng)建虛擬化解決方案的步驟?創(chuàng)建虛擬化解決方案部署虛擬化解決方案管理虛擬化解決方案5什么是數(shù)據(jù)中心?數(shù)據(jù)中心是一整套復(fù)雜的設(shè)施,它不僅僅包括計算機(jī)系統(tǒng)和其它與之配套的設(shè)備(例如通信和存儲系統(tǒng)),還包含冗余的數(shù)據(jù)通信連接、環(huán)境控制設(shè)備、監(jiān)控設(shè)
9、置以及各種安全裝置。6虛擬化與云計算的關(guān)系?虛擬化技術(shù)以及各種計算機(jī)科學(xué)概念,如效用計算、SOA等,的發(fā)展和商業(yè)實現(xiàn)打開了云計算的大門,而云計算本質(zhì)上說應(yīng)該就是虛擬化服務(wù)。從虛擬化和云計算的過程,我們實現(xiàn)了跨系統(tǒng)的資源調(diào)度,將大量的計算機(jī)資源組成資源池,用于動態(tài)地創(chuàng)建高度虛擬化的資源提供給用戶,從而最終實現(xiàn)應(yīng)用、數(shù)據(jù)、IT資源以服務(wù)的方式通過網(wǎng)絡(luò)提供給客戶??梢哉f云計算是虛擬化的最高境界,虛擬化是云計算的底層結(jié)構(gòu)。補(bǔ)充:1虛擬化的典型類型?基礎(chǔ)設(shè)施虛擬化系統(tǒng)虛擬化軟件虛擬化2虛擬化的目的。對象脫離原有環(huán)境在計算機(jī)上被表示通過計算機(jī)控制按需獲取第五講:OpenStack1AWS模式是什么,有什么
10、優(yōu)點?AmazonWebServices(AWS)模式:用戶應(yīng)用使用IaaS基礎(chǔ)IT資源,將PaaS和通用服務(wù)作為應(yīng)用架構(gòu)中的組件來構(gòu)建自己的服務(wù)特點:通過WebService接口開放數(shù)據(jù)和功能;一切以服務(wù)實現(xiàn);通過SOA框架使系統(tǒng)達(dá)到松耦合。2 IaaS模式核心需求有哪些?云擁有者:配置和操作基礎(chǔ)架構(gòu);服務(wù)的提供者:注冊云服務(wù)、查看服務(wù)的使用情況;查看服務(wù)的計算情況;服務(wù)的使用者:創(chuàng)建和存儲自定義的鏡像、啟動監(jiān)控和終止實例。3 Openstack都包含哪些核心項目,作用是什么?Nova(計算)、Swift(對象存儲)、Glance(鏡像)、Keystone(身份)、Dashboard(自助門
11、戶)、Quantum(網(wǎng)絡(luò)連接)、Cinder(塊存儲服務(wù))。4鏡像和實例有什么區(qū)別和聯(lián)系?鏡像:固定搭配實例:固定搭配的一個實例鏡像的存在便于對大量實例的管理,如歸類、縮短選擇時間、計費(fèi)等5 Nova有哪些核心模塊,工作過程是什么?Nova是一套控制器,用于為單個用戶或使用群組啟動虛擬機(jī)實例。將提供預(yù)制的鏡像或是為用戶創(chuàng)建的鏡像提供存儲機(jī)制,這樣用戶就能夠?qū)㈢R像以虛擬機(jī)的形式啟動。Nova-api:負(fù)責(zé)接收和響應(yīng)終端用戶有關(guān)虛擬機(jī)計算和云硬盤存儲的請求,是整個Nova的入口。Nova-compute:主要的執(zhí)行守護(hù)進(jìn)程,職責(zé)是基于各種虛擬化技術(shù)實現(xiàn)創(chuàng)建和終止虛擬機(jī)。整合了CPU/內(nèi)存、存儲和
12、網(wǎng)絡(luò)三類資源部署管理虛擬機(jī),實現(xiàn)計算能力的交付。Nova-volumn:職責(zé)是創(chuàng)建、掛載和卸載持久化的磁盤虛擬機(jī)。Nova-network:職責(zé)是實現(xiàn)網(wǎng)絡(luò)資源池的管理。Nova-schedule:職責(zé)是調(diào)度虛擬機(jī)在哪個物理宿主機(jī)上部署。AMQP消息中間件:實現(xiàn)服務(wù)接口與實現(xiàn)解耦以及子系統(tǒng)之間的通信。通過HTTP協(xié)議,采用RESTM格實現(xiàn)接口定義和響應(yīng),發(fā)送執(zhí)行消息指令至隊列,由具體的訂閱實現(xiàn)模塊執(zhí)行指令。6 Keystone權(quán)限控制過程是什么?User:用戶,就是一個人的賬號Credential:用來證明用戶身份的證據(jù)Authentication:鑒權(quán),也即對用戶身份鑒別的一個過程。Token
13、:令牌。對用戶鑒權(quán)完畢之后,Keystone會為用戶頒發(fā)一個令牌,這樣用戶在請求其他服務(wù)的時候,只需要亮出自己的令牌即可,而不需要發(fā)送自己的密鑰。當(dāng)然以防仿冒令牌,令牌是有時限的。Service:服務(wù),Keystone提供了系統(tǒng)能夠提供的服務(wù)目錄,例如Nova,Glance,Swift等。Endpoint:直譯為端點,其實指的是要訪問的服務(wù)的地址。如果細(xì)分的話,又可以進(jìn)步分為對外提供服務(wù)的地址,管理地址等。Role:即賦予該用戶的權(quán)限,Openstack提供的是一個多租戶環(huán)境,在Openstack中租戶對應(yīng)到項目(Project)o一個用戶可以同時屬于多個不同的項目,當(dāng)然在不同的項目中可以充當(dāng)
14、不同的角色,也即擁有不同的權(quán)限。關(guān)鍵的兩點:1)UserAKeystone獲取令牌以及服務(wù)列表;2)User訪問服務(wù)時,亮出自己的令牌,相關(guān)的服務(wù)向Keystone求證令牌的合法性。7Quantum原理是什么?實現(xiàn)網(wǎng)絡(luò)連接管理,解決網(wǎng)絡(luò)虛擬化問題。TheQuantumServiceTeriartsI/OpenstackConriputeOptnldtkDashboardQuantarrCLINetworkswitchOtherWpartyservicesH/pervisorVMVMH”刎3sNetworkmac*vfth8 Swift的核心概念有哪些?-Object:對象?;镜拇鎯嶓w,所有
15、數(shù)據(jù)按照對象進(jìn)行存儲。-Container:容器。對象的裝載體,組織數(shù)據(jù)的方式,存儲的隔間,類似于文件夾,但不能嵌套,object存儲于container中。-Account:賬戶。權(quán)限單位,account擁有若干containero9 Swift的組件有哪些,都有什么作用?ProxyServer:提供SwiftAPI的服務(wù)器進(jìn)程,負(fù)責(zé)Swift其余組件間的相互通信StorageServer:提供了磁盤設(shè)備上的存儲服務(wù)ConsistencyServer:查找并解決由數(shù)據(jù)損壞和硬件故障引起的錯誤,包含AuditorUpdater和ReplicatorRing:用于記錄存儲對象和物理位置間的映射關(guān)
16、系10 Ring算法思想是什么?致性哈希算法:Swift利用一致性哈希算法構(gòu)建了一個冗余的可擴(kuò)展的分布式對象存儲集群。Swift采用一致性哈希的主要目的是在改變集群的Node數(shù)量時,能夠盡可能少地改變已存在Key和Node的映射關(guān)系。該算法的思路分為以下三個步驟。首先計算每個節(jié)點的哈希值,并將其分配到一個02A32的圓環(huán)區(qū)間上。其次使用相同方法計算存儲對象的哈希值,也將其分配到這個圓環(huán)上。隨后從數(shù)據(jù)映射到的位置開始順時針查找,將數(shù)據(jù)保存到找到的第一個節(jié)點上。如果超過2A32仍然找不到節(jié)點,就會保存到第一個節(jié)點上。Replica。Zone:把集群的Node分配到每個Zone中,其中同一個Part
17、ition的Replica不能同時放在同一個Node上或同一個Zone內(nèi)。Weight:未來添加存儲能力更大的Node時,分配到更多的Partitiono11 Quorum協(xié)議的內(nèi)容是什么?在分布式存儲系統(tǒng)中用于控制一致性級別的一種策略。N=numbersofnodesthatstoredata(同一份數(shù)據(jù)的Replica的份數(shù))W=numberofsuccessfulwritesinaputrequest(更新一個數(shù)據(jù)對象時需要確保成功更新的份數(shù))R=numberofsuccessfulreadsinagetrequest(讀取數(shù)據(jù)時需要讀取的Replica的份數(shù))W+RNWN/2(常用:N
18、=3、w=R=2)第六講:云存儲1大規(guī)模數(shù)據(jù)存儲面臨的新問題與挑戰(zhàn)成本問題容量問題可靠問題使用問題2 GFS#:系結(jié)構(gòu)Client:GFS提供給應(yīng)用程序的庫文件形式訪問接口;Master:GFS的管理節(jié)點,邏輯上只有一個,保存系統(tǒng)元數(shù)據(jù);ChunkServer:GFS的數(shù)據(jù)存儲節(jié)點,大小固定(64MB)。采用中心服務(wù)器模式,不緩存數(shù)據(jù),在用戶態(tài)下實現(xiàn),提供專用的訪問接口。Master節(jié)點任務(wù):存儲元數(shù)據(jù);文件系統(tǒng)目錄管理與加鎖;與ChunkServer進(jìn)行周期性通信;數(shù)據(jù)塊創(chuàng)建、復(fù)制與負(fù)載均衡;垃圾回收;陳舊數(shù)據(jù)塊刪除。3 GFS的容錯機(jī)制C1Master容錯- 三類元數(shù)據(jù):命名空間(目錄結(jié)構(gòu)
19、)、Chunk與文件名的映射以及Chunk副本的位置信息。- 前兩類通過日志提供容錯,Chunk副本信息存儲于ChunkServer,Master出現(xiàn)故障時可恢復(fù)。ChunkServer容錯- 每個Chunk有多個存儲副本(通常是3個),分別存儲于不通的服務(wù)器上。- 每個Chunk又劃分為若干Block(64KB),每個Block對應(yīng)一個32bit的校驗碼,保證數(shù)據(jù)正確(若某個Block錯誤,則轉(zhuǎn)移至其他Chunk副本)。4 Paxos協(xié)議分布式環(huán)境下保持一致性的協(xié)議。- 決議(value)只有在被proposers提出后才能被批準(zhǔn),未經(jīng)批準(zhǔn)的決議稱為“提案(proposal)”。- 在一次P
20、axos算法的執(zhí)行實例中,只批準(zhǔn)(chosen)一個value。- learners只能獲得被批準(zhǔn)(chosen)的value。5 Chubby鎖機(jī)制Chubby是Google為解決分布式一致性問題而設(shè)計的提供粗粒度鎖服務(wù)的文件系統(tǒng)。Chubby系統(tǒng)本質(zhì)上就是一個分布式的、存儲大量小文件的文件系統(tǒng)。Chubby中的鎖就是文件,創(chuàng)建文件就是進(jìn)行加鎖操作。用戶通過打開、關(guān)閉和存取文件,獲取共享鎖或獨占鎖,并且通過通信機(jī)制,向用戶發(fā)送更新信息。6 Chubby的通信協(xié)議操作的允許授權(quán)是通過限時的、倒計時“租期”系統(tǒng)來處理的。7 Bigtable數(shù)據(jù)結(jié)構(gòu)- 分布式多維映射表- 通過行關(guān)鍵字+列關(guān)鍵字+
21、時間戳進(jìn)行索引- Bigtable對存儲的數(shù)據(jù)不做解析,看做字符串,具體數(shù)據(jù)結(jié)構(gòu)實現(xiàn)需要用戶自行處理- 每行數(shù)據(jù)有一個可排序的關(guān)鍵字和任意列項;- 可將多個列歸并為一組,稱為“族”,同一個族的數(shù)據(jù)被壓縮在一起保存。- 邏輯上的表被劃分成若干子表,每個子表存儲了table的一部分行(每個子表由多個SSTable文件組成,SSTabl改件存儲在GFS上)8Bigtable優(yōu)化機(jī)制局部性群組- 根據(jù)需要,將原本不存儲在一起的數(shù)據(jù),以列族為單位存儲至單獨的子表。布隆過濾器- 判斷某個元素是否隸屬于集合。合并壓縮- 合并壓縮操作讀取多個SSTable創(chuàng)建一個新的SSTabl啾保持其中的最新數(shù)據(jù)。9云存儲
22、應(yīng)用的特點通用的設(shè)備支持;數(shù)據(jù)同步與共享;任意格式/大小文件;免費(fèi)+付費(fèi)。第七講:MapReduce算法原理1Mapreduce算法的架構(gòu)每個mapreduce任務(wù)都被初始化為一個job,每個job分為兩個階段,實現(xiàn)了Map和Reduce兩個功能:Map:把一個函數(shù)應(yīng)用于集合中所有成員,然后返回一個基于這個處理的結(jié)果集。Reduce:對結(jié)果集進(jìn)行分類和歸納。HeUuSigp(uu3oulpuUOutputsstoredtocaHlyPr用皿陋localirputdwIntenn&diatedatabyshuffeprocessNoe蛆之Ncdf3Nmld1MappingprwTNode1Rod
23、UcingiprocwsnnnLULReducingprocess2Wordcount算例自動分割文本。分割后的每一對key,value進(jìn)行用戶定義的map處理,生成新的key,value對。系統(tǒng)自動對輸出結(jié)果集歸攏排序,傳給reduce。C4通過reduce生成最后結(jié)果。3Hadoop執(zhí)行MR的過程C1master節(jié)點運(yùn)行jobTracker實例,接收客戶端job請求,一個job是對一個數(shù)據(jù)集的處理,slave節(jié)點運(yùn)行TaskTracker實例,一個task是一次map或者reduce處理過程。C2MR程序由一個jar文件和一個xml文件組成,jar包含程序代碼,xml包含程序配置操作??蛻?/p>
24、端設(shè)定配置之后,交job,將job數(shù)據(jù)發(fā)送到j(luò)obTracker的文件系統(tǒng)中,Mapreduce庫會把所輸入文件分割成M塊,放到不同的datanote上。C4JobTracker將job放入隊列進(jìn)行調(diào)度,并把jar和配置文件放到共享空間C5Hadoop有一個機(jī)器內(nèi)進(jìn)程間操作通信的機(jī)制,taskTracker周期性告訴jobTracker工作狀態(tài),如果空,job給task分配任務(wù),開一個進(jìn)程處理。6MR程序被傳送到各個數(shù)據(jù)所在的HDFS的datanote上運(yùn)行,mapper被輸送到數(shù)據(jù)節(jié)點上進(jìn)行計算,中間結(jié)果被輸送到reducer上進(jìn)行計算,Reducer將計算結(jié)果分布式保存到HDFS當(dāng)所有ma
25、p和reduce任務(wù)完成時,master會喚醒用戶程序,通知任務(wù)完成,再取執(zhí)行新的任務(wù)。4MR算法執(zhí)行過程中的數(shù)據(jù)流轉(zhuǎn)過程用戶文件上傳到HDFS由mapreduce庫切割分別存儲到datanote上以行號,文本形式傳入map中,經(jīng)過自定義map處理產(chǎn)生key,value對,構(gòu)成中間結(jié)果集緩存在本地內(nèi)存中。reducer接到master的收集中間結(jié)果集任務(wù)后,通過遠(yuǎn)程調(diào)用讀取中間結(jié)果,并將其排序,key相同的value進(jìn)行合并處理化簡。最終結(jié)果寫入到GFS文件系統(tǒng)中補(bǔ)充:1 什么是MapReduce?。一個軟件架構(gòu),是一種處理海量數(shù)據(jù)的并行編程模式;CD用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并彳T
26、運(yùn)算;MapReduce實現(xiàn)了Map和Reduce兩個功能:-Map把一個函數(shù)應(yīng)用于集合中的所有成員,然后返回一個基于這個處理的結(jié)果集-Reduce對結(jié)果集進(jìn)行分類和歸納-Map()和Reduce()兩個函數(shù)可能會并行運(yùn)行,即使不是在同一的系統(tǒng)的同一時刻2 MapReduce的優(yōu)化?- 任務(wù)備份機(jī)制- 本地處理- 跳過有問題的記錄3 MapReduce中的術(shù)語?job:MapReduce的一整個過程task:在一個job中,每個mapper和每個reducer做的事情taskattempt:運(yùn)行一個task。主節(jié)點運(yùn)行JobTracker實例,它接受來自客戶端的工作要求。JobTracker的
27、主要功能包括:作業(yè)控制:在hadoop中每個應(yīng)用程序被表示成一個作業(yè),每個作業(yè)又被分成多個任務(wù),JobTracker的作業(yè)控制模塊則負(fù)責(zé)作業(yè)的分解和狀態(tài)監(jiān)控。資源管理。taskTracker實例運(yùn)行在slave節(jié)點。TaskTracker的功能包括:匯報心跳:Tracker周期性將所有節(jié)點上各種信息通過心跳機(jī)制匯報給JobTracker執(zhí)行命令:JobTracker會給TaskTracker下達(dá)各種命令,主要包括:啟動任務(wù)(LaunchTaskAction)、提交任務(wù)(CommitTaskAction)、殺死任務(wù)(KillTaskAction)、殺死作業(yè)(KillJobAction)和重新初始
28、化(TaskTrackerReinitAction)。第八講:MapReduce算法應(yīng)用1Mapreduce算法設(shè)計思想任務(wù)的分解與結(jié)果的匯總。2運(yùn)用mapreduce算法解決實際問題。詞頻:WordCount基礎(chǔ)上map函數(shù)中,加入鍵值對,一次mapreduce過程得到每個詞出現(xiàn)的個數(shù)及總數(shù)invertedindex(若干文本文件-倒排索引結(jié)果):map輸出:combiner輸出:reduce輸出:=計算文本相似度:一進(jìn)行倒排索引一計算兩兩文章對的相似性map:同一個詞對應(yīng)的文章鏈表中,兩兩文章構(gòu)成一組reduce:進(jìn)行收集一統(tǒng)計文章相似度3算法調(diào)優(yōu)給shuffle過程盡可能多的內(nèi)存空間;M
29、ap和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ū)大?。?00MB);緩沖區(qū)容量閾值(0.8);最多合并流數(shù)(10);溢出寫次數(shù)最小值(3);壓縮標(biāo)志(false);壓縮方式;TaskTracker的工作線程數(shù)(40);Reduce任務(wù)復(fù)制線程(5);Reduce獲取一個Map輸出最大時間(300s);Map輸出內(nèi)存緩沖區(qū)占堆空間的百分比(0.7);緩沖區(qū)溢出閾值(0.66)
30、;Map輸出閾值(1000);合并因子(10);輸入內(nèi)存閾值(0.0);Hadoop文件緩沖區(qū)(4KB)5參數(shù)調(diào)優(yōu)將map輸出作為輸入傳給reducer,確保每個reducer的輸入都按鍵排序的過程叫shuffle,shuffle是調(diào)優(yōu)的重點。Map一產(chǎn)生輸出時,通過緩沖寫入內(nèi)存:緩沖區(qū)大小,容量閾值,指定路徑一按照要傳送到的reducer對數(shù)據(jù)進(jìn)行partirion,每個partition內(nèi)部按照key進(jìn)行鍵內(nèi)排序:合并流數(shù);壓縮map輸出效率更高:壓縮標(biāo)志;壓縮方式一reducer通過http方式從map處得到輸出文件分區(qū),分區(qū)的工作線程數(shù)由tasktracker控制:工作線程數(shù)(trac
31、ker.http.threads)Reduce一只要一個map任務(wù)完成,reduce任務(wù)就開始復(fù)制其輸出:復(fù)制線程數(shù);獲取map最大時間若map輸出小,復(fù)制到內(nèi)存中;否則先寫入到內(nèi)存緩沖區(qū),達(dá)到閾值后寫到磁盤:內(nèi)存緩沖區(qū)占堆空間百分比;溢出閾值;map輸出閾值;后臺線程根據(jù)合并因子將其合并成更大的排好序的文件:合并因子reduce開始時,內(nèi)存中map輸出大小不能超過輸入內(nèi)存閾值,以便為reduce?供盡可能多的內(nèi)存:輸入內(nèi)存閾值一輸出結(jié)果寫入HDFS系統(tǒng):hadoop文件緩沖區(qū)大小6案例的mapreduce算法第九講:Hadoop1 Hadoop項目的由來起源于一個開源的網(wǎng)絡(luò)搜索引擎項目Apa
32、cheNutch,借鑒GFS實現(xiàn)了一個開源的實現(xiàn)HDFS05年nutch上實現(xiàn)了一個mapreduce系統(tǒng),完成了所有主要算法的mapreduce+HDFS移植。2 HDFS的體系結(jié)構(gòu)采用了主從(Master/Slave)結(jié)構(gòu)模型,一個HDFS集群是由一個NameNode和若干DataNode組成,其中NameNode作為主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端對文件的訪問操作。DataNode管理存儲的數(shù)據(jù)。HDFS允許用戶以文件的形式存儲數(shù)據(jù),文件被分成若干個數(shù)據(jù)塊,而且這若干個數(shù)據(jù)塊存放在一組DataNode上。NameNode是整個HDFS的核心,它通過維護(hù)一些數(shù)據(jù)結(jié)構(gòu)來記錄每一個文件
33、被分割成了多少個塊、這些塊可以從哪些DataNode中獲得,以及各個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ù)制操作。3 HDFS的運(yùn)行機(jī)制可靠性保障:冗余機(jī)制一一數(shù)據(jù)復(fù)制故障檢測datanode(心跳包,塊報告,數(shù)據(jù)完整T監(jiān)測)namenode(日志和鏡像)讀文件流程:-客戶端調(diào)用DistributedFileSystem對象的open()方法- DistributedF
34、ileSystem通過RPC聯(lián)系namenode,得到所有數(shù)據(jù)塊信息,對每個數(shù)據(jù)塊,namenode返回存有該塊副本的datanode地址,并且這些datanode根據(jù)他們與客戶端的距離進(jìn)行排序- DistributedFileSystem類返回一個FSDataInputStream對象給客戶端并讀取數(shù)據(jù)- 客戶端對該對象調(diào)用read()方法讀取數(shù)據(jù)- FSDataInputStream連接距離最近的datanode讀取數(shù)據(jù),數(shù)據(jù)讀取完畢時FSDataInputStream會關(guān)閉與該datanode的連接,然后尋找下一個塊的datanode- FSDataInputStream可能并行讀取多個
35、datanode,當(dāng)客戶端完成讀取時,對FSDataInputStream調(diào)用close()方法FSDataInputStream從datanode讀取數(shù)據(jù)時如果遇到錯誤,會嘗試從該塊的另外一個最近的datanode讀取數(shù)據(jù),并記住故障datanode保證以后不會繼續(xù)從該節(jié)點讀取其他塊- 每個讀取的塊通過校驗和確認(rèn)以保證數(shù)據(jù)完整- 如果FSDataInputStream發(fā)現(xiàn)一個損壞的塊,則在從其他datanode讀取塊之前通知namenode寫文件流程:- 客戶端調(diào)用DistributedFileSystem對象的create()方法創(chuàng)建文件- DistributedFileSystem通過R
36、PC聯(lián)系namenode,namenode執(zhí)行各種檢查確保待建立的文件不存在,且客戶端擁有創(chuàng)建該文件的權(quán)限- 如果檢查通過,namenode為新文件創(chuàng)建一條記錄,否則拋出一個lOException異常- DistributedFileSystem給客戶端返回一個FSDataOutputStream對象進(jìn)行寫數(shù)據(jù)- FSDataOutputStream將待寫入數(shù)據(jù)分成數(shù)據(jù)包并寫入內(nèi)部隊列dataqueue- DataStreamer處理dataqueue,根據(jù)datanode列表要求namenode分配適合的新塊來存儲數(shù)據(jù)備份- namenode分配的數(shù)據(jù)備份datanode(通常3個)形成一個管線,DataStreamer將數(shù)據(jù)包傳輸給管線中的第一個節(jié)點,然后該節(jié)點存儲完之后發(fā)送給第二個節(jié)點,以此類推- FSDataOutputStream維護(hù)一個確認(rèn)隊列ackqueue,當(dāng)收到管線中所有datanode的確認(rèn)后,該數(shù)據(jù)包從確認(rèn)隊列中刪除- 如果datanode發(fā)生故障,則關(guān)閉管線,將確認(rèn)隊列中的數(shù)據(jù)包添加回數(shù)據(jù)隊列的最前端,將故障的數(shù)據(jù)塊和datanode信息返回給namenode以便該datanode恢復(fù)后刪除錯誤數(shù)據(jù)塊
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)級智能零售解決方案協(xié)議
- 鋼鐵制品生產(chǎn)加工投資協(xié)議
- 傲慢與偏見節(jié)選英文閱讀與理解教學(xué)教案
- 人工智能人才培訓(xùn)合作協(xié)議
- 車間場地租賃合同
- 高中生英語閱讀理解征文
- 農(nóng)業(yè)項目管理方案
- 保密信息及非競爭協(xié)議條款
- 智能機(jī)器人研發(fā)與生產(chǎn)計劃書
- 童年小說人物解析作文
- 考前沖刺攻略課件
- 2024年中煤電力有限公司所屬企業(yè)招聘29人筆試參考題庫附帶答案詳解
- 2024年12月2025中央統(tǒng)戰(zhàn)部直屬事業(yè)單位應(yīng)屆高校畢業(yè)生公開招聘21人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 積極心理學(xué)視角下高職院校學(xué)生心理健康教育路徑研究
- 2024年湖北省煙草專賣局(公司)招聘筆試真題
- 2025中鐵快運(yùn)股份限公司招聘全日制普通高校畢業(yè)生35人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年浙江寧波寧興集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 計算機(jī)網(wǎng)絡(luò)試題及答案
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設(shè)有限公司招聘筆試參考題庫附帶答案詳解
- 人效管理措施
- 四年級下冊勞動《小小快遞站》課件
評論
0/150
提交評論