版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上第一講:云計(jì)算概述1 什么是云計(jì)算?云計(jì)算是一種能夠?qū)?dòng)態(tài)伸縮的虛擬化資源通過(guò)互聯(lián)網(wǎng)以服務(wù)的方式提供給用戶(hù)的計(jì)算模式。根據(jù)云提供的服務(wù)類(lèi)型,可以劃分為基礎(chǔ)設(shè)施云、平臺(tái)云、應(yīng)用云。根據(jù)云的服務(wù)方式,可以劃分為公有云、私有云、混合云。2 云計(jì)算的優(yōu)勢(shì)??jī)?yōu)化產(chǎn)業(yè)布局 成本關(guān)鍵由硬件成本轉(zhuǎn)為電力成本、散熱成本 分散的、高能耗模式轉(zhuǎn)變?yōu)榧械摹①Y源友好的模式 自給自足資源作坊轉(zhuǎn)變?yōu)橐?guī)模效應(yīng)的工業(yè)化資源工廠(chǎng)推進(jìn)專(zhuān)業(yè)分工 專(zhuān)業(yè)的大型云計(jì)算廠(chǎng)商 實(shí)力雄厚的科研技術(shù)團(tuán)隊(duì)推動(dòng)硬件技術(shù)革新 具有豐富知識(shí)和經(jīng)驗(yàn)的維護(hù)管理團(tuán)隊(duì)和配套軟件 產(chǎn)業(yè)鏈中的新產(chǎn)業(yè)契機(jī)提升資源利用率 更加高效的解決常規(guī)業(yè)
2、務(wù) 更好的應(yīng)對(duì)突發(fā)任務(wù)或事件 更加平衡的資源分配和負(fù)載減少初期投資 更少的IT基礎(chǔ)設(shè)施投入 更少的軟件投入 更少的人力投入 更短的培訓(xùn)周期 更靈活的轉(zhuǎn)型支持降低管理開(kāi)銷(xiāo) 服務(wù)化管理 無(wú)需自己建立維護(hù)管理團(tuán)隊(duì) 隨需應(yīng)變的解決方案 知識(shí)、經(jīng)驗(yàn)更加豐富的管理隊(duì)伍 通過(guò)業(yè)務(wù)模塊的可配置提高系統(tǒng)的靈活性3 云計(jì)算的動(dòng)因?芯片與硬件技術(shù) 硬件能力的激增、成本的大幅下降,使得獨(dú)立運(yùn)作的公司集中客觀的硬件能力實(shí)現(xiàn)規(guī)模效益成為可能資源虛擬化 資源在云端,需要被統(tǒng)一的管理 異構(gòu)硬件、兼容性問(wèn)題 虛擬化技術(shù)應(yīng)用需求面向服務(wù)的架構(gòu)SOA 開(kāi)放式數(shù)據(jù)模型 統(tǒng)一通信標(biāo)準(zhǔn) 更加豐富的服務(wù) 更加松散耦合、靈活的IT架構(gòu) 轉(zhuǎn)變
3、了人們對(duì)IT系統(tǒng)的認(rèn)識(shí)軟件即服務(wù)SaaS 轉(zhuǎn)變了人們使用服務(wù)的方式 使得終端用戶(hù)熟悉服務(wù)的交互模式 改變了IT界的商業(yè)模式 實(shí)力雄厚的大公司負(fù)責(zé)基礎(chǔ)設(shè)施,小企業(yè)通過(guò)創(chuàng)新挖掘充滿(mǎn)潛力的市場(chǎng) “長(zhǎng)尾理論”互聯(lián)網(wǎng)技術(shù) 基礎(chǔ)設(shè)施 多種接入方式 更加廣闊的覆蓋 帶寬和可靠性得到大幅提升 使得IT新模式的穩(wěn)定性、可靠性、安全性、可用性、靈活性、可管理性、自動(dòng)化程度、節(jié)能環(huán)保等得到保障Web2.0技術(shù) 用戶(hù)從信息的獲得者變成信息的貢獻(xiàn)者 博客(微博)、內(nèi)容聚合、百科全書(shū)(Wiki)、社交網(wǎng)絡(luò)、對(duì)等網(wǎng)絡(luò)(P2P) 富互聯(lián)網(wǎng)應(yīng)用(Rich Internet Application)成為網(wǎng)絡(luò)應(yīng)用發(fā)展的趨勢(shì) 改變了
4、人們的生活方式 為云計(jì)算提出了內(nèi)在需求4 查找資料: 業(yè)界主流的云計(jì)算產(chǎn)品 典型的云計(jì)算應(yīng)用補(bǔ)充:1 云計(jì)算特征是什么?硬件和軟件都是資源資源可以根據(jù)需要進(jìn)行動(dòng)態(tài)擴(kuò)展與配置按用計(jì)費(fèi)、無(wú)需管理物理上分布式共享,邏輯上以單一整體呈現(xiàn)2 云計(jì)算的發(fā)展歷程?超級(jí)計(jì)算機(jī)集群計(jì)算分布式計(jì)算網(wǎng)格計(jì)算效用計(jì)算云計(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ǎng)問(wèn)、防火墻、路由和負(fù)載平衡。示例產(chǎn)品:Flexiscale和Amazon EC2。PaaS(平臺(tái)即服務(wù))提供平臺(tái)給系統(tǒng)
5、管理員和開(kāi)發(fā)人員,令其可以基于平臺(tái)構(gòu)建、測(cè)試及部署定制應(yīng)用程序。也降低了管理系統(tǒng)的成本。典型服務(wù)包括Storage、Database、Scalability。示例產(chǎn)品:Google App Engine、AWS:S3、Microsoft Azure。SaaS(軟件即服務(wù))通過(guò)Internet提供軟件的模式,用戶(hù)向提供商租用基于Web的軟件來(lái)管理企業(yè)經(jīng)營(yíng)活動(dòng),且無(wú)需對(duì)軟件進(jìn)行維護(hù),服務(wù)提供商會(huì)全權(quán)管理和維護(hù)軟件。示例產(chǎn)品:Google Docs、CRM、Financial Planning、Human Resources、Word Processing等。2 IaaS的基本功能?資源抽象資源監(jiān)控
6、負(fù)載管理數(shù)據(jù)管理資源部署安全管理計(jì)費(fèi)管理3 PaaS的基本功能?開(kāi)發(fā)平臺(tái)運(yùn)行時(shí)環(huán)境運(yùn)營(yíng)環(huán)境補(bǔ)充:1 IaaS服務(wù)流程?規(guī)劃階段->部署階段->運(yùn)行階段2 PaaS實(shí)現(xiàn)步驟?總體設(shè)計(jì)開(kāi)發(fā)平臺(tái)運(yùn)行環(huán)境運(yùn)營(yíng)環(huán)境3 云平臺(tái)上開(kāi)發(fā)應(yīng)用的優(yōu)勢(shì)? 提供高級(jí)編程接口,簡(jiǎn)單易用,縮短編程人員上手時(shí)間 應(yīng)用的開(kāi)發(fā)與運(yùn)行基于相同的平臺(tái),兼容性問(wèn)題較少 開(kāi)發(fā)者無(wú)需考慮應(yīng)用的可伸縮性、服務(wù)容量問(wèn)題 平臺(tái)層的運(yùn)營(yíng)管理功能還能夠幫助開(kāi)發(fā)人員對(duì)應(yīng)用進(jìn)行監(jiān)控和計(jì)費(fèi)4 應(yīng)用層的特征? 網(wǎng)絡(luò)訪(fǎng)問(wèn)模式 租用付費(fèi) 高度整合第四講:虛擬化1 虛擬化的概念?虛擬化是表示計(jì)算機(jī)資源的抽象方法,通過(guò)虛擬化可以用與訪(fǎng)問(wèn)抽象前資源一致
7、的方法來(lái)訪(fǎng)問(wèn)抽象后的資源。這種資源的抽象方法并不受實(shí)現(xiàn)、地理位置或底層資源的物理配置限制。(wiki)2 服務(wù)器虛擬化的特性?多實(shí)例 一個(gè)物理服務(wù)器上可以運(yùn)行多個(gè)虛擬服務(wù)器 支持多個(gè)客戶(hù)操作系統(tǒng) 物理系統(tǒng)資源以可控的方式分配給虛擬機(jī)隔離性 虛擬機(jī)之間完全隔離 一個(gè)虛擬機(jī)的崩潰不會(huì)對(duì)其他虛擬機(jī)造成影響 虛擬機(jī)之間的數(shù)據(jù)相對(duì)獨(dú)立,不會(huì)泄露 虛擬機(jī)之間如果需要互相訪(fǎng)問(wèn),方式等同于獨(dú)立物理服務(wù)器之間的互相訪(fǎng)問(wèn)封裝性 硬件無(wú)關(guān) 對(duì)外表現(xiàn)為單一的邏輯實(shí)體 一個(gè)虛擬機(jī)可以方便的在不同硬件之間復(fù)制、移動(dòng) 將不同訪(fǎng)問(wèn)方式的硬件封裝成統(tǒng)一標(biāo)準(zhǔn)化的虛擬硬件設(shè)備,保證了虛擬機(jī)的兼容性高性能 可通過(guò)擴(kuò)展獲得“無(wú)限”的性
8、能 虛擬化抽象層需要一定管理開(kāi)銷(xiāo)3 服務(wù)器虛擬化的關(guān)鍵技術(shù)?計(jì)算虛擬化 CPU虛擬化 計(jì)算負(fù)載的動(dòng)態(tài)分配 能耗管理存儲(chǔ)虛擬化 內(nèi)存虛擬化 磁盤(pán)存儲(chǔ)動(dòng)態(tài)分配設(shè)備與I/O虛擬化 軟件方式實(shí)現(xiàn) 統(tǒng)一、標(biāo)準(zhǔn)化的接口 操作指令轉(zhuǎn)譯實(shí)時(shí)遷移技術(shù) 將整個(gè)虛擬機(jī)的運(yùn)行狀態(tài)完整、快速地從原宿主機(jī)的硬件平臺(tái)轉(zhuǎn)移到新的宿主機(jī)硬件平臺(tái)。4 創(chuàng)建虛擬化解決方案的步驟?創(chuàng)建虛擬化解決方案部署虛擬化解決方案管理虛擬化解決方案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)
9、系?虛擬化技術(shù)以及各種計(jì)算機(jī)科學(xué)概念,如效用計(jì)算、SOA等,的發(fā)展和商業(yè)實(shí)現(xiàn)打開(kāi)了云計(jì)算的大門(mén),而云計(jì)算本質(zhì)上說(shuō)應(yīng)該就是虛擬化服務(wù)。從虛擬化和云計(jì)算的過(guò)程,我們實(shí)現(xiàn)了跨系統(tǒng)的資源調(diào)度,將大量的計(jì)算機(jī)資源組成資源池,用于動(dòng)態(tài)地創(chuàng)建高度虛擬化的資源提供給用戶(hù),從而最終實(shí)現(xiàn)應(yīng)用、數(shù)據(jù)、IT 資源以服務(wù)的方式通過(guò)網(wǎng)絡(luò)提供給客戶(hù)??梢哉f(shuō)云計(jì)算是虛擬化的最高境界,虛擬化是云計(jì)算的底層結(jié)構(gòu)。補(bǔ)充:1 虛擬化的典型類(lèi)型?基礎(chǔ)設(shè)施虛擬化系統(tǒng)虛擬化軟件虛擬化2 虛擬化的目的對(duì)象脫離原有環(huán)境在計(jì)算機(jī)上被表示通過(guò)計(jì)算機(jī)控制按需獲取第五講:OpenStack1 AWS模式是什么,有什么優(yōu)點(diǎn)?Amazon Web Ser
10、vices(AWS)模式:用戶(hù)應(yīng)用使用IaaS基礎(chǔ)IT資源,將PaaS和通用服務(wù)作為應(yīng)用架構(gòu)中的組件來(lái)構(gòu)建自己的服務(wù)特點(diǎn):通過(guò)Web Service接口開(kāi)放數(shù)據(jù)和功能;一切以服務(wù)實(shí)現(xiàn);通過(guò)SOA框架使系統(tǒng)達(dá)到松耦合。2 IaaS模式核心需求有哪些?云擁有者:配置和操作基礎(chǔ)架構(gòu);服務(wù)的提供者:注冊(cè)云服務(wù)、查看服務(wù)的使用情況;查看服務(wù)的計(jì)算情況;服務(wù)的使用者:創(chuàng)建和存儲(chǔ)自定義的鏡像、啟動(dòng)監(jiān)控和終止實(shí)例。3 Openstack都包含哪些核心項(xiàng)目,作用是什么?Nova(計(jì)算)、Swift(對(duì)象存儲(chǔ))、Glance(鏡像)、Keystone(身份)、Dashboard(自助門(mén)戶(hù))、Quantum(網(wǎng)絡(luò)連
11、接)、Cinder(塊存儲(chǔ)服務(wù))。4 鏡像和實(shí)例有什么區(qū)別和聯(lián)系?鏡像:固定搭配 實(shí)例:固定搭配的一個(gè)實(shí)例 鏡像的存在便于對(duì)大量實(shí)例的管理,如歸類(lèi)、縮短選擇時(shí)間、計(jì)費(fèi)等5 Nova有哪些核心模塊,工作過(guò)程是什么?Nova是一套控制器,用于為單個(gè)用戶(hù)或使用群組啟動(dòng)虛擬機(jī)實(shí)例。將提供預(yù)制的鏡像或是為用戶(hù)創(chuàng)建的鏡像提供存儲(chǔ)機(jī)制,這樣用戶(hù)就能夠?qū)㈢R像以虛擬機(jī)的形式啟動(dòng)。 Nova-api:負(fù)責(zé)接收和響應(yīng)終端用戶(hù)有關(guān)虛擬機(jī)計(jì)算和云硬盤(pán)存儲(chǔ)的請(qǐng)求,是整個(gè)Nova的入口。 Nova-compute:主要的執(zhí)行守護(hù)進(jìn)程,職責(zé)是基于各種虛擬化技術(shù)實(shí)現(xiàn)創(chuàng)建和終止虛擬機(jī)。整合了CPU/內(nèi)存、存儲(chǔ)和網(wǎng)絡(luò)三類(lèi)資源部署管
12、理虛擬機(jī),實(shí)現(xiàn)計(jì)算能力的交付。Nova-volumn:職責(zé)是創(chuàng)建、掛載和卸載持久化的磁盤(pán)虛擬機(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)之間的通信。通過(guò)HTTP協(xié)議,采用REST風(fēng)格實(shí)現(xiàn)接口定義和響應(yīng),發(fā)送執(zhí)行消息指令至隊(duì)列,由具體的訂閱實(shí)現(xiàn)模塊執(zhí)行指令。6 Keystone權(quán)限控制過(guò)程是什么?User:用戶(hù),就是一個(gè)人的賬號(hào) Credential:用來(lái)證明用戶(hù)身份的證據(jù) Authentication:鑒權(quán),也即對(duì)用戶(hù)身份鑒別的一個(gè)過(guò)程。 Token:令牌
13、。對(duì)用戶(hù)鑒權(quán)完畢之后,Keystone會(huì)為用戶(hù)頒發(fā)一個(gè)令牌,這樣用戶(hù)在請(qǐng)求其他服務(wù)的時(shí)候,只需要亮出自己的令牌即可,而不需要發(fā)送自己的密鑰。當(dāng)然以防仿冒令牌,令牌是有時(shí)限的。 Service:服務(wù),Keystone提供了系統(tǒng)能夠提供的服務(wù)目錄,例如Nova, Glance, Swift等。 Endpoint:直譯為端點(diǎn),其實(shí)指的是要訪(fǎng)問(wèn)的服務(wù)的地址。如果細(xì)分的話(huà),又可以進(jìn)一步分為對(duì)外提供服務(wù)的地址,管理地址等。 Role:即賦予該用戶(hù)的權(quán)限,Openstack提供的是一個(gè)多租戶(hù)環(huán)境,在Openstack中租戶(hù)對(duì)應(yīng)到項(xiàng)目(Project)。一個(gè)用戶(hù)可以同時(shí)屬于多個(gè)不同的項(xiàng)目,當(dāng)然在不同的項(xiàng)目中可
14、以充當(dāng)不同的角色,也即擁有不同的權(quán)限。 關(guān)鍵的兩點(diǎn):1) User從Keystone獲取令牌以及服務(wù)列表;2)User訪(fǎng)問(wèn)服務(wù)時(shí),亮出自己的令牌,相關(guān)的服務(wù)向Keystone求證令牌的合法性。7 Quantum原理是什么?實(shí)現(xiàn)網(wǎng)絡(luò)連接管理,解決網(wǎng)絡(luò)虛擬化問(wèn)題。8 Swift的核心概念有哪些? Object:對(duì)象。基本的存儲(chǔ)實(shí)體,所有數(shù)據(jù)按照對(duì)象進(jìn)行存儲(chǔ)。 Container:容器。對(duì)象的裝載體,組織數(shù)據(jù)的方式,存儲(chǔ)的隔間,類(lèi)似于文件夾,但不能嵌套,object存儲(chǔ)于container中。 Account:賬戶(hù)。權(quán)限單位,account擁有若干container。9 Swift的組件有哪些,都有
15、什么作用?Proxy Server:提供Swift API的服務(wù)器進(jìn)程,負(fù)責(zé)Swift其余組件間的相互通信 Storage Server:提供了磁盤(pán)設(shè)備上的存儲(chǔ)服務(wù) Consistency Server:查找并解決由數(shù)據(jù)損壞和硬件故障引起的錯(cuò)誤,包含Auditor、Updater和Replicator Ring:用于記錄存儲(chǔ)對(duì)象和物理位置間的映射關(guān)系10 Ring算法思想是什么?一致性哈希算法:Swift利用一致性哈希算法構(gòu)建了一個(gè)冗余的可擴(kuò)展的分布式對(duì)象存 儲(chǔ)集群。Swift采用一致性哈希的主要目的是在改變集群的Node數(shù)量時(shí),能夠盡可能少地改變已存在Key和Node的映射關(guān)系。 該算法的思
16、路分為以下三個(gè)步驟。 首先計(jì)算每個(gè)節(jié)點(diǎn)的哈希值,并將其分配到一個(gè)0232的圓環(huán)區(qū)間上。其次使用相同方法計(jì)算存儲(chǔ)對(duì)象的哈希值,也將其分配到這個(gè)圓環(huán)上。隨后從數(shù)據(jù)映射到的位置開(kāi)始順時(shí)針查找,將數(shù)據(jù)保存到找到的第一個(gè)節(jié)點(diǎn)上。如果超過(guò)232仍然找不到節(jié)點(diǎn),就會(huì)保存到第一個(gè)節(jié)點(diǎn)上。 Replica。 Zone:把集群的Node分配到每個(gè)Zone中,其中同一個(gè)Partition的Replica不能同時(shí)放 在同一個(gè)Node上或同一個(gè)Zone內(nèi)。 Weight:未來(lái)添加存儲(chǔ)能力更大的Node時(shí),分配到更多的Partition。11 Quorum協(xié)議的內(nèi)容是什么?在分布式存儲(chǔ)系統(tǒng)中用于控制一致性級(jí)別的一種策略。
17、 N = numbers of nodes that store data(同一份數(shù)據(jù)的Replica的份數(shù)) W = number of successful writes in a put request(更新一個(gè)數(shù)據(jù)對(duì)象時(shí)需要確保成功更新的份數(shù)) R = number of successful reads in a get request(讀取數(shù)據(jù)時(shí)需要讀取的Replica的份數(shù)) W + R > N W>N/2(常用:N=3、w=R=2)第六講:云存儲(chǔ)1 大規(guī)模數(shù)據(jù)存儲(chǔ)面臨的新問(wèn)題與挑戰(zhàn) 成本問(wèn)題 容量問(wèn)題 可靠問(wèn)題 使用問(wèn)題2 GFS體系結(jié)構(gòu)Client:GFS提供給應(yīng)
18、用程序的庫(kù)文件形式訪(fǎng)問(wèn)接口;Master:GFS的管理節(jié)點(diǎn),邏輯上只有一個(gè),保存系統(tǒng)元數(shù)據(jù);Chunk Server:GFS的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),大小固定(64MB)。采用中心服務(wù)器模式,不緩存數(shù)據(jù),在用戶(hù)態(tài)下實(shí)現(xiàn),提供專(zhuān)用的訪(fǎng)問(wèn)接口。 Master節(jié)點(diǎn)任務(wù):存儲(chǔ)元數(shù)據(jù);文件系統(tǒng)目錄管理與加鎖;與ChunkServer進(jìn)行周期性通信;數(shù)據(jù)塊創(chuàng)建、復(fù)制與負(fù)載均衡;垃圾回收;陳舊數(shù)據(jù)塊刪除。3 GFS的容錯(cuò)機(jī)制Master容錯(cuò) 三類(lèi)元數(shù)據(jù):命名空間(目錄結(jié)構(gòu))、Chunk與文件名的映射以及Chunk副本的位置信息。 前兩類(lèi)通過(guò)日志提供容錯(cuò),Chunk副本信息存儲(chǔ)于Chunk Server,Master出
19、現(xiàn)故障時(shí)可恢復(fù)。Chunk Server容錯(cuò) 每個(gè)Chunk有多個(gè)存儲(chǔ)副本(通常是3個(gè)),分別存儲(chǔ)于不通的服務(wù)器上。 每個(gè)Chunk又劃分為若干Block(64KB),每個(gè)Block對(duì)應(yīng)一個(gè)32bit的校驗(yàn)碼,保證數(shù)據(jù)正確(若某個(gè)Block錯(cuò)誤,則轉(zhuǎn)移至其他Chunk副本)。4 Paxos協(xié)議分布式環(huán)境下保持一致性的協(xié)議。 決議(value)只有在被proposers 提出后才能被批準(zhǔn),未經(jīng)批準(zhǔn)的決議稱(chēng)為“提案(proposal)”。 在一次Paxos算法的執(zhí)行實(shí)例中,只批準(zhǔn)(chosen)一個(gè)value。 learners 只能獲得被批準(zhǔn)(chosen)的value。5 Chubby鎖機(jī)制C
20、hubby是Google為解決分布式一致性問(wèn)題而設(shè)計(jì)的提供粗粒度鎖服務(wù)的文件系統(tǒng)。Chubby系統(tǒng)本質(zhì)上就是一個(gè)分布式的、存儲(chǔ)大量小文件的文件系統(tǒng)。Chubby中的鎖就是文件,創(chuàng)建文件就是進(jìn)行加鎖操作。用戶(hù)通過(guò)打開(kāi)、關(guān)閉和存取文件,獲取共享鎖或獨(dú)占鎖,并且通過(guò)通信機(jī)制,向用戶(hù)發(fā)送更新信息。6 Chubby的通信協(xié)議操作的允許授權(quán)是通過(guò)限時(shí)的、倒計(jì)時(shí)“租期”系統(tǒng)來(lái)處理的。7 Bigtable數(shù)據(jù)結(jié)構(gòu) 分布式多維映射表 通過(guò)行關(guān)鍵字+列關(guān)鍵字+時(shí)間戳進(jìn)行索引 Bigtable對(duì)存儲(chǔ)的數(shù)據(jù)不做解析,看做字符串,具體數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)需要用戶(hù)自行處理 每行數(shù)據(jù)有一個(gè)可排序的關(guān)鍵字和任意列項(xiàng); 可將多個(gè)列歸并
21、為一組,稱(chēng)為“族”,同一個(gè)族的數(shù)據(jù)被壓縮在一起保存。 邏輯上的表被劃分成若干子表,每個(gè)子表存儲(chǔ)了table的一部分行(每個(gè)子表由多個(gè)SSTable文件組成,SSTable文件存儲(chǔ)在GFS上)8 Bigtable優(yōu)化機(jī)制局部性群組 根據(jù)需要,將原本不存儲(chǔ)在一起的數(shù)據(jù),以列族為單位存儲(chǔ)至單獨(dú)的子表。布隆過(guò)濾器 判斷某個(gè)元素是否隸屬于集合。合并壓縮 合并壓縮操作讀取多個(gè)SSTable,創(chuàng)建一個(gè)新的SSTable來(lái)保持其中的最新數(shù)據(jù)。9 云存儲(chǔ)應(yīng)用的特點(diǎn)通用的設(shè)備支持;數(shù)據(jù)同步與共享;任意格式/大小文件;免費(fèi)+付費(fèi)。第七講:MapReduce算法原理1 Mapreduce算法的架構(gòu)每個(gè)mapreduc
22、e 任務(wù)都被初始化為一個(gè)job ,每個(gè) job 分為兩個(gè)階段,實(shí)現(xiàn)了Map 和Reduce兩個(gè)功能:Map :把一個(gè)函數(shù)應(yīng)用于集合中所有成員,然后返回一個(gè)基于這個(gè)處理的結(jié)果集。Reduce:對(duì)結(jié)果集進(jìn)行分類(lèi)和歸納。2 Wordcount算例自動(dòng)分割文本。分割后的每一對(duì)<key,value> 進(jìn)行用戶(hù)定義的map處理,生成新的<key,value>對(duì)。系統(tǒng)自動(dòng)對(duì)輸出結(jié)果集歸攏排序,傳給reduce。通過(guò)reduce 生成最后結(jié)果。3 Hadoop執(zhí)行MR的過(guò)程master 節(jié)點(diǎn)運(yùn)行jobTracker 實(shí)例,接收客戶(hù)端job請(qǐng)求,一個(gè)job 是對(duì)一個(gè)數(shù)據(jù)集的處理,slav
23、e 節(jié)點(diǎn)運(yùn)行 TaskTracker 實(shí)例,一個(gè) task 是一次map或者reduce處理過(guò)程。MR 程序由一個(gè) jar 文件和一個(gè) xml 文件組成,jar 包含程序代碼,xml 包含程序配置操作??蛻?hù)端設(shè)定配置之后,交 job ,將job 數(shù)據(jù)發(fā)送到 jobTracker 的文件系統(tǒng)中,Mapreduce庫(kù)會(huì)把所輸入文件分割成 M 塊,放到不同的 datanote 上。 JobTracker 將 job 放入隊(duì)列進(jìn)行調(diào)度,并把 jar 和配置文件放到共享空間 Hadoop 有一個(gè)機(jī)器內(nèi)進(jìn)程間操作通信的機(jī)制,taskTracker 周期性告訴 jobTracker 工作狀態(tài),如果空,job
24、 給 task 分配任務(wù),開(kāi)一個(gè)進(jìn)程處理。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。 當(dāng)所有 map 和 reduce 任務(wù)完成時(shí),master 會(huì)喚醒用戶(hù)程序,通知任務(wù)完成,再取執(zhí)行新的任務(wù)。4 MR算法執(zhí)行過(guò)程中的數(shù)據(jù)流轉(zhuǎn)過(guò)程用戶(hù)文件上傳到HDFS,由mapreduce 庫(kù)切割分別存儲(chǔ)到datanote 上以行號(hào),文本形式傳入map 中,經(jīng)過(guò)自定義map 處理產(chǎn)生<key,value> 對(duì),構(gòu)成中間結(jié)果集緩存在本
25、地內(nèi)存中。reducer 接到master 的收集中間結(jié)果集任務(wù)后,通過(guò)遠(yuǎn)程調(diào)用讀取中間結(jié)果,并將其排序,key 相同的value 進(jìn)行合并處理化簡(jiǎn)。最終結(jié)果寫(xiě)入到GFS 文件系統(tǒng)中補(bǔ)充:1 什么是MapReduce?一個(gè)軟件架構(gòu),是一種處理海量數(shù)據(jù)的并行編程模式;用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并行運(yùn)算;MapReduce實(shí)現(xiàn)了Map和Reduce兩個(gè)功能: Map把一個(gè)函數(shù)應(yīng)用于集合中的所有成員,然后返回一個(gè)基于這個(gè)處理的結(jié)果集 Reduce對(duì)結(jié)果集進(jìn)行分類(lèi)和歸納 Map()和Reduce() 兩個(gè)函數(shù)可能會(huì)并行運(yùn)行,即使不是在同一的系統(tǒng)的同一時(shí)刻2 MapReduce的優(yōu)化? 任務(wù)備
26、份機(jī)制 本地處理 跳過(guò)有問(wèn)題的記錄3 MapReduce中的術(shù)語(yǔ)?job:MapReduce的一整個(gè)過(guò)程task:在一個(gè)job中,每個(gè)mapper和每個(gè)reducer做的事情task attempt:運(yùn)行一個(gè)task。主節(jié)點(diǎn)運(yùn)行JobTracker實(shí)例,它接受來(lái)自客戶(hù)端的工作要求。JobTracker的主要功能包括:作業(yè)控制:在hadoop中每個(gè)應(yīng)用程序被表示成一個(gè)作業(yè),每個(gè)作業(yè)又被分成多個(gè)任務(wù),JobTracker的作業(yè)控制模塊則負(fù)責(zé)作業(yè)的分解和狀態(tài)監(jiān)控。資源管理。taskTracker實(shí)例運(yùn)行在slave節(jié)點(diǎn)。TaskTracker的功能包括:匯報(bào)心跳:Tracker周期性將所有節(jié)點(diǎn)上各種
27、信息通過(guò)心跳機(jī)制匯報(bào)給JobTracker。執(zhí)行命令:JobTracker會(huì)給TaskTracker下達(dá)各種命令,主要包括:?jiǎn)?dòng)任務(wù)(LaunchTaskAction)、提交任務(wù)(CommitTaskAction)、殺死任務(wù)(KillTaskAction)、殺死作業(yè)(KillJobAction)和重新初始化(TaskTrackerReinitAction)。第八講:MapReduce算法應(yīng)用1 Mapreduce算法設(shè)計(jì)思想任務(wù)的分解與結(jié)果的匯總。2 運(yùn)用mapreduce算法解決實(shí)際問(wèn)題詞頻:WordCount 基礎(chǔ)上map 函數(shù)中,加入<*,num> 鍵值對(duì),一次mapredu
28、ce 過(guò)程得到每個(gè)詞出現(xiàn)的個(gè)數(shù)及總數(shù)inverted index (若干文本文件- > 倒排索引結(jié)果):map 輸出:<token,fileID,one>combiner 輸出:<token,fileID,sum > reduce 輸出:<key,value>=<word ,articleId:num > 計(jì)算文本相似度: 進(jìn)行倒排索引 計(jì)算兩兩文章對(duì)的相似性map:同一個(gè)詞對(duì)應(yīng)的文章鏈表中,兩兩文章構(gòu)成一組<article1,article2,num>reduce:進(jìn)行收集 統(tǒng)計(jì)文章相似度3 算法調(diào)優(yōu)給shuffle過(guò)程盡可能
29、多的內(nèi)存空間;Map和Reduce函數(shù)盡量少用內(nèi)存;運(yùn)行Map和Reduce任務(wù)的JVM 的內(nèi)存盡量大;Map端盡量估算Map輸入的大小,減少溢出寫(xiě)磁盤(pán)的次數(shù);Reduce端的中間數(shù)據(jù)盡可能的多駐留在內(nèi)存;增加Hadoop的文件緩沖區(qū)。4 Mapreduce運(yùn)行過(guò)程中的各種參數(shù)及其作用緩沖區(qū)大?。?00MB);緩沖區(qū)容量閾值(0.8);最多合并流數(shù)(10);溢出寫(xiě)次數(shù)最小值(3);壓縮標(biāo)志(false);壓縮方式;TaskTracker的工作線(xiàn)程數(shù)(40);Reduce任務(wù)復(fù)制線(xiàn)程(5);Reduce獲取一個(gè)Map輸出最大時(shí)間(300s);Map輸出內(nèi)存緩沖區(qū)占堆空間的百分比(0.7);緩沖區(qū)
30、溢出閾值(0.66);Map輸出閾值(1000);合并因子(10);輸入內(nèi)存閾值(0.0);Hadoop文件緩沖區(qū)(4KB)5 參數(shù)調(diào)優(yōu)將map輸出作為輸入傳給reducer,確保每個(gè)reducer的輸入都按鍵排序的過(guò)程叫shuffle,shuffle是調(diào)優(yōu)的重點(diǎn)。Map 產(chǎn)生輸出時(shí),通過(guò)緩沖寫(xiě)入內(nèi)存:緩沖區(qū)大小,容量閾值,指定路徑 按照要傳送到的reducer 對(duì)數(shù)據(jù)進(jìn)行partirion ,每個(gè)partition 內(nèi)部按照key 進(jìn)行鍵內(nèi)排序:合并流數(shù); 壓縮map 輸出效率更高:壓縮標(biāo)志;壓縮方式 reducer 通過(guò)http 方式從map 處得到輸出文件分區(qū),分區(qū)的工作線(xiàn)程數(shù)由task
31、tracker控制:工作線(xiàn)程數(shù)(tracker.http.threads )Reduce 只要一個(gè)map 任務(wù)完成,reduce 任務(wù)就開(kāi)始復(fù)制其輸出:復(fù)制線(xiàn)程數(shù);獲取map最大時(shí)間 若map 輸出小,復(fù)制到內(nèi)存中;否則先寫(xiě)入到內(nèi)存緩沖區(qū),達(dá)到閾值后寫(xiě)到磁盤(pán):內(nèi)存緩沖區(qū)占堆空間百分比;溢出閾值;map 輸出閾值; 后臺(tái)線(xiàn)程根據(jù)合并因子將其合并成更大的排好序的文件:合并因子 reduce 開(kāi)始時(shí),內(nèi)存中map 輸出大小不能超過(guò)輸入內(nèi)存閾值,以便為reduce 供盡可能多的內(nèi)存:輸入內(nèi)存閾值 輸出結(jié)果寫(xiě)入HDFS系統(tǒng):hadoop文件緩沖區(qū)大小6 案例的mapreduce算法第九講:Hadoop1
32、 Hadoop項(xiàng)目的由來(lái)起源于一個(gè)開(kāi)源的網(wǎng)絡(luò)搜索引擎項(xiàng)目ApacheNutch,借鑒GFS,實(shí)現(xiàn)了一個(gè)開(kāi)源的實(shí)現(xiàn)HDFS,05年nutch上實(shí)現(xiàn)了一個(gè)mapreduce系統(tǒng),完成了所有主要算法的mapreduce+HDFS移植。2 HDFS的體系結(jié)構(gòu)采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群是由一個(gè)NameNode和若干DataNode組成,其中NameNode作為主服務(wù)器, 管理文件系統(tǒng)的命名空間和客戶(hù)端對(duì)文件的訪(fǎng)問(wèn)操作。DataNode管理存儲(chǔ)的數(shù)據(jù)。HDFS允許用戶(hù)以文件的形式存儲(chǔ)數(shù)據(jù), 文件被分成若干個(gè)數(shù)據(jù)塊, 而且這若干個(gè)數(shù)據(jù)塊存放在一組DataNode上。Na
33、meNode是整個(gè)HDFS的核心, 它通過(guò)維護(hù)一些數(shù)據(jù)結(jié)構(gòu)來(lái)記錄每一個(gè)文件被分割成了多少個(gè)塊、這些塊可以從哪些DataNode中獲得, 以及各個(gè)DataNode的狀態(tài)等重要信息。NameNode 執(zhí)行文件系統(tǒng)的命名空間操作, 如打開(kāi)、關(guān)閉、重命名文件或目錄等, 也負(fù)責(zé)數(shù)據(jù)塊到具體DataNode的映射。DataNode負(fù)責(zé)處理文件系統(tǒng)客戶(hù)端的文件讀寫(xiě)操作, 并在 NameNode 的統(tǒng)一調(diào)度下進(jìn) 行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制操作。3 HDFS的運(yùn)行機(jī)制可靠性保障:冗余機(jī)制數(shù)據(jù)復(fù)制故障檢測(cè)datanode (心跳包,塊報(bào)告,數(shù)據(jù)完整性監(jiān)測(cè))namenode(日志和鏡像)讀文件流程: 客戶(hù)端調(diào)用Di
34、stributedFileSystem對(duì)象的open()方法 DistributedFileSystem通過(guò)RPC聯(lián)系namenode,得到所有數(shù)據(jù)塊信息,對(duì)每個(gè)數(shù)據(jù)塊,namenode返回存有該塊副本的datanode地址,并且這些datanode根據(jù)他們與客戶(hù)端的距離進(jìn)行排序 DistributedFileSystem類(lèi)返回一個(gè)FSDataInputStream對(duì)象給客戶(hù)端并讀取數(shù)據(jù) 客戶(hù)端對(duì)該對(duì)象調(diào)用read()方法讀取數(shù)據(jù) FSDataInputStream連接距離最近的datanode讀取數(shù)據(jù),數(shù)據(jù)讀取完畢時(shí)FSDataInputStream會(huì)關(guān)閉與該datanode的連接,然后尋找
35、下一個(gè)塊的datanode FSDataInputStream可能并行讀取多個(gè)datanode,當(dāng)客戶(hù)端完成讀取時(shí),對(duì)FSDataInputStream調(diào)用close()方法 FSDataInputStream從datanode讀取數(shù)據(jù)時(shí)如果遇到錯(cuò)誤,會(huì)嘗試從該塊的另外一個(gè)最近的datanode讀取數(shù)據(jù),并記住故障datanode保證以后不會(huì)繼續(xù)從該節(jié)點(diǎn)讀取其他塊 每個(gè)讀取的塊通過(guò)校驗(yàn)和確認(rèn)以保證數(shù)據(jù)完整 如果FSDataInputStream發(fā)現(xiàn)一個(gè)損壞的塊,則在從其他datanode讀取塊之前通知namenode寫(xiě)文件流程: 客戶(hù)端調(diào)用DistributedFileSystem對(duì)象的cre
36、ate()方法創(chuàng)建文件 DistributedFileSystem通過(guò)RPC聯(lián)系namenode,namenode執(zhí)行各種檢查確保待建立的文件不存在,且客戶(hù)端擁有創(chuàng)建該文件的權(quán)限 如果檢查通過(guò),namenode為新文件創(chuàng)建一條記錄,否則拋出一個(gè)IOException異常 DistributedFileSystem給客戶(hù)端返回一個(gè)FSDataOutputStream對(duì)象進(jìn)行寫(xiě)數(shù)據(jù) FSDataOutputStream將待寫(xiě)入數(shù)據(jù)分成數(shù)據(jù)包并寫(xiě)入內(nèi)部隊(duì)列dataqueue DataStreamer處理dataqueue,根據(jù)datanode列表要求namenode分配適合的新塊來(lái)存儲(chǔ)數(shù)據(jù)備份 namenode分配的數(shù)據(jù)備份datanode(通常3個(gè))形成一個(gè)管線(xiàn),DataStreamer將數(shù)據(jù)包傳輸給管線(xiàn)中的第一個(gè)節(jié)點(diǎn),然后該節(jié)點(diǎn)存儲(chǔ)完之后發(fā)送給第二個(gè)節(jié)點(diǎn),以此類(lèi)推 FSDataOutputStream維護(hù)一個(gè)確認(rèn)隊(duì)列ackqueue,當(dāng)收到管線(xiàn)中所有datanode的確認(rèn)后,該數(shù)據(jù)包從確認(rèn)隊(duì)列中刪除 如果datanode發(fā)生故障,則關(guān)閉管線(xiàn),將確認(rèn)隊(duì)列中的數(shù)據(jù)包添加回?cái)?shù)據(jù)隊(duì)列的最前端,將故障的數(shù)據(jù)塊和datanode信息
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度面料市場(chǎng)調(diào)研與采購(gòu)合作協(xié)議范本4篇
- 2025年度個(gè)人出納職業(yè)擔(dān)保合同規(guī)范范本4篇
- 2025年度內(nèi)部設(shè)施設(shè)備更新改造承包協(xié)議4篇
- 2025年度新能源汽車(chē)零部件供應(yīng)合同樣本3篇
- 二零二五年度成人教育代理招生服務(wù)合同范本7篇
- 二零二五年度企業(yè)破產(chǎn)財(cái)產(chǎn)保全及清算合同3篇
- 2023年-2024年公司項(xiàng)目部負(fù)責(zé)人安全教育培訓(xùn)試題及參考答案【典型題】
- 2025版養(yǎng)老機(jī)構(gòu)護(hù)理服務(wù)外包合同模板4篇
- 2023年員工三級(jí)安全培訓(xùn)考試題新
- 二零二五年度辦公樓智能化門(mén)禁系統(tǒng)租賃合同全文4篇
- 護(hù)理飲食指導(dǎo)整改措施及方案
- 項(xiàng)目工地春節(jié)放假安排及安全措施
- 印染廠(chǎng)安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計(jì)
- 胸外科手術(shù)圍手術(shù)期處理
- 裝置自動(dòng)控制的先進(jìn)性說(shuō)明
- 《企業(yè)管理課件:團(tuán)隊(duì)管理知識(shí)點(diǎn)詳解PPT》
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)二 軟文的寫(xiě)作
- 英語(yǔ)詞匯教學(xué)中落實(shí)英語(yǔ)學(xué)科核心素養(yǎng)
- 《插畫(huà)設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 高中英語(yǔ)名詞性從句講解
評(píng)論
0/150
提交評(píng)論