云計算基本知識_第1頁
云計算基本知識_第2頁
云計算基本知識_第3頁
云計算基本知識_第4頁
云計算基本知識_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)對突發(fā)任務(wù)或事件更加平衡

2、的資源分配和負(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ù)更加松散耦合、靈活的IT架構(gòu)轉(zhuǎn)變了人們對IT系統(tǒng)的認(rèn)識軟件即服務(wù)SaaS轉(zhuǎn)變了人們使

3、用服務(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)用(Rich Internet Application )成為網(wǎng)絡(luò)應(yīng)用發(fā)展的趨勢改變了人們的生活方式為云計算提出了內(nèi)在需求4 查找資料:業(yè)界主流

4、的云計算產(chǎn)品典型的云計算應(yīng)用補(bǔ)充:1 云計算特征是什么C1硬件和軟件都是資源資源可以根據(jù)需要進(jìn)行動態(tài)擴(kuò)展與配置按用計費、無需管理物理上分布式共享,邏輯上以單一整體呈現(xiàn)2 云計算的發(fā)展歷程超級計算機(jī)集群計算 分布式計算 網(wǎng)格計算 效用計算 云計算第二講:云服務(wù)1 云服務(wù)的基本層次云計算的基本層次分為三層,依次為IaaS, PaaS 和 SaaS。IaaS (架構(gòu)即服務(wù)),提供了核心計算資源和網(wǎng)絡(luò)架構(gòu)的服務(wù)?;A(chǔ)設(shè)施棧包括操作系統(tǒng)訪問、防火墻、路由和負(fù)載平衡。示例產(chǎn)品:Flexiscale 和 Amazon EC2。PaaS (平臺即服務(wù))提供平臺給系統(tǒng)管理員和開發(fā)人員,令其可以基于平臺構(gòu)建、測試

