




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