Sample
-
云計(jì)算是對(duì)并行計(jì)算、網(wǎng)格計(jì)算、分布式計(jì)算技術(shù)的發(fā)展與運(yùn)用
-
從研究現(xiàn)狀上看,下面不屬于云計(jì)算特點(diǎn)私有化
超大規(guī)模、虛擬化、高可靠性
- 與網(wǎng)絡(luò)計(jì)算相比,不屬于云計(jì)算特征的是適合緊耦合科學(xué)計(jì)算
- 亞馬遜AWS提供的云計(jì)算服務(wù)類型是IaaS、PaaS、SaaS
- 微軟于2008年10月推出云計(jì)算操作系統(tǒng)是Azure
- 簡(jiǎn)單的理解為云計(jì)算等于資源的閑置而產(chǎn)生的√
- 基于WEB服務(wù)同PaaS類似,服務(wù)提供者利用Web服務(wù),通過(guò)Internet給軟件開(kāi)發(fā)者提供API應(yīng)用接口,而不是整個(gè)應(yīng)用程序。
- 以下服務(wù)器虛擬化技術(shù)中需要修改Guest OS內(nèi)核的是半虛擬化
- 虛擬機(jī)遷移過(guò)程中,遷移源主機(jī)在預(yù)復(fù)制步驟中第一次迭代把所有內(nèi)存內(nèi)容都復(fù)制到目標(biāo)主機(jī)中?
- 遷移存儲(chǔ)設(shè)備的最大障礙在于需要占用大量時(shí)間和網(wǎng)絡(luò)帶寬,通常的解決辦法是以共享的方式共享數(shù)據(jù)和文件系統(tǒng),而非真正遷移。
- NAS (Network Attached Storage)網(wǎng)絡(luò)連接存儲(chǔ)技術(shù)存儲(chǔ)技術(shù)使用標(biāo)準(zhǔn)TCP/IP網(wǎng)絡(luò)協(xié)議加入網(wǎng)絡(luò)?
- 服務(wù)器虛擬化的底層實(shí)現(xiàn)包括CPU虛擬化;內(nèi)存虛擬化;I/O虛擬化
- 虛擬局域網(wǎng)(VLAN);虛擬專用網(wǎng)(VPN);虛擬網(wǎng)絡(luò)設(shè)備屬于比較常見(jiàn)的網(wǎng)絡(luò)虛擬化應(yīng)用
- 軟件定義網(wǎng)絡(luò)(SDN)將網(wǎng)絡(luò)分為控制層;數(shù)據(jù)層
- IaaS最標(biāo)志性的業(yè)務(wù)特征是按需計(jì)費(fèi)——效用計(jì)算
- 虛擬化作用于IaaS技術(shù)架構(gòu)中動(dòng)態(tài)資源層
- 管理層的作用是對(duì)動(dòng)態(tài)資源層進(jìn)行統(tǒng)一的運(yùn)維和管理資源配置、系統(tǒng)監(jiān)控、負(fù)載均衡
- PaaS主要面向的用戶是應(yīng)用開(kāi)發(fā)者
- 分布式技術(shù)是PaaS架構(gòu)中的關(guān)鍵技術(shù)
- PaaS平臺(tái)層也叫作彈性計(jì)算層
- 按照成熟度排列以下SaaS平臺(tái)架構(gòu)最成熟的架構(gòu)為可伸縮多租戶架構(gòu)
- 卷是持久的塊存儲(chǔ)設(shè)備,可以附加到虛擬機(jī)實(shí)例,或者從虛擬機(jī)實(shí)例分離,關(guān)于卷操作不能實(shí)現(xiàn)的是可以將卷同時(shí)連接到多個(gè)虛擬機(jī)實(shí)例
- 什么是docker虛擬化技術(shù)?Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎
- Docker目前可以運(yùn)行在什么系統(tǒng)上?Linux
- Docker跟KVM、Xen虛擬化的區(qū)別是?啟動(dòng)快,資源占用小,基于linux容器技術(shù)。
- 使用Docker可以企業(yè)幫助解決什么問(wèn)題?服務(wù)器資源利用率不充分,部署難問(wèn)題。
- docker如何進(jìn)入容器,命令格式是?docker -exec -it docker-id /bin/bash
- 云計(jì)算就是把計(jì)算資源都放到上互聯(lián)網(wǎng)
- 我們常提到的"Window裝個(gè) VMware裝個(gè)Linux虛擬機(jī)"屬于系統(tǒng)虛擬化
- 虛擬化資源指一些可以實(shí)現(xiàn)一定操作具有一定功能,但其本身是虛擬
- 集群在許多情況下,能夠達(dá)到99.999%的可用性。
- GoogleGFS與開(kāi)源云計(jì)算系統(tǒng)HadoopHDFS相對(duì)應(yīng)的商用云計(jì)算軟件系統(tǒng)是
- 云計(jì)算可以把普通的服務(wù)器或者PC連接起來(lái)以獲得超級(jí)計(jì)算機(jī)計(jì)算機(jī)的計(jì)算和存儲(chǔ)等功能,但是成本更低?!?/li>
- 分布式是公有云計(jì)算基礎(chǔ)架構(gòu)的基石。
- 云計(jì)算體系結(jié)構(gòu)的管理中間件層負(fù)責(zé)資源管理、任務(wù)管理用戶管理和安全管理等工作
- 網(wǎng)格計(jì)算是利用因特網(wǎng)技術(shù),把分散在不同地理位置的計(jì)算機(jī)組成一臺(tái)虛擬超級(jí)計(jì)算機(jī)。
- 云計(jì)算里面面臨的一個(gè)很大的問(wèn)題,就是節(jié)能
- RAID5有校驗(yàn)數(shù)據(jù),提供數(shù)據(jù)容錯(cuò)能力
- 監(jiān)控端監(jiān)控和計(jì)量云系統(tǒng)資源的使用情況,以便做出迅速反應(yīng),完成節(jié)點(diǎn)同步配置、負(fù)載均衡配置和資源監(jiān)控,確保資源能順利分配給合適的用戶。
- 虛擬化是私有云計(jì)算基礎(chǔ)架構(gòu)的基石。
- 交互式服務(wù)是PaaS架構(gòu)中的關(guān)鍵技術(shù)
- 定制開(kāi)發(fā)不是SaaS平臺(tái)的特點(diǎn)
- 使用Docker可以企業(yè)幫助解決什么問(wèn)題?服務(wù)器資源利用率不充分,部署難問(wèn)題。
- Docker是基于什么作為引擎的?LXC
- 在Docke命令中,創(chuàng)建一個(gè)容器的命令是:dockerrun
- GFS系統(tǒng)的特點(diǎn):GFS采用中心服務(wù)器模式、不緩存數(shù)據(jù)、系統(tǒng)在用戶態(tài)下實(shí)現(xiàn)
- MapReduce是一個(gè)抽象計(jì)算模型,封裝實(shí)現(xiàn)了并行處理、容錯(cuò)處理、本地化計(jì)算、負(fù)載均衡
- 關(guān)于MapReduce編程模型的描述
- MapReduce的編程模型包含Map和Reduce兩
個(gè)函數(shù)處理過(guò)程。- 對(duì)于map和reduce每個(gè)過(guò)程都由不同的計(jì)算機(jī)
進(jìn)行并行計(jì)算處理。- Map的輸出結(jié)果是一組對(duì),這是經(jīng)過(guò)Map操作
后所產(chǎn)生的中間結(jié)果。- Reduce的工作是對(duì)相同key的value值進(jìn)行歸并
處理。
- 關(guān)于BigTable正確的說(shuō)法有:
- BigTable的作用類似于數(shù)據(jù)庫(kù)。
- 可以為應(yīng)用提供簡(jiǎn)單的數(shù)據(jù)查詢功能。
- 可以為應(yīng)用提供簡(jiǎn)單的數(shù)據(jù)查詢功能。
為第三方應(yīng)用提供數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)功能。
- MapReduce實(shí)現(xiàn)機(jī)制中,Mapworker產(chǎn)生的中間結(jié)果最后保存到哪里,供Reduceworker讀取? Mapworker本地硬盤中
《云計(jì)算概論》期末考試試題-樣本
選擇題
- 云計(jì)算是以服務(wù)的形式,按需向用戶提供計(jì)算資源的一種模式。
- 云計(jì)算的特性:彈性資源分配、按需使用、多租戶
- 傳統(tǒng)的加密、攻防技術(shù)是保障云計(jì)算安全的重要手段。
- 能被虛擬化的IT資源:①計(jì)算節(jié)點(diǎn);②存儲(chǔ)設(shè)備;③網(wǎng)絡(luò)設(shè)備;④電源
- 操作系統(tǒng)級(jí)虛擬化的主要優(yōu)點(diǎn)是執(zhí)行效率高
- 頁(yè)表壓縮法不是內(nèi)存虛擬化技術(shù)
- 主機(jī)虛擬化技術(shù)中,性能最高的是半虛擬化
- 存儲(chǔ)虛擬化依賴于分布式文件系統(tǒng)對(duì)不同存儲(chǔ)資源的整合。
- 云存儲(chǔ)設(shè)備機(jī)制提供的常見(jiàn)數(shù)據(jù)存儲(chǔ)邏輯單元包括①文件;②塊;③數(shù)據(jù)集;④對(duì)象
- 虛擬交換不可以實(shí)現(xiàn)跨交換設(shè)備的網(wǎng)絡(luò)鏈路資源整合。
- 多租戶技術(shù)需要滿足隔離性、可恢復(fù)性、可擴(kuò)展性等多個(gè)要求。
- 私有云不需要呈現(xiàn)技術(shù)。
- 云計(jì)算環(huán)境下的虛擬化攻擊指利用虛擬化平臺(tái)中的漏洞來(lái)危害虛擬化平臺(tái)的攻擊類型。
- 信任邊界重疊使得惡意用戶可以通過(guò)威脅共享資源實(shí)現(xiàn)對(duì)其他用戶的攻擊。
- 可用性(availability)是在特定的時(shí)間段內(nèi)可以訪問(wèn)和可以使用的特性。
- 威脅作用者可以來(lái)自內(nèi)部也可以來(lái)自外部。
- 網(wǎng)絡(luò)虛擬化:
- 網(wǎng)絡(luò)虛擬化的主要目標(biāo)是實(shí)現(xiàn)網(wǎng)絡(luò)即服務(wù)的功能。
- 虛擬網(wǎng)路可以實(shí)現(xiàn)同一物理主機(jī)上的多個(gè)虛擬機(jī)之間的互聯(lián)。
- VLAN是網(wǎng)絡(luò)虛擬化的一個(gè)重要實(shí)現(xiàn)方式。
- 虛擬交換可以實(shí)現(xiàn)跨交換設(shè)備的網(wǎng)絡(luò)鏈路資源整合。
- 自動(dòng)伸縮機(jī)制描述:
- 自動(dòng)伸縮的判定條件可以是云用戶發(fā)送的請(qǐng)求的數(shù)量。
- 自動(dòng)伸縮的判定條件可以是虛擬機(jī)節(jié)點(diǎn)的資源占用率。
- 自動(dòng)伸縮機(jī)制可以通過(guò)云用戶自定義的參數(shù)值自動(dòng)地進(jìn)行IT資源的分配。
- 通常部署在靠近防火墻的位置,來(lái)自動(dòng)追蹤負(fù)載狀態(tài)信息
- 當(dāng)云服務(wù)實(shí)例出錯(cuò)而不可用時(shí),下面那個(gè)應(yīng)對(duì)策略是不可以接受的重啟云服務(wù)實(shí)例
- 關(guān)于按使用付費(fèi)監(jiān)控器的說(shuō)法:
- 按使用付費(fèi)監(jiān)控器需要監(jiān)控用戶請(qǐng)求數(shù)量、傳送數(shù)據(jù)量、服務(wù)實(shí)例的狀態(tài)等。
- 按使用付費(fèi)監(jiān)控器通常部署在防火墻的位置。
- 按使用付費(fèi)監(jiān)控器用于測(cè)量用戶對(duì)云資源的使用情況以便計(jì)費(fèi)。
- 按使用付費(fèi)監(jiān)控器的實(shí)現(xiàn)方式: 監(jiān)控代理、資源代理
- 故障轉(zhuǎn)移系統(tǒng)的主要功能是在服務(wù)失效時(shí)自動(dòng)切換到冗余的資源或者實(shí)例上去
- 云負(fù)載均衡架構(gòu)提高服務(wù)能力、可擴(kuò)展性、提高可用性、可靠性、改進(jìn)負(fù)載均衡和資源優(yōu)化
- IaaS是PaaS和SaaS的基礎(chǔ)和必要條件。
- 層次資源池架構(gòu)中資源池可以構(gòu)成以下哪種關(guān)系parent關(guān)系、sibling關(guān)系、nested關(guān)系
- 動(dòng)態(tài)可擴(kuò)展架構(gòu)中動(dòng)態(tài)擴(kuò)展類型包括動(dòng)態(tài)水平擴(kuò)展、動(dòng)態(tài)垂直擴(kuò)展、動(dòng)態(tài)重定位
- 直接I/O訪問(wèn)架構(gòu)使用到的相關(guān)代理包括①云使用監(jiān)控器;②邏輯網(wǎng)絡(luò)邊界;③按使用付費(fèi)監(jiān)控器;④資源復(fù)制
- 機(jī)會(huì)成本不屬于商業(yè)成本指標(biāo)
概念解釋題
- 根據(jù)自己的理解,對(duì)“云計(jì)算”這一概念進(jìn)行解釋和闡述。
-
定義:云計(jì)算是以服務(wù)的形式,按需向用戶提供計(jì)算資源的一種模式。它是分布式計(jì)算的一種特殊形式,引入了效用模型來(lái)遠(yuǎn)程供給可擴(kuò)展和可測(cè)量的資源。
-
云計(jì)算是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過(guò)這種方式,共享的軟硬件資源和信息可以按需提供給計(jì)算機(jī)和其他設(shè)備。
-
云其實(shí)是網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一種比喻說(shuō)法。
-
云計(jì)算的核心思想,是將大量用網(wǎng)絡(luò)連接的計(jì)算資源統(tǒng)一管理和調(diào)度,構(gòu)成一個(gè)計(jì)算資源池向用戶按需服務(wù)。提供資源的網(wǎng)絡(luò)被稱為“云”。
云計(jì)算就是將計(jì)算機(jī)的各種服務(wù)通過(guò)網(wǎng)絡(luò)提供給用戶使用。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān)的服務(wù),也可以是其他的服務(wù)。
- 云的部署模型有哪些?各有什么特點(diǎn)和應(yīng)用場(chǎng)景?能是什么?請(qǐng)分別進(jìn)行解釋。
- 公有云( public cloud)是由第三方云提供者擁有的可公共訪問(wèn)的云環(huán)境。
公有云里的IT資源通常是按照事先描述好的云交付模型提供的,而且一般是需要付費(fèi)才能提供給云用戶的,或者是通過(guò)其他途徑商業(yè)化的(例如廣告)。
-
社區(qū)云類似于公有云,只是它的訪問(wèn)被限制為特定的云用戶社區(qū)。社區(qū)云可以是社區(qū)成員或提供具有訪問(wèn)限制的公有云的第三方云提供者共同擁有的。社區(qū)的云用戶成員通常會(huì)共同承擔(dān)定義和發(fā)展社區(qū)云的責(zé)任。
-
私有云是由一家組織單獨(dú)擁有的。私有云使得組織把云計(jì)算技術(shù)當(dāng)做一種手段,可以集中訪問(wèn)不同部分、位置或部門的IT資源。
-
混合云是由兩個(gè)或者更多不同云部署模型組成的云環(huán)境。例如,云用戶可能會(huì)選擇把處理敏感數(shù)據(jù)的云服務(wù)部署到私有云上,而將其他不那么敏感的云服務(wù)部署到公有云上。這種組合就得到了混合部署模型。
- 公有云是第三方所有的,通常向云用戶組織提供商業(yè)化的云服務(wù)和IT資源。
- 私有云是僅被一家組織所擁有的,并且位于該組織的范圍之內(nèi)。
- 社區(qū)云一般只能被一組共享?yè)碛袡?quán)和責(zé)任的云用戶訪問(wèn)。
- 混合云是兩種或多種云部署模型的組合。
- 闡述云服務(wù)擁有者、云服務(wù)用戶、云資源管理者的基本概念,以及相互的關(guān)系。
-
在法律上擁有云服務(wù)的個(gè)人或者組織稱為云服務(wù)擁有者( cloud service owner)。云服務(wù)擁有者可以是云用戶,或者是擁有該云服務(wù)所在的云的云提供者。
-
云用戶( cloud consumer)是組織機(jī)構(gòu)(或者人),他們與云提供者簽訂正式的合同或者約定來(lái)使用云提供者提供的可用的IT資源。具體來(lái)說(shuō),云用戶使用云服務(wù)用戶( a cloudservice consumer)來(lái)訪問(wèn)云服務(wù)。
-
云資源管理者( cloud resource administrator)是負(fù)責(zé)管理基于云的IT資源(包括云服務(wù))的人或者組織。云資源管理者可以是(或者說(shuō)屬于)云服務(wù)所屬的云的云用戶或云提供者。還一種可能性是,云資源管理者可以是(或者說(shuō)屬于)簽訂了合約來(lái)管理基于云的IT資源的第三方組織。
- 云資源管理者可以屬于云用戶組織,管理屬于該云用戶的可遠(yuǎn)程訪問(wèn)的IT資源
- 云資源管理者可以屬于云提供者組織,為云提供者組織管理其內(nèi)部和外部可用的IT資源
討論分析題
- 分析討論不同層次、粒度的負(fù)載均衡機(jī)制的作用及特性。
- 二層負(fù)載就是數(shù)據(jù)鏈路負(fù)載,三層就是網(wǎng)絡(luò)層負(fù)載,四層就是傳輸層負(fù)載,七層就是應(yīng)用層負(fù)載。
- 二層負(fù)載添加額外的數(shù)據(jù)鏈路來(lái)提供傳輸能力,一般是邏輯上的捆綁。提供虛擬MAC地址接收數(shù)據(jù),再轉(zhuǎn)發(fā)到真正的MAC主機(jī)上。方法主要有鏈路聚合方法和PPP捆綁。
- 三層負(fù)載提供虛擬IP接收數(shù)據(jù),然后轉(zhuǎn)發(fā)到真正的IP主機(jī)上。一般是通過(guò)F5硬件來(lái)提供這種負(fù)載。
- 四層負(fù)載是IP+PORT負(fù)載,提供虛擬的IP和端口接收數(shù)據(jù)后轉(zhuǎn)發(fā)到真正服務(wù)器上。
- 七層負(fù)載是URL負(fù)載,提供虛擬URL或主機(jī)名接收數(shù)據(jù)后轉(zhuǎn)發(fā)到真正的地址。
- 分析NoSQL數(shù)據(jù)庫(kù)的特點(diǎn)并討論與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)之間的關(guān)系。
-
特點(diǎn):1、易擴(kuò)展2、大數(shù)據(jù)量、高性能3、靈活的數(shù)據(jù)模型4、高可用
-
1)關(guān)系數(shù)據(jù)庫(kù)讀寫(xiě)慢,處理海量數(shù)據(jù)效率低下。而NoSQL處理數(shù)據(jù)快,適合于云計(jì)算中處理大量數(shù)據(jù),支持海量數(shù)據(jù)的分布式存儲(chǔ)。
-
2)關(guān)系數(shù)據(jù)庫(kù)支持SQL而NoSQL不支持。
-
3)NoSQL不是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它支持處理非結(jié)構(gòu)化的數(shù)據(jù),主要用于云計(jì)算上。而傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)則很難處理大量的非結(jié)構(gòu)化數(shù)據(jù)。
-
4)關(guān)系數(shù)據(jù)庫(kù)成本高,NoSQL數(shù)據(jù)庫(kù)成本低廉。
-
5)關(guān)系數(shù)據(jù)庫(kù)很難實(shí)現(xiàn)擴(kuò)展,通常是縱向擴(kuò)展,但到達(dá)一定程度時(shí)只能橫向擴(kuò)展。而NoSQL很容易實(shí)現(xiàn)可伸縮性,包括向上擴(kuò)展與水平擴(kuò)展。
- 討論VIM的基本功能及其在自動(dòng)伸縮、虛擬機(jī)遷移、負(fù)載均衡等架構(gòu)中的作用。
VIM(虛擬化基礎(chǔ)設(shè)施管理):用來(lái)管理一系列跨多個(gè)服務(wù)器的IT資源。
- 自動(dòng)伸縮:VIM可以根據(jù)自動(dòng)伸縮監(jiān)控器的命令對(duì)IT資源進(jìn)行增大或縮小來(lái)實(shí)現(xiàn)動(dòng)態(tài)自動(dòng)伸縮。
- 虛擬機(jī)遷移:VIM可以把虛擬服務(wù)器在線遷移到另一臺(tái)物理服務(wù)器上。
- 負(fù)載均衡的虛擬服務(wù)器實(shí)例架構(gòu):容量看門狗監(jiān)控器向VIM報(bào)告過(guò)度使用的情況,VIM給負(fù)載均衡器發(fā)信號(hào),讓它根據(jù)預(yù)先定義的閾值重新分配工作負(fù)載。
- 虛擬機(jī)監(jiān)控器機(jī)制:VIM提供了一組特性來(lái)管理跨物理服務(wù)器的多虛擬機(jī)監(jiān)控器。當(dāng)虛擬服務(wù)器底層的物理服務(wù)器正在被其他虛擬服務(wù)器使用,VIM決定無(wú)法進(jìn)行擴(kuò)展。VIM命令繁忙的物理服務(wù)器上的虛擬機(jī)監(jiān)控器掛起該服務(wù)器的執(zhí)行。然后VIM命令在空閑的物理服務(wù)器上實(shí)例化該虛擬服務(wù)器。VIM命令新物理服務(wù)器上的虛擬機(jī)監(jiān)控器繼續(xù)執(zhí)行虛擬服務(wù)器的處理。
機(jī)制/架構(gòu)設(shè)計(jì)題
1. 請(qǐng)?jiān)O(shè)計(jì)一個(gè)針對(duì)虛擬機(jī)失效場(chǎng)景的虛擬機(jī)遷移機(jī)制,描述其主要操作。
虛擬機(jī)遷移:VIM可以把虛擬服務(wù)器在線遷移到另一臺(tái)物理服務(wù)器上。
- 快照技術(shù)
snapshot(快照)就是將虛擬機(jī)的各種狀態(tài)全部記錄下來(lái),存進(jìn)硬盤里,等待下一次開(kāi)啟虛擬機(jī)的時(shí)候讀取,這些狀態(tài)包括:
- vCPU 狀態(tài)(寄存器等)
- I/O設(shè)備狀態(tài)
- 虛擬磁盤狀態(tài)(利用寫(xiě)時(shí)拷貝技術(shù))
- 所有的內(nèi)存狀態(tài)(實(shí)現(xiàn)最困難)
- 內(nèi)存遷移
內(nèi)存是最難處理的,因?yàn)樗恢痹谧兓?nèi)存實(shí)時(shí)讀寫(xiě),導(dǎo)致我們沒(méi)有辦法截取某一時(shí)刻對(duì)內(nèi)存進(jìn)行拷貝。這就形成了兩種處理方法:
- pre-copy
- 將當(dāng)前時(shí)刻所有的內(nèi)存狀態(tài)復(fù)制并發(fā)送到遠(yuǎn)程服務(wù)器,先不管實(shí)時(shí)更新的內(nèi)存狀態(tài);
- 將新時(shí)刻的已改變的內(nèi)存復(fù)制并發(fā)送到遠(yuǎn)程服務(wù)器;
- 如果贓頁(yè)太多,到達(dá)了閾值,停止虛擬機(jī),復(fù)制剩余的贓頁(yè),vcpu和內(nèi)存狀態(tài)
- 遠(yuǎn)程重啟虛擬機(jī)。
- post-copy
- 先將vCPU狀態(tài)復(fù)制到遠(yuǎn)程主機(jī)
- 虛擬機(jī)操作將會(huì)導(dǎo)致頁(yè)錯(cuò)誤
- 一旦遠(yuǎn)程主機(jī)可以被訪問(wèn),直接將錯(cuò)誤頁(yè)拷貝到遠(yuǎn)程主機(jī)
Another:
虛擬機(jī)監(jiān)控器集群架構(gòu)(Hypervisor Clustering Architecture)
-
建立了一個(gè)跨多個(gè)物理服務(wù)器的高可用虛擬機(jī)監(jiān)控器集群。
-
虛擬機(jī)監(jiān)控器集群由中心VIM控制,通過(guò)常規(guī)心跳消息來(lái)監(jiān)測(cè)虛擬機(jī)監(jiān)控器的狀態(tài)。當(dāng)物理機(jī)或者Hypervisor失效時(shí)使用共享云存儲(chǔ)設(shè)備進(jìn)行VM在線遷移。
-
VM在線遷移是一個(gè)具有在運(yùn)行時(shí)將虛擬服務(wù)器或虛擬服務(wù)器實(shí)例重新放置能力的系統(tǒng)。
按照預(yù)先定義好的計(jì)劃,物理服務(wù)器之間以及和VIM之間相互交換心跳消息(5)。
物理服務(wù)器B失效且變得不可用時(shí),危及到虛擬服務(wù)器C(6)。其余物理服務(wù)器和VIM停止收到來(lái)自物理服務(wù)器B的心跳信息。
在評(píng)估了集群中其他虛擬機(jī)監(jiān)控器的可用容量之后,VIM 選擇物理服務(wù)器C作為虛擬服務(wù)器C的新主機(jī)(8)。
虛擬服務(wù)器C在線遷移到物理服務(wù)器C上運(yùn)行的虛擬監(jiān)控器上,在正常操作繼續(xù)進(jìn)行前,可能需要重啟虛擬服務(wù)器(9)。
2.設(shè)計(jì)一個(gè)用于SaaS服務(wù)的云應(yīng)用程序的自動(dòng)伸縮機(jī)制,并描述其主要構(gòu)成部分和各自功能。
自動(dòng)伸縮機(jī)制主要構(gòu)成部分:
- 負(fù)載均衡:負(fù)載均衡算法,健康檢查和會(huì)話保持,這三個(gè)Feature是保證負(fù)載均衡正常工作的基本要素。
- 數(shù)據(jù)庫(kù)讀寫(xiě)分離
- 數(shù)據(jù)庫(kù)垂直切分/水平切分
程序設(shè)計(jì)題
請(qǐng)?jiān)O(shè)計(jì)一個(gè)MapReduce程序用于統(tǒng)計(jì)某學(xué)校學(xué)生成績(jī)的分布,按照不及格(60分以下)、一般(60~69)、中等(70~79)、良好(80~89),優(yōu)秀(90以上)
幾個(gè)個(gè)類別進(jìn)行統(tǒng)計(jì),得出各自的人次。假設(shè)成績(jī)信息保存在一個(gè)大的文本文件中,每一行包括課程號(hào)、課程名稱、學(xué)號(hào)、學(xué)生姓名、成績(jī)(百分制),數(shù)據(jù)項(xiàng)由空格隔開(kāi)。
請(qǐng)用簡(jiǎn)潔的文字或者偽碼描述所設(shè)計(jì)的MapReduce程序,包括主要操作及步驟。
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class Test {
/*
* MapReduceBase類:實(shí)現(xiàn)Mapper和Reducer接口的基類
* Mapper接口:
* WritableComparable接口:實(shí)現(xiàn)WritableComparable的類可以相互比較。所有被用作key的類要實(shí)現(xiàn)此接口。
*/
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{
/*
*LongWritable,IntWritable,Text是Hadoop中實(shí)現(xiàn)的用于封裝Java數(shù)據(jù)類型的類,這些類實(shí)現(xiàn)了WritableComparable接口,
*都能夠被串行化,便于在分布式環(huán)境中進(jìn)行數(shù)據(jù)交換,可以視為long,int,String數(shù)據(jù)類型的替代。
*/
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();//Text實(shí)現(xiàn)了BinaryComparable類,可以作為key值
/*
* Mapper接口中的map方法:
* void map(K1 key, V1 value, OutputCollector<K2,V2> output, Reporter reporter)
* 映射一個(gè)單個(gè)的輸入<K1,V1>對(duì)到一個(gè)中間輸出<K2,V2>對(duì)
* 中間輸出對(duì)不需要和輸入對(duì)是相同的類型,輸入對(duì)可以映射到0個(gè)或多個(gè)輸出對(duì)。
* OutputCollector接口:收集Mapper和Reducer輸出的<K,V>對(duì)。
* OutputCollector接口的collect(k, v)方法:增加一個(gè)(k,v)對(duì)到output
* Reporter 用于報(bào)告整個(gè)應(yīng)用的運(yùn)行進(jìn)度
*/
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
//每一行包括課程號(hào)、課程名稱、學(xué)號(hào)、學(xué)生姓名、成績(jī)(百分制),數(shù)據(jù)項(xiàng)由空格隔開(kāi)。
String string = value.toString();
//按行分割
String[] strings = string.split("\n");
for (int i = 0; i < strings.length; i++) {
//以空格分割
String[] data = strings[i].split(" ");
//數(shù)組第5個(gè)元素是成績(jī)
double score = Double.parseDouble(data[4]);
//以成績(jī)進(jìn)行分割
if (score < 60) {
k.set("不及格");
v.set(1);
} else if (score >= 60 && score < 70) {
k.set("一般");
v.set(1);
} else if (score >= 70 && score < 80) {
k.set("中等");
v.set(1);
} else if (score >= 80 && score < 90) {
k.set("良好");
v.set(1);
} else if (score >= 90) {
k.set("優(yōu)秀");
v.set(1);
}
//生成key value鍵值對(duì)
context.write(k, v);
}
}
public static class IntSumReducer
extends Reducer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();
/*
* reduce過(guò)程是對(duì)輸入鍵值對(duì)洗牌(Shuffing)形成<K2,list(V2)>格式數(shù)據(jù)(僅以test1.txt為例):
* (優(yōu)秀[1,1,1,1...])
* 作為reduce的輸入
*/
public void reduce(Text key, Iterable<IntWritable> values,
Context context
) throws IOException, InterruptedException {
int count = 0;
//遍歷values
for (IntWritable v : values) {
int value = v.get();
count += value;
}
//匯總每個(gè)分?jǐn)?shù)段的人數(shù)(求和)
context.write(key, new IntWritable(count));
}
}
public static void main(String[] args) throws Exception {
// 1 獲取配置信息以及封裝任務(wù)
Configuration configuration = new Configuration();
Job job = Job.getInstance(configuration);
// 2 設(shè)置jar加載路徑
job.setJarByClass(RatingDemo.class);
// 3 設(shè)置map和reduce類
job.setMapperClass(MyMap.class);
job.setReducerClass(MyReduce.class);
// 4 設(shè)置map輸出
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
// 5 設(shè)置最終輸出kv類型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
// 6 設(shè)置輸入和輸出路徑
Path input = new Path("/input/report.txt");
FileInputFormat.addInputPath(job, input);
Path output = new Path("/output/result");
//判斷output文件夾是否存在,如果存在則刪除
if (output.getFileSystem(configuration).exists(output)) {
output.getFileSystem(configuration).delete(output);
}
FileOutputFormat.setOutputPath(job, output);
//等待計(jì)算完成
boolean completion = job.waitForCompletion(true);
if (completion) {
System.out.println("計(jì)算成功!");
} else {
System.out.println("計(jì)算失?。?);
}
}
}
MapReduce采用"分而治之"的思想,把對(duì)大規(guī)模數(shù)據(jù)集的操作,分發(fā)給一個(gè)主節(jié)點(diǎn)管理下的各個(gè)分節(jié)點(diǎn)共同完成,然后通過(guò)整合各個(gè)節(jié)點(diǎn)的中間結(jié)果,得到最終結(jié)果。MapReduce框架負(fù)責(zé)處理了并行編程中分布式存儲(chǔ)、工作調(diào)度、負(fù)載均衡、容錯(cuò)均衡、容錯(cuò)處理以及網(wǎng)絡(luò)通信等復(fù)雜問(wèn)題。將處理過(guò)程高度抽象為兩個(gè)函數(shù):map和reduce。
map負(fù)責(zé)把任務(wù)分解成多個(gè)任務(wù);
reduce負(fù)責(zé)把分解后多任務(wù)處理的結(jié)果匯總起來(lái)。
注:MapReduce處理的數(shù)據(jù)集必須可以分解成許多小的數(shù)據(jù)集,而且每一個(gè)小數(shù)據(jù)集都可以完全并行地進(jìn)行處理。不是關(guān)系型數(shù)據(jù)庫(kù),而是結(jié)構(gòu)化的。
map處理階段:
對(duì)于給定的待處理文本文檔,其map階段的處理如下:
通過(guò)Text對(duì)象,獲取文本文檔的內(nèi)容。
逐行處理文檔,將單詞提取出來(lái)。
每個(gè)單詞為key,對(duì)應(yīng)的value設(shè)為1,將<k2,v2>對(duì)輸出。
關(guān)鍵性說(shuō)明:
map階段的處理,主要是如何對(duì)文本進(jìn)行逐行的單詞分割,從而獲取單詞,以及將鍵值對(duì)分發(fā)到各個(gè)節(jié)點(diǎn)(此處由hadoop隱性提供,用戶先不必關(guān)心hdfs存儲(chǔ)過(guò)程)。
可以參考的單詞分割提取代碼模板如下:
public void map(Object key,Text value,Context context)throws IOException,InterruptedException
{
//對(duì)文本內(nèi)容對(duì)象value進(jìn)行分割
StringTokenizer itr=new StringTokenizer(value.toString());
while(itr.hasMoreTokens()) {
String word=itr.nextToken();/*獲取分割好的單詞*/
/*
可以在該循環(huán)體中,使用獲取好的單詞word變量進(jìn)行key和value的設(shè)定。
*/
}
}
reduce處理階段
在Wordcount的reduce階段,主要是將每個(gè)單詞的數(shù)量統(tǒng)計(jì)出來(lái),包括:
在各個(gè)節(jié)點(diǎn)并行循環(huán)統(tǒng)計(jì)每個(gè)單詞出現(xiàn)的次數(shù)。
將各個(gè)節(jié)點(diǎn)的結(jié)果匯總以list(<k3,v3>)的形式輸出。
reduce函數(shù)參考模板:
public void reduce(Object key,Iterable<IntWritable> values,Context context)throws IOException, InterruptedException
{
int count=0;
for(IntWritable itr:vlaues)
{
count += itr.get(); /*循環(huán)統(tǒng)計(jì)*/
}
/*統(tǒng)計(jì)完成后,將結(jié)果輸出.....*/
}
來(lái)源:中山大學(xué)本科生期末考試
加油!
感謝!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-787650.html
努力!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787650.html
到了這里,關(guān)于《云計(jì)算技術(shù)與應(yīng)用》最新章節(jié)測(cè)試答案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!