5、及部署定制應(yīng)用程序。也降低了管理系統(tǒng)的成本。典型服務(wù)包括Storage 、 Database 、 Scalability 。示例產(chǎn)品:Google App Engine 、 AWS:S3、 Microsoft Azure 。SaaS (軟件即服務(wù))通過 Internet提供軟件的模式,用戶向提供商租用基于Web的軟件來管理企業(yè)經(jīng)營活動,且無需對軟件進(jìn)行維護(hù),服務(wù)提供商會全權(quán)管理和維護(hù)軟件。示例產(chǎn)品: Google Docs 、 CRM、 Financial Planning 、 Human Resources 、 Word Processing 等。2 IaaS 的基本功能資源抽象(2資源監(jiān)控

6、(3負(fù)載管理(4數(shù)據(jù)管理資源部署安全管理計費管理3 PaaS 的基本功能 開發(fā)平臺運(yùn)行時環(huán)境運(yùn)營環(huán)境補(bǔ)充:1 IaaS 服務(wù)流程規(guī)劃階段-> 部署階段-> 運(yùn)行階段2 PaaS 實現(xiàn)步驟總體設(shè)計開發(fā)平臺(3運(yùn)行環(huán)境(4運(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)控和計費4 應(yīng)用層的特征網(wǎng)絡(luò)訪問模式- 租用付費高度整合第四講:虛擬化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ī)的兼容性C4高性能- 可通過擴(kuò)展獲得“無限”的性能虛

8、擬化抽象層需要一定管理開銷3 服務(wù)器虛擬化的關(guān)鍵技術(shù)C1計算虛擬化CPU虛擬化- 計算負(fù)載的動態(tài)分配能耗管理存儲虛擬化內(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)建虛擬化解決方案的步驟C1創(chuàng)建虛擬化解決方案部署虛擬化解決方案管理虛擬化解決方案5 什么是數(shù)據(jù)中心數(shù)據(jù)中心是一整套復(fù)雜的設(shè)施,它不僅僅包括計算機(jī)系統(tǒng)和其它與之配套的設(shè)備(例如通信和存儲系統(tǒng)),還包含冗余的數(shù)據(jù)通信連接、環(huán)境控制設(shè)備、監(jiān)控設(shè)置以及各種安全裝置。6 虛擬化與云計算的關(guān)系虛擬

9、化技術(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ò)提供給客戶。可以說云計算是虛擬化的最高境界,虛擬化是云計算的底層結(jié)構(gòu)。補(bǔ)充:1 虛擬化的典型類型<1基礎(chǔ)設(shè)施虛擬化系統(tǒng)虛擬化軟件虛擬化2 虛擬化的目的C1對象脫離原有環(huán)境在計算機(jī)上被表示 通過計算機(jī)控制按需獲取第五講:OpenStack1 AWS 模式是什么,有什么優(yōu)點Amazon Web

10、Services(AWS)模式:用戶應(yīng)用使用IaaS基石Hi IT資源,將PaaS和通用服務(wù)作為應(yīng)用架構(gòu)中的組件來構(gòu)建自 己的服務(wù)特點:通過 Web Service接口開放數(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)系鏡像:固定搭配實例:固定搭配的一個實例鏡像的存在便于對大量實例的管理,如歸類、縮短選擇時間、計費等5 Nova 有哪些核心模塊,工作過程是什么Nova 是一套控制器,用于為單個用戶或使用群組啟動虛擬機(jī)實例。將提供預(yù)制的鏡像或是為用戶創(chuàng)建的鏡像提供存儲機(jī)制,這樣用戶就能夠?qū)㈢R像以虛擬機(jī)的形式啟動。NovaNova-api :負(fù)責(zé)接收和響應(yīng)終端用戶有關(guān)虛擬機(jī)計算和云硬盤存儲的請求,是整個的入口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é)議,采用REST風(fēng)格實現(xiàn)接口定義和響應(yīng),發(fā)送執(zhí)行消息指令至隊列,由具體的訂閱實現(xiàn)模塊執(zhí) 行指令。6 Keystone 權(quán)限控制過程是什么User:用戶,就是一個人的賬號Credential :用來證明用戶身份的證據(jù)Authentication :鑒權(quán),也即對用戶身份鑒別

13、的一個過程。Token:令牌。對用戶鑒權(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) 。一個用戶可以同時屬于多個

14、不同的項目,當(dāng)然在不同的項目中可以充當(dāng)不同的角色,也即擁有不同的權(quán)限。關(guān)鍵的兩點:1) User 從 Keystone 獲取令牌以及服務(wù)列表;2)User 訪問服務(wù)時,亮出自己的令牌,相關(guān)的服務(wù)向Keystone 求證令牌的合法性。7 Quantum 原理是什么實現(xiàn)網(wǎng)絡(luò)連接管理,解決網(wǎng)絡(luò)虛擬化問題。8 Swift 的核心概念有哪些Object:對象?;镜拇鎯嶓w,所有數(shù)據(jù)按照對象進(jìn)行存儲。Container:容器。對象的裝載體,組織數(shù)據(jù)的方式,存儲的隔間,類似于文件夾,但不能 嵌套, object 存儲于 container 中。-Account :賬戶。權(quán)限單位, account擁有若干

15、container。9 Swift 的組件有哪些,都有什么作用Proxy Server:提供Swift API的服務(wù)器進(jìn)程,負(fù)責(zé) Swift其余組件間的相互通信Storage Server:提供了磁盤設(shè)備上的存儲服務(wù)Consistency Server:查找并解決由數(shù)據(jù)損壞和硬件故障引起的錯誤,包含 Auditor、Updater 和 ReplicatorRing:用于記錄存儲對象和物理位置間的映射關(guān)系10 Ring算法思想是什么一致性哈希算法:Swift 利用一致性哈希算法構(gòu)建了一個冗余的可擴(kuò)展的分布式對象存儲集群。Swift 采用一致性哈希的主要目的是在改變集群的Node 數(shù)量時,能夠盡可

16、能少地改變已存在Key 和 Node 的映射關(guān)系。該算法的思路分為以下三個步驟。首先計算每個節(jié)點的哈希值,并將其分配到一個02A32的圓環(huán)區(qū)間上。其次使用相同方法計算存儲對象的哈希值,也將其分配到這個圓環(huán)上。隨后從數(shù)據(jù)映射到的位置開始順時針查找,將數(shù)據(jù)保存到找到的第一個節(jié)點上。如果超過2A32 仍然找不到節(jié)點,就會保存到第一個節(jié)點上。Replica。Zone:把集群的 Node分配到每個 Zone中,其中同一個 Partition的Replica不能同時放在同一個Node 上或同一個Zone 內(nèi)。Weight:未來添加存儲能力更大的Node時,分配到更多的 Partition。11 Quoru

