付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄1、構(gòu)件和連接件32、軟件體系結(jié)構(gòu)生命周期模型43、軟件重用技術(shù)在軟件開發(fā)中的作用?44、軟件體系結(jié)構(gòu)的生命周期模型和軟件生命周期模型有什么關(guān)系?(補充)55、CORBA架構(gòu)的技術(shù)規(guī)范66、C2概述77、云服務(wù)三個層次86、現(xiàn)有IT系統(tǒng)的主要問題97、采用云計算技術(shù)后新系統(tǒng)的架構(gòu)初探138、大數(shù)據(jù)4V特征和什么是大數(shù)據(jù)?139、離線批處理模型、內(nèi)存計算模型、交互計算模型的區(qū)別1410、大數(shù)據(jù)總結(jié)1411、Hadoop原理:HDFS及MapReduce1512、設(shè)計SOA架構(gòu)圖1513、HDFS處理過程1614、MapReduce處理過程1815、MapReduce分布式處理技術(shù)-實現(xiàn)機制1
2、916、MapReduce分布式處理技術(shù)-實例-單詞統(tǒng)計WordCount2017、MapReduce分布式處理技術(shù)-實例-文檔倒排索引算法2318、區(qū)域系統(tǒng)架構(gòu)擴展方案242419、中間件的優(yōu)點20、架構(gòu)設(shè)計的基本準則251、構(gòu)件和連接件軟件體系結(jié)構(gòu)的核心模型由五種元素組成:構(gòu)件、連接件、配置、端口、角色。其中,構(gòu)件、連接件和配置是最基本的元素。衣小構(gòu)件和娃接件的拓撲氈構(gòu)和約束;原子構(gòu)(1發(fā)件構(gòu)件滬色表示的件和外洲環(huán)境的文包點工直接件I:&東軟件之間的交互:定義r成連接件芨示的交互的參,才構(gòu)件:具有某種功能的可重用軟件單元,表示系統(tǒng)中主要的計算和數(shù)據(jù)存儲。構(gòu)件只能通過接口與外部交互,
3、接口由一組端口組成,每個端口表示了構(gòu)件與外部環(huán)境的交互點。通過不同的端口類型,一個構(gòu)件可以提供多重接口。(每個構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這個過程通常通過對輸入流的變換及增量計算來完成,所以在輸入被完全消費之前,輸出便產(chǎn)生了。)構(gòu)件的定義:構(gòu)件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確辨識的系統(tǒng);結(jié)構(gòu)上,它是語義描述、通訊接口和實現(xiàn)代碼的復(fù)合體。連接件:表示了構(gòu)件間的交互;連接件也有接口,由一組角色組成,每個角色定義了該連接件表示的交互的參與者。2、軟件體系結(jié)構(gòu)生命周期模型體系結(jié)構(gòu)的終結(jié)體系結(jié)構(gòu)提供、評價和度量或擴
4、展否/體系結(jié)構(gòu)實地體樂結(jié)構(gòu)演化體系結(jié)構(gòu)求精體奈結(jié)構(gòu)的性質(zhì)分析體條結(jié)胸的觀花描述“1體樂結(jié)構(gòu)的非認一,形式化描述體系結(jié)構(gòu)求精的臉證體系結(jié)藥的形式化基礎(chǔ)(數(shù)學模型)模型解釋:1、軟件體系結(jié)構(gòu)的非形式化描述;2、軟件體系結(jié)構(gòu)規(guī)范描述和分析;3、軟件體系結(jié)構(gòu)的求精及其驗證;4、軟件體系結(jié)構(gòu)的實施;5、軟件體系結(jié)構(gòu)的演化和擴展;6、軟件體系結(jié)構(gòu)提供、評價和度量7、軟件體系結(jié)構(gòu)的終結(jié)3、軟件重用技術(shù)在軟件開發(fā)中的作用?軟件重用可以分為:代碼重用,設(shè)計結(jié)果重用,分析結(jié)果的重用,測試信息的重用,體系結(jié)構(gòu)的重用。提高軟件生產(chǎn)率,降低軟件開發(fā)的成本;提高軟件質(zhì)量;互操作性好;支持原型開發(fā);提高了軟件的可維護性、可
5、擴展性、可理解性。舉例:1976年舊M、HP、NEC、AT&T的調(diào)查顯示:基于軟件重用的軟件產(chǎn)品線的發(fā)展使開發(fā)時間縮短了1.52倍,維護成本降低了2-5倍,軟件質(zhì)量提高了510倍,開發(fā)成本降低了12%-15%4、軟件體系結(jié)構(gòu)的生命周期模型和軟件生命周期模型有什么關(guān)系?(補充)軟件生命周期同任何事物一樣,一個軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生存周期(軟件生命周期)。軟件生命周期(SDLC,軟件生存周期)是軟件的產(chǎn)生直到報廢的生命周期,周期內(nèi)有問題定義、可行性分析、總體描述、系統(tǒng)設(shè)計、編碼、調(diào)試和測試、驗收與運行、維護升級到廢棄等階段,這種按時間分
6、程的思想方法是軟件工程中的一種思想原則,即按部就班、逐步推進,每個階段都要有定義、工作、審查、形成文檔以供交流或備查,以提高軟件的質(zhì)量。但隨著新的面向?qū)ο蟮脑O(shè)計方法和技術(shù)的成熟,軟件生命周期設(shè)計方法的指導意義正在逐步減少。軟件生命周期模型通俗說,就是軟件開發(fā)過程中所遵循的模式。它運用了結(jié)構(gòu)化的設(shè)計思想;具有嚴格的順序性和依賴性,必須等待前一階段的工作完成之后,才能開始后一階段的工作,并且其一階段的輸出就是后一階段的輸入。具體有:瀑布(waterfall)模型、原型(prototyping)模型、增量(incremental)模型、螺旋(spiral)模型、快速應(yīng)用開發(fā)(RAD)模型、漸進式模型
7、等。軟件體系結(jié)構(gòu)生命周期模型是對軟件生命周期模型的重用,是軟件生命周期模型的某一階段的細化。它也繼承了結(jié)構(gòu)化設(shè)計思想,運用了面向過程的設(shè)計方法。它也具有順序性和依賴性。不過它還添加了一些跳轉(zhuǎn),當某一階段比較細致或軟件的結(jié)構(gòu)比較簡單時可以跳過某一階段而經(jīng)如下一階段。軟件體系結(jié)構(gòu)生命周期模型包括非形式化的描述;體系結(jié)構(gòu)的規(guī)范描述和分析;體系結(jié)構(gòu)的求精及其驗證;軟件體系結(jié)構(gòu)的事實;軟件體系結(jié)構(gòu)的演化和擴展;軟件體系結(jié)構(gòu)的提供、評價和度量;軟件體系結(jié)構(gòu)的終結(jié)。5、CORBA架構(gòu)的技術(shù)規(guī)范接口定義語言(IDL)CORBA利用IDL統(tǒng)一地描述服務(wù)器對象(向調(diào)用者提供服務(wù)的對象)的接口。IDL本身也是面向?qū)?/p>
8、象的。它雖然不是編程語言,但它為客戶對象(發(fā)出服務(wù)請求的對象)提供了語言的獨立性,因為客戶對象只需了解服務(wù)器對象的IDL接口,不必知道其編程語言。IDL語言是CORBA規(guī)范中定義的一種中性語言,它用來描述對象的接口,而不涉及對象的具體實現(xiàn)。在CORBA中定義了IDL語言到C、C+、SmallTalk和Java語言的映射。 接口池(IR)CORBA的接口池包括了分布計算環(huán)境中所有可用的服務(wù)器對象的接口表示。它使動態(tài)搜索可用服務(wù)器的接口、動態(tài)構(gòu)造請求及參數(shù)成為可能。 動態(tài)調(diào)用接口(DII)CORBA的動態(tài)調(diào)用接口提供了一些標準函數(shù)以供客戶對象動態(tài)創(chuàng)建請求、動態(tài)構(gòu)造請求參數(shù)??蛻魧ο髮討B(tài)調(diào)用接口與
9、接口池配合使用可實現(xiàn)服務(wù)器對象接口的動態(tài)搜索、請求及參數(shù)的動態(tài)構(gòu)造與動態(tài)發(fā)送。當然,只要客戶對象在編譯之前能夠確定服務(wù)器對象的IDL接口,CORBA也允許客戶對象使用靜態(tài)調(diào)用機制。顯然,靜態(tài)機制的靈活性雖不及動態(tài)機制,但執(zhí)行效率卻勝過動態(tài)機制。 對象適配器(OA)在CORBA中,對象適配器用于屏蔽ORB內(nèi)核的實現(xiàn)細節(jié),為服務(wù)器對象的實現(xiàn)者提供抽象接口,以便他們使用ORB內(nèi)部的某些功能。這些功能包括服務(wù)器對象的登錄與激活、客戶請求的認證等。6、C2概述 C2和其提供的設(shè)計環(huán)境(Argo)支持采用基于時間的風格來描述用戶界面系統(tǒng),并支持使用可替換、可重用的構(gòu)件開發(fā)GUI的體系結(jié)構(gòu)。 在C2中,連接
10、件負責構(gòu)件之間消息的傳遞,而構(gòu)件維持狀態(tài)、執(zhí)行操作并通過兩個名字分別為“top”和“bottom”的端口和其它的構(gòu)件交換信息。 每個接口包含一種可發(fā)送的消息和一組可接收的消息。構(gòu)件之間的消息要么是請求其它構(gòu)件執(zhí)行某個操作的請求消息,要么是通知其他構(gòu)件自身執(zhí)行了某個操作或狀態(tài)發(fā)生改變的通知消息。 構(gòu)件之間的消息交換不能直接進行,而只能通過連接件來完成。每個構(gòu)件接口最多只能和一個連接件相連,而連接件可以和任意數(shù)目的構(gòu)件或連接件相連。 請求消息只能向上層傳送而通知消息只能向下層傳送。 通知消息的傳遞只對應(yīng)于構(gòu)件內(nèi)部的操作,而和接收消息的構(gòu)件的需求無關(guān)。002對構(gòu)件和連接件的實現(xiàn)語言、實現(xiàn)構(gòu)件的線程控
11、制、構(gòu)件的部署以及連接件使用的通訊協(xié)議等都不加限制。7、云服務(wù)三個層次根據(jù)提供的服務(wù)類型,掰衣什克應(yīng).口服務(wù))分為二類操柞系統(tǒng),應(yīng)用服多引擎應(yīng)用系統(tǒng)應(yīng)用平臺厘用軟4Sofluvar電esaService用戶通過標準的W岫瀏覽器來使用In3nH上的軟件。用戶不必購買軟件,只需按需租用軟件典型應(yīng)用;LotusLive.SPlarfonm“aService(PaaS%(SaaS)InfrastructureasaService以服務(wù)的形式提供虛擬硬件資源,如虛擬主機/存儲/網(wǎng)絡(luò)/安全等資源口用于無需購買服務(wù)器、網(wǎng)絡(luò)設(shè)備、存潴設(shè)備,只需通過互聯(lián)網(wǎng)租賃即可搭建自己的應(yīng)用系統(tǒng)典型應(yīng)用:Arnd?orWb甩
12、務(wù)IOC提供應(yīng)用服務(wù)引孽,如互聯(lián)網(wǎng)應(yīng)用編程接口/運行平臺等.用戶基于該應(yīng)用服務(wù)引擎,可以構(gòu)建該類應(yīng)用,典婚應(yīng)用:GoogleAppEngine,IBMPijreScaleApplicationSystei叫SAE計算包括三個層次的服務(wù):基礎(chǔ)架構(gòu)即服務(wù)(IaaS),平臺即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)。IaaS通過互聯(lián)網(wǎng)提供數(shù)據(jù)中心、基礎(chǔ)架構(gòu)硬件和軟件資源,還可以提供服務(wù)器、操作系統(tǒng)、磁盤存儲、數(shù)據(jù)庫和/或信息資源。Paas則提供了基礎(chǔ)架構(gòu),軟件開發(fā)者可以在這個基礎(chǔ)架構(gòu)之上建設(shè)新的應(yīng)用,或者擴展已有的應(yīng)用,同時卻不必購買開發(fā)、質(zhì)量控制或生產(chǎn)服務(wù)器。SaaS是最為成熟、最出名,也是得到最
13、廣泛應(yīng)用的一種云計算。它是一種軟件分布模式,在這種模式下,應(yīng)用軟件安裝在廠商或者服務(wù)供應(yīng)商那里,用戶可以通過某個網(wǎng)絡(luò)來使用這些軟件,通常使用的網(wǎng)絡(luò)是互聯(lián)網(wǎng)。IaaS、PaaS和SaaS之間的關(guān)系可從兩個角度來看:從用戶體驗角度而言,它們之間的關(guān)系是獨立的,因為它們面對不同類型的用戶;而從技術(shù)角度而言,它們并不是簡單的繼承關(guān)系(SaaS基于PaaS,而PaaS基于IaaS),因為首先SaaS可以是基于PaaS或者直接部署于IaaS之上,其次PaaS可以構(gòu)建于IaaS之上,也可以直接構(gòu)建在物理資源之上。IaaS、PaaS和SaaS這三種模式都采用了外包的方式,以減輕企業(yè)負擔,降低管理、維護服務(wù)器硬
14、件、網(wǎng)絡(luò)硬件、基礎(chǔ)架構(gòu)軟件和應(yīng)用軟件的人力成本。從更高的層次上看,它們都試圖去解決同一個商業(yè)問題一一用盡可能少甚至是為零的資本支出,獲得功能、擴展能力、服務(wù)和商業(yè)價值。在云計算實施的前期或者在很多場景的時候;主要關(guān)注點在于應(yīng)用的可靠運行、快速開發(fā)和部署、機器資源的充分利用、以及方便的運維等問題;對于這個時候我們應(yīng)該定位于主要采用Iaas云計算架構(gòu)(即很依賴于硬件虛擬化技術(shù))和部分采用Pass云計算架構(gòu)來解決.1 .重點采用Iaas云計算架構(gòu)中的硬件虛擬化技術(shù)等技術(shù)(服務(wù)器虛擬化、網(wǎng)絡(luò)虛擬化、存儲虛擬化)以提高硬件的利用率、降低機房占用空間和功耗。2 .快速和方便地給應(yīng)用提供應(yīng)用所需要的服務(wù)器資
15、源(VM)、網(wǎng)絡(luò)資源、存儲資源。3 .快速和方便地給應(yīng)用提供應(yīng)用所需要依賴的平臺軟件資源,例如數(shù)據(jù)庫系統(tǒng)(DB2)、J2EE應(yīng)用服務(wù)器(WAS)、WEB服務(wù)器(IHS)等。4 .快速和方便地自動地把應(yīng)用部署到相應(yīng)的硬件環(huán)境中。5 .硬件虛擬化技術(shù)(例如VMWare,PowerVM,xen等)的能力需要在這體現(xiàn)。注意:1 .對于在這種情況下,每臺服務(wù)器所具有的CPUcore數(shù)目和內(nèi)存數(shù)量越大越好。不要弄一些性能較差的機器干這種事情。2 .SSD和大內(nèi)存對數(shù)據(jù)庫性能的提升是很明顯的。3 .這個就是我們通常所說的以大變小6、現(xiàn)有IT系統(tǒng)的主要問題應(yīng)用R堵蠟敢倦應(yīng)用工堵將沒痛這種方式即是以應(yīng)用為劃分的
16、“煙囪”結(jié)構(gòu),數(shù)據(jù)基于應(yīng)用,并被鎖定在應(yīng)用系統(tǒng)中,形成一個個數(shù)據(jù)的孤島。帶來以下一些最基本的問題:1、數(shù)據(jù)并沒有被作為一個單獨的IT組成部分被規(guī)劃和設(shè)計,而是作為應(yīng)用系統(tǒng)的一部分,由于應(yīng)用系統(tǒng)的供應(yīng)商不同,并且其設(shè)計工作也缺乏相互之間的協(xié)調(diào),因此,數(shù)據(jù)模型基本按照各個應(yīng)用系統(tǒng)的功能需求進行設(shè)計和實現(xiàn)。2、由于缺乏有效的數(shù)據(jù)共享,在有些業(yè)務(wù)環(huán)節(jié)上,一個應(yīng)用所需的數(shù)據(jù)無法從相關(guān)的其他應(yīng)用系統(tǒng)中獲得,而只好重復(fù)錄入。3、另一方面,由于同一個數(shù)據(jù)可能存在多個數(shù)據(jù)源(從多個應(yīng)用系統(tǒng)中被重復(fù)錄入),由此導致了信息的不一致。應(yīng)用騾井own5由這些應(yīng)用系統(tǒng)按照傳統(tǒng)的方式進行設(shè)計和開發(fā),從而形成一個個的數(shù)據(jù)孤島
17、、應(yīng)用的豎井等。以至不能形成完整的數(shù)據(jù)視圖(例如相互有關(guān)聯(lián)的數(shù)據(jù)分散于不同的應(yīng)用系統(tǒng),數(shù)據(jù)編碼標準不一致,數(shù)據(jù)不一致和不可信等;讓進行數(shù)據(jù)的整合和數(shù)據(jù)分析基本上不太可能)和應(yīng)用系統(tǒng)集成復(fù)雜度和難度很高(沒有好的設(shè)計規(guī)范和架構(gòu)以及代碼質(zhì)量,基本上代碼重用程度都很低;從界面集成、數(shù)據(jù)集成、應(yīng)用集成這三個方向來做都很困難);甚至出現(xiàn)無法集成或者為了集成而集成純粹完成任務(wù)而已)集群、均密負載數(shù)據(jù)分區(qū)架構(gòu)設(shè)計讓應(yīng)用系統(tǒng)高效、可靠安全運行太難了加b服分-_制b服務(wù)E由弗于均®偵載四用服冬娓反用服事.M7IUE父舞分隆1好直言抄艮3對于一個性能要求很高的系統(tǒng)(例如高負載量和高數(shù)據(jù)量的系統(tǒng),和將來會
18、做的全省大集中系統(tǒng)和新一代的應(yīng)用系統(tǒng))我們會利用大量的硬件資源和相應(yīng)的集群技術(shù)等技術(shù)進行相應(yīng)的數(shù)據(jù)分區(qū)、集群和均衡負載來應(yīng)對峰值的訪問情況。即利用多臺機器和技術(shù)形成Web服務(wù)器的集群,利用多臺機器和技術(shù)形成應(yīng)用服務(wù)器的集群,利用多臺機器和技術(shù)形成數(shù)據(jù)庫服務(wù)器的分區(qū)和集群等。要設(shè)計和很好地實施如此復(fù)雜的集群牽涉到非常多的技術(shù),所以我會經(jīng)??吹疆斚到y(tǒng)壓力上來的時候會遇到各種各樣的問題并且這方面的問題很嚴重(因為很多應(yīng)用開發(fā)商提出的思路基本上是購買更好的硬件來解決又帶來了更多的硬件資源的浪費,而我們都知道僅僅是通過購買好的硬件是解決不了這個問題的)。硬件利用率太低,費電、占空間、運維成本高;簡而吉之
19、太不低碳了利用率硬件資源峰值負載空閑時間這些應(yīng)用系統(tǒng)按照傳統(tǒng)的項目建設(shè)方式,即每建設(shè)一套業(yè)務(wù)應(yīng)用系統(tǒng)基本上都要購買新的硬件設(shè)備(例如服務(wù)器、存儲等)和平臺系統(tǒng)軟件(例如數(shù)據(jù)庫、中間件等)。帶來了大量的硬件資源的浪費(例如大量的服務(wù)器利用率低下、存儲利用率不高和管理復(fù)雜)和占用大量的空間、電力的浪費、運維成本的提高.對于一些高負載和高數(shù)據(jù)量的應(yīng)用系統(tǒng),我們對硬件資源的要求是按照此應(yīng)用系統(tǒng)高峰值的需要來進行購買以應(yīng)用此應(yīng)用的需要,但是此應(yīng)用的高峰期是具有周期性的7、采用云計算技術(shù)后新系統(tǒng)的架構(gòu)初探8、大數(shù)據(jù)4V特征和什么是大數(shù)據(jù)?什么是大數(shù)據(jù)(BigData)?Volume:數(shù)據(jù)量異常龐大,一般達
20、到PB量級?Variety:數(shù)據(jù)呈異構(gòu)化,數(shù)據(jù)來源呈多樣性?Velocity:數(shù)據(jù)處理要求時效性?Value:單個數(shù)據(jù)無價值,但大規(guī)模數(shù)據(jù)擁有巨大價值什么是大數(shù)據(jù)(BigData)?數(shù)據(jù)種類的多樣性:文字、語音、圖片、視頻、信息等?數(shù)據(jù)對象的多樣性:個人信息、個人數(shù)據(jù)、商業(yè)服務(wù)數(shù)據(jù)、社會公共數(shù)據(jù)、自然界數(shù)據(jù)、物質(zhì)世界的數(shù)據(jù)?數(shù)據(jù)來源的多樣性:在數(shù)據(jù)層面打破現(xiàn)實世界的界限,多家公司的共享替代一家公司的數(shù)據(jù)9、離線批處理模型、內(nèi)存計算模型、交互計算模型的區(qū)別離線批處理模型:GFS/HDFS/NoSQL/MapReduce,業(yè)界主流模式,技術(shù)成熟,數(shù)據(jù)規(guī)模大,但時效性差大內(nèi)存計算模型:Hana,Me
21、mCloud,計算速度快,但需要大規(guī)模集中式內(nèi)存結(jié)構(gòu)支持(若為分布式則受制于網(wǎng)絡(luò)傳輸速度),技術(shù)成熟度不夠交互式計算模型:Google有Dremel,PowerDrill,Apache有Drill通過datalocality/in-memorybuffer/columnardatastructure等技術(shù)來提高計算速度,以現(xiàn)有計算架構(gòu)和軟件技術(shù)為基礎(chǔ),具可行性;但目前技術(shù)分散,缺乏一個集成平臺10、大數(shù)據(jù)總結(jié)互聯(lián)網(wǎng)大數(shù)據(jù)已成為云計算、物聯(lián)網(wǎng)之后的又一新技術(shù)熱點,已上升到國家戰(zhàn)略高度,具有巨大市場價值;企業(yè)對大數(shù)據(jù)的需求重點在實時在線計算能力,以支持智能商務(wù)應(yīng)用。現(xiàn)有的迭代批處理MapReduc
22、e算法時效性差,難以滿足海量數(shù)據(jù)的實時在線分析;互聯(lián)網(wǎng)大數(shù)據(jù)計算目前尚未有業(yè)界認可的主流產(chǎn)品,技術(shù)成熟度不到30%,交互式計算和大內(nèi)存計算是值得關(guān)注的技術(shù)。11、Hadoop原理:HDFS及MapReduceHadoop最主要的就是Core,它又分為HDFS和MapReduce兩個部分,前者提供分布式數(shù)據(jù)存儲,后者提供任務(wù)的分發(fā)和歸攏。其他組件都是圍繞著這兩個核心進行工作。HDFS的設(shè)計初衷:一次寫入多次讀取不支持文件并發(fā)寫入不支持文件修改HDFS的適用范圍:存儲并管理PB級數(shù)據(jù)處理非結(jié)構(gòu)化數(shù)據(jù)注重數(shù)據(jù)處理的吞吐量,對延時不敏感應(yīng)用模式為一次寫入多次讀取存取模式.12、設(shè)計SOA架構(gòu)圖咽好沖期
23、及方使用匕服務(wù)提供者:服務(wù)提供者是個可通過網(wǎng)絡(luò)尋址的實體,它接國和拉仃來門使用者的請求:服務(wù)使用小服務(wù)使川者是組使用服務(wù)提供者所提供的一項端獎項服務(wù)的組件:網(wǎng)服務(wù)儲備陣:服務(wù)儲備庫包含服務(wù)的描述,服務(wù)提供者在該儲徐庫內(nèi)注冊其服務(wù),而服務(wù)使用者訪問該儲備庫已發(fā)現(xiàn)的所提供的服務(wù).SOA體系-架構(gòu)模型業(yè)務(wù)維件讖務(wù)如史一穩(wěn)地修£百、T虻山仃業(yè)外功址俎小山二盤壽岫用服勢層服務(wù)集成服勢itfit服務(wù)管坦服務(wù)發(fā)加小翅仲旭將用1號授權(quán).月濟認位與即.H.h眼界.敢據(jù)辭翁.數(shù)據(jù)文悔理外.Tft油Jk勢.北在聞界.我小JM務(wù).稍息里界.小由域i服畀13、HDFS處理過程(1)HDFS如何寫文件:Crea
24、tefileClosefileWritepacketSendackSendackDataNodoDataNodeDataNode(2)HDFS如何讀文件:(3)HDFS上傳文件流程:當客戶端上傳數(shù)據(jù)時,先向NamaNode請求創(chuàng)建文件,然后NameNode會返回存儲的DataNode節(jié)點和位置信息。隨后客戶端先通過管道將文件傳到本地硬盤,每湊滿指定大小(默認是64M),再一起上傳到一個DataNode,DataNode收到文件后會返回確認信息,并以4K為單位傳到下一DataNode。該文件上傳方式被稱為“流水式”14、MapReduce處理過程gsMapReduce分布式處理技術(shù)Map端map
25、:(k1tvl)-Iist(k2rv2) 輸入:鍵值對(kLv1)表示的數(shù)據(jù) 處理:文檔數(shù)據(jù)記錄(如文本文件中的行,或數(shù)據(jù)表格中的行)將以“鍵值對”形式傳入map函數(shù);m叩函數(shù)將處理這些鍵值對,并以另一種鍵值對形式輸出處理的一組犍值對中間結(jié)果店t(k2,v2)fl 輸出:鍵值對(k2,v2)表示的一組中間數(shù)據(jù) 備注:Iist(k2,v2)表示有T或多個鍵值對組成整例表caMapReduce分布式處理技術(shù)Reduce端reduce:(k2rIist(v2)*Ii£t(k3,v3) 輸入:由map輸出的一組鍵值對Iist(k2,v2)將被進行合并處理,同樣主鍵下的不同數(shù)值合并會到一個Ii
26、stu2)中,故reduce的輸入為(k2/ist(M2). 處理:對傳入的中間結(jié)果列表數(shù)據(jù)進行某種整理或進一步的處理,并產(chǎn)生最終的某種形式的結(jié)果輸出Id伙二v丸 喻出;最終輸出結(jié)果hst(k3,v既mMapReduce分布式處理技術(shù)函數(shù)輸入輸出Map(k1,v1)List(k2,v2)Reduce(k2,List(v2)List(k3,v3)各個m叩函數(shù)對所劃分的數(shù)據(jù)用談理f從不同的編人數(shù)據(jù)產(chǎn)生不同的中間結(jié)果輸出;各個reduce各自用亍計算,各自負責處理不同的中間結(jié)果數(shù)據(jù)集口.進行reduc啾理之前,須等到所有的map函數(shù)做完,并且在進入的duce前會對e叩的中間結(jié)果數(shù)據(jù)進行整理售huff
27、。,保證將map的結(jié)果發(fā)送給對應(yīng)的reduce;艮;最終匯總所有reduce的輸出結(jié)果即可獲得最終結(jié)果£gMapReduce分布式處理技術(shù)施架MapReduce框架是由一單獨運行在主節(jié)點上的JobTracke和運行在每個集群從節(jié)點上的TaskTrackcr共同組成的.主節(jié)點負責調(diào)度構(gòu)成一個作業(yè)的所有任務(wù),這些任務(wù)分布在不同的從節(jié)點上.主節(jié)點監(jiān)控它們的執(zhí)行情況.并且重新執(zhí)行之前分敗的彳甥.&15、MapReduce分布式處理技術(shù)-實現(xiàn)機制(1)MapReduce函數(shù)庫首先把輸入文件分成M塊,每塊大概16MB到64MB。接著在集群的機器上執(zhí)行處理程序。MapReduce算法運行過
28、程中有一個主控程序,稱為master。主控程序會產(chǎn)生很多作業(yè)程序,稱為worker。并且把M個map任務(wù)和R個reduce任務(wù)分配給這些worker,讓它們?nèi)ネ瓿伞?2)被分配了map任務(wù)的worker讀取并處理相關(guān)的輸入(這里的輸入是指已經(jīng)被切割的輸入小塊splite)o它處理輸入的數(shù)據(jù),并且將分析出的鍵/值(key/value)對傳遞給用戶定義的reduce()函數(shù)。map()函數(shù)產(chǎn)生的中間結(jié)果鍵/值(key/value)對暫時緩沖到內(nèi)存。(3)map()函數(shù)緩沖到內(nèi)存的中間結(jié)果將被定時刷寫到本地硬盤,這些數(shù)據(jù)通過分區(qū)函數(shù)分成R個區(qū)。這些中間結(jié)果在本地硬盤的位置信息將被發(fā)送回master,
29、然后這個master負責把這些位置信息傳送給reduce()函數(shù)的worker。(4)當master通知了reduce()函數(shù)的worker關(guān)于中間鍵/值(key/value)對的位置時,worker調(diào)用遠程方法從map()函數(shù)的worker機器的本地硬盤上讀取緩沖的中間數(shù)據(jù)。當reduce()函數(shù)的worker讀取到了所有的中間數(shù)據(jù),它就使用這些中間數(shù)據(jù)的鍵(key)進行排序,這樣可以使得相同鍵(key)的值都在一起。reduce()函數(shù)的worker根據(jù)每一個中間結(jié)果的鍵(key)來遍歷排序后的數(shù)據(jù),并且把鍵(key)和相關(guān)的中間結(jié)果值(value)集合傳遞給reduce()函數(shù)。redu
30、ce()函數(shù)的worker最終把輸出結(jié)果存放在master機器的一個輸出文件中。(6)當所有的map任務(wù)和reduce任務(wù)都已經(jīng)完成后,master激活用戶程序。在這時,MapReduce返回用戶程序的調(diào)用點。(7)當以上步驟成功結(jié)束以后,MapReduce的執(zhí)行數(shù)據(jù)存放在總計R個輸出文件中(每個輸出文件都是由reduce任務(wù)產(chǎn)生的,這些文件名是用戶指定的)。通常,用戶不需要將這R個輸出文件合并到一個文件,他們通常把這些文件作為輸入傳遞給另一個MapReduce調(diào)用,或者用另一個分布式應(yīng)用來處理這些文件,并且這些分布式應(yīng)用把這些文件看成為輸入文件由于分區(qū)(partition)成為的多個塊文件。
31、16、MapReduce分布式處理技術(shù)-實例-單詞統(tǒng)計WordCount問題描述:統(tǒng)計文本中所出現(xiàn)單詞的次數(shù)。解決思路:需符合Map、Reduce各自的輸入、輸出格。Map端:輸入為(k1,v1),以文本行號為k1,以行內(nèi)容為v1;輸出為list(k2,v2),每有一個單詞就輸出一個(word,1)。Reduce端:輸入為(k2,list(v2),將list(v2)中所有數(shù)字相加即可得到單詞次數(shù);輸出Output為list(k3,v3),即最終的結(jié)果:(單詞,單詞次數(shù))。/Input1. "HelloWorldByeWorld12. "HelloHa(loopByeHado
32、op"Map:3. ,ByeHadoopHelloHadoop,<Wortd,1><Bye1>World”Hadoop.1><Hadoop,1><Bye1><Hadoop,1><HadoQpJ>InputReduce:<WorM,><Woridr1><Hadoop,1><EyeJ=-<Hadoop.1>InternalGrouping<Bye->111><HadoopT1,1,11><Hadoop,l><H
33、adoop,1><Hello->1,1,1><Worid->11>Output3><Hadoop,4>3>eWorld,2>以下是書上的案例:示例:WordCount源數(shù)據(jù)Page1:theweatherisgood一Page2:-todayisgoodPage3:goodweatherisgoodmap輸出Worker1:- (the1(weathe1),(is1)t(good1).Worker2:- (today1),(is1),(good1).Worker3:- (good1),(weather1)p(isI(goo
34、d1),reduce的輸入- Worker1:- (the1)- Worker2:(is1b(is1h(is1)- Worker3:weather1),(weatherWorker4:-(today1),Warmer5;(goodlb(goodi),(good1),(good1)reduce輸出Workert:(the1)-Worker2:-(is3)Worker3:-(weather2),Worker4:(today1)Worker5:-(good4)17、MapReduce分布式處理技術(shù)-實例-文檔倒排索引算法問題描述:給出氣象站歷年每天的數(shù)據(jù),要提取出每年的最高氣溫。數(shù)據(jù)示例:0067011990999991950051507004.99999N9+00221+99999解決思路-Map端:輸入為(k1,v1):(行號,內(nèi)容);輸出為list(k2,v2):(年份,溫度),例如(1950,22)。解決思路-Reduce端:輸入為(k2,list(v2):如(1950,22,-11),對li
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年湖南鐵道職業(yè)技術(shù)學院輔導員考試筆試題庫附答案
- 2024年西安戲劇學院輔導員考試筆試題庫附答案
- 2024年贛南醫(yī)學院輔導員考試參考題庫附答案
- 2024年長春理工大學輔導員招聘備考題庫附答案
- 2024年鶴崗師范高等??茖W校輔導員招聘備考題庫附答案
- 2025年一級注冊建筑師考試題庫500道附答案(鞏固)
- 2025年內(nèi)蒙古醫(yī)科大學輔導員考試筆試題庫附答案
- 2025廣東深圳大學管理學院張慶宇特聘教授團隊招聘專職副研究員1人備考題庫必考題
- 2025遼寧鐵嶺調(diào)兵山市消防救援大隊招錄政府專職消防隊員招聘8人備考題庫附答案
- 2026天津市靜海區(qū)所屬部分國有企業(yè)面向社會公開招聘工作人員備考題庫附答案
- 景區(qū)工作總結(jié)匯報
- 《中級財務(wù)會計》課件-11收入、費用和利潤
- 新生兒肺炎的治療與護理
- 電纜局部放電試驗報告模板
- 東莞初三上冊期末數(shù)學試卷
- 人員技能矩陣管理制度
- T/CECS 10220-2022便攜式丁烷氣灶及氣瓶
- 空調(diào)售后外包協(xié)議書
- 光伏防火培訓課件
- 電視節(jié)目編導與制作(全套課件147P)
- 《碳排放管理體系培訓課件》
評論
0/150
提交評論