17、m 協(xié)議的內(nèi)容是什么在分布式存儲系統(tǒng)中用于控制一致性級別的一種策略。N = numbers of nodes that store data (同一份數(shù)據(jù)的Replica 的份數(shù))W = number of successful writes in a put request (更新一個數(shù)據(jù)對象時需要確保成功更新的份數(shù))R = number of successful reads in a get request (讀取數(shù)據(jù)時需要讀取的Replica 的份數(shù))W + R > NW>N/2 (常用:N=3、 w=R=2)第六講:云存儲1 大規(guī)模數(shù)據(jù)存儲面臨的新問題與挑戰(zhàn) 成本問題-容

18、量問題 可靠問題-使用問題2 GFS體系結(jié)構(gòu)Client: GFS提供給應(yīng)用程序的庫文件形式訪問接口;Master: GFS的管理節(jié)點,邏輯上只有一個,保存系統(tǒng)元數(shù)據(jù);Chunk Server: 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ī)制4 1 Master 容錯三類元數(shù)據(jù):命名空間(目錄結(jié)構(gòu))、Chunk與文件名的映射以及Chunk副本的位置信息。

19、- 前兩類通過日志提供容錯,Chunk副本信息存儲于 Chunk Server, Master出現(xiàn)故障時可恢復(fù)。Chunk Server 容錯- 每個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)1- 在一次Paxos算法的執(zhí)行實例中,只批準(zhǔn)( ch

20、osen) 一個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)鍵字+時間戳進(jìn)行索引Bigtable對存

21、儲的數(shù)據(jù)不做解析,看做字符串,具體數(shù)據(jù)結(jié)構(gòu)實現(xiàn)需要用戶自行處理每行數(shù)據(jù)有一個可排序的關(guān)鍵字和任意列項;-可將多個列歸并為一組,稱為“族”,同一個族的數(shù)據(jù)被壓縮在一起保存。邏輯上的表被劃分成若干子表,每個子表存儲了 table的一部分行(每個子表由多個 SSTable文件組成,SSTable文件存儲在GFS上)8 Bigtable 優(yōu)化機(jī)制局部性群組根據(jù)需要,將原本不存儲在一起的數(shù)據(jù),以列族為單位存儲至單獨的子表。布隆過濾器判斷某個元素是否隸屬于集合。合并壓縮合并壓縮操作讀取多個SSTable,創(chuàng)建一個新的 SSTable來保持其中的最新數(shù)據(jù)。9 云存儲應(yīng)用的特點通用的設(shè)備支持;數(shù)據(jù)同步與共享;

22、任意格式/大小文件;免費+付費。第七講:MapReduce算法原理1 Mapreduce 算法的架構(gòu)每個 mapreduce 任務(wù)都被初始化為一個job ,每個 job 分為兩個階段,實現(xiàn)了Map 和Reduce 兩個功能:Map :把一個函數(shù)應(yīng)用于集合中所有成員,然后返回一個基于這個處理的結(jié)果集。Reduce:對結(jié)果集進(jìn)行分類和歸納。2 Wordcount 算例自動分割文本。分割后的每一對key,value進(jìn)行用戶定義的 map處理,生成新的key,value對。系統(tǒng)自動對輸出結(jié)果集歸攏排序,傳給reduce。C4通過reduce生成最后結(jié)果。3 Hadoop 執(zhí)行 MR 的過程©

23、master節(jié)點運(yùn)行jobTracker實例,接收客戶端 job請求,一個job是對一個數(shù)據(jù)集的處理, slave 節(jié)點運(yùn)行TaskTracker 實例,一個task 是一次 map 或者 reduce 處理過程。MR程序由一個jar文件和一個 xml文件組成,jar包含程序代碼,xml包含程序配置操作??蛻舳嗽O(shè)定配置之后,交job ,將job數(shù)據(jù)發(fā)送到j(luò)obTracker 的文件系統(tǒng)中, Mapreduce庫會把所輸入文件分割成M 塊,放到不同的datanote 上。©JobTracker將job放入隊列進(jìn)行調(diào)度,并把 jar和配置文件放到共享空間Hadoop有一個機(jī)器內(nèi)進(jìn)程間操作

24、通信的機(jī)制,taskTracker周期性告訴 jobTracker工作狀態(tài),如果空,job 給 task 分配任務(wù),開一個進(jìn)程處理。MR程序被傳送到各個數(shù)據(jù)所在的HDFS的datanote上運(yùn)行,mapper被輸送到數(shù)據(jù)節(jié)點上進(jìn)行計算,中間結(jié)果被輸送到reducer 上進(jìn)行計算,Reducer 將計算結(jié)果分布式保存到HDFS。當(dāng)所有 map和reduce任務(wù)完成時,master會喚醒用戶程序,通知任務(wù)完成, 再取執(zhí)行新的任務(wù)。4 MR 算法執(zhí)行過程中的數(shù)據(jù)流轉(zhuǎn)過程C1用戶文件上傳到 HDFS,由mapreduce 庫切割分別存儲到 datanote 上以行號,文本形式傳入map中,經(jīng)過自定義

25、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ù)的并行編程模式;用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并行運(yùn)算;MapReduce實現(xiàn)了 Map和Reduce兩個功能:Map把一個函數(shù)應(yīng)用于集合中的所有成員,然后返回一個基于這個處理的結(jié)果集-Reduce對結(jié)果集進(jìn)行分類和歸納-Map()和Reduce()兩個函數(shù)可能會并行運(yùn)行,即使不是在同

26、一的系統(tǒng)的同一時刻2 MapReduce 的優(yōu)化-任務(wù)備份機(jī)制-本地處理跳過有問題的記錄3 MapReduce 中的術(shù)語job: MapReduce 的一整個過程task:在一個 job中,每個 mapper和每個reducer做的事情task attempt :運(yùn)行一個task。JobTracker 的主要功能包括:主節(jié)點運(yùn)行JobTracker 實例,它接受來自客戶端的工作要求。作業(yè)控制:在hadoop中每個應(yīng)用程序被表示成一個作業(yè),每個作業(yè)又被分成多個任務(wù),JobTracker的作業(yè)控制模塊則負(fù)責(zé)作業(yè)的分解和狀態(tài)監(jiān)控。資源管理。taskTracker實例運(yùn)行在 slave節(jié)點。TaskT

27、racker的功能包括:匯報心跳:Tracker周期性將所有節(jié)點上各種信息通過心跳機(jī)制匯報給JobTracker。(2執(zhí)行命令:JobTracker會給TaskTracker下達(dá)各種命令,主要包括:啟動任務(wù)(LaunchTaskAction)、提交任務(wù)(CommitTaskAction)、殺死任務(wù)(KillTaskAction)、殺死作業(yè)(KillJobAction) 和重新初始化(TaskTrackerReinitAction)。第八講:MapReduce算法應(yīng)用1 Mapreduce算法設(shè)計思想任務(wù)的分解與結(jié)果的匯總。2運(yùn)用mapreduce算法解決實際問題詞頻:WordCount基礎(chǔ)上m

28、ap函數(shù)中,加入<*,num>鍵值對,一次 mapreduce過程得到每個詞 出現(xiàn)的個數(shù)及總數(shù)inverted index(若干文本文件- > 倒排索引結(jié)果):map 輸出:<token,fileID,one>combiner 輸出:<token,fileID,sum >reduce 輸出:<key,value> = <word , articleId : num >計算文本相似度:進(jìn)行倒排索引一計算兩兩文章對的相似性map:同一個詞對應(yīng)的文章鏈表中,兩兩文章構(gòu)成一組<article1,article2,num>re

29、duce :進(jìn)行收集一統(tǒng)計文章相似度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ū)。4 Mapreduce 運(yùn)行過程中的各種參數(shù)及其作用緩沖區(qū)大?。?00MB );緩沖區(qū)容量閾值(0.8);最多合并流數(shù)(10);溢出寫次數(shù)最小值(3);壓縮標(biāo)志(false);壓縮方式;TaskTracker的工作線程數(shù)(40) ; Reduce任務(wù)復(fù)制線 程(5)

30、;Reduce 獲取一個Map 輸出最大時間(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 ,確保每個reducer 的輸入都按鍵排序的過程叫shuffle,shuffle 是調(diào)優(yōu)的重點。C1Map 產(chǎn)生輸出時,通過緩沖寫入內(nèi)存:緩沖區(qū)大小,容量閾值,指定路徑 按照要傳送到的reducer 對數(shù)據(jù)進(jìn)行partirion ,每個 partition 內(nèi)部按照key 進(jìn)行鍵內(nèi)排序:合并流數(shù)

31、; 壓縮 map 輸出效率更高:壓縮標(biāo)志;壓縮方式 reducer 通過 http 方式從 map 處得到輸出文件分區(qū),分區(qū)的工作線程數(shù)由tasktracker Reduce 只要一個map 任務(wù)完成,reduce 任務(wù)就開始復(fù)制其輸出:復(fù)制線程數(shù);獲取map最大時間 若 map 輸出小,復(fù)制到內(nèi)存中;否則先寫入到內(nèi)存緩沖區(qū),達(dá)到閾值后寫到磁盤:內(nèi)存緩沖區(qū)占堆空間百分比;溢出閾值;map 輸出閾值; 后臺線程根據(jù)合并因子將其合并成更大的排好序的文件:合并因子reduce ?供 reduce 開始時,內(nèi)存中map 輸出大小不能超過輸入內(nèi)存閾值,以便為 盡可能多的內(nèi)存:輸入內(nèi)存閾值輸出結(jié)果寫入HD

32、FS系統(tǒng):hadoop文件緩沖區(qū)大小6 案例的 mapreduce 算法第九講:Hadoop1 Hadoop 項目的由來起源于一個開源的網(wǎng)絡(luò)搜索引擎項目Apache Nutch ,借鑒GFS實現(xiàn)了一個開源的實現(xiàn)HDFS, 05 年 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ù)

33、。HDFS允許用戶以文件的形式存儲數(shù)據(jù),文件被分成若干個數(shù)據(jù)塊,而且這若干個數(shù)據(jù)塊存 放在一組DataNode上。NameNode是整個HDFS的核心,它通過維護(hù)一些數(shù)據(jù)結(jié)構(gòu)來記錄每一個 文件被分割成了多少個塊、這些塊可以從哪些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ī)制4 1可靠性保障:

34、冗余機(jī)制數(shù)據(jù)復(fù)制故障檢測 datanode (心跳包,塊報告,數(shù)據(jù)完整性監(jiān)測)namenode (日志和鏡像)5 讀文件流程:-客戶端調(diào)用 DistributedFileSystem 對象的open ()方法- DistributedFileSystem 通過RPC聯(lián)系namenode,得到所有數(shù)據(jù)塊信息,對每個數(shù)據(jù)塊, namenode 返回存有該塊副本的datanode 地址,并且這些datanode 根據(jù)他們與客戶端的距離進(jìn)行排序- DistributedFileSystem類返回一個 FSDataInputStream對象給客戶端并讀取數(shù)據(jù)- 客戶端對該對象調(diào)用read ()方法讀取數(shù)

35、據(jù)- FSDataInputStream連接距離最近的 datanode讀取數(shù)據(jù),數(shù)據(jù)讀取完畢時 FSDataInputStream會關(guān)閉與該datanode 的連接,然后尋找下一個塊的datanode- FSDataInputStream可能并行讀取多個datanode ,當(dāng)客戶端完成讀取時,對FSDataInputStream 調(diào)用 close ()方法 FSDataInputStream 從 datanode 讀取數(shù)據(jù)時如果遇到錯誤,會嘗試從該塊的另外一個最近的datanode 讀取數(shù)據(jù),并記住故障datanode 保證以后不會繼續(xù)從該節(jié)點讀取其他塊每個讀取的塊通過校驗和確認(rèn)以保證數(shù)據(jù)完

36、整-如果FSDataInputStream發(fā)現(xiàn)一個損壞的塊,則在從其他 datanode讀取塊之前通知 namenode寫文件流程:- 客戶端調(diào)用 DistributedFileSystem 對象的create ()方法創(chuàng)建文件- DistributedFileSystem 通過RPC聯(lián)系namenode,namenode 執(zhí)行各種檢查確保待建立的文件不存在,且客戶端擁有創(chuàng)建該文件的權(quán)限- 如果檢查通過,namenode為新文件創(chuàng)建一條記錄,否則拋出一個 IOException異常DistributedFileSystem給客戶端返回一個FSDataOutputStream對象進(jìn)行寫數(shù)據(jù)- F

37、SDataOutputStream將待寫入數(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

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論