日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《云计算》学习笔记2——Google的云计算原理与应用(GFS和MapReduce)

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《云计算》学习笔记2——Google的云计算原理与应用(GFS和MapReduce) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Google業務 ?全球最大搜索引擎、Google Maps、Google Earth、Gmail、YouTube等——特點:數據量龐大、面向全球用戶提供實時服務

Google云計算平臺技術架構

文件存儲,Google Distributed File System,GFS

并行數據處理MapReduce

分布式鎖Chubby

分布式結構化數據表BigTable

分布式存儲系統Megastore

分布式監控系統Dapper

一、Google文件系統GFS

分三大塊來講的,系統架構、容錯機制、系統管理技術

1、系統架構

Client客戶端):應用程序的訪問接口

Master(主服務器):管理節點,在邏輯上只有一個,保存系統的元數據,負責整個文件系統的管理

ChunkServer(數據塊服務器):負責具體的存儲工作。數據以文件的形式存儲在ChunkServer上

關于上面的架構圖之前看到過一篇博客,上面對其機架感知(Rack Awareness)機制有一個簡單的表示,很可惜博客竟未找到,大致是:

對于Rack Awareness——Rack1:Chunk1 、Chunk4、Chunk7……Rack n:Chunk2、Chunk 5、Chunk6……

而對于ns:file——Chunk1、Chunk2……

這樣,兩者一結合,查找文件塊、甚至對相對的查找的優化等比較方便

GFS特點:

采用中心服務器模式

u可以方便地增加Chunk Server

u Master掌握系統內所有Chunk Server的情況,方便進行負載均衡

u不存在元數據的一致性問題

不緩存數據

?文件操作大部分是流式讀寫,不存在大量重復讀寫,使用Cache對性能提高不大

? Chunk Server上數據存取使用本地文件系統,若讀取頻繁,系統具有Cache

?從可行性看,Cache與實際數據的一致性維護也極其復雜

在用戶態下實現

??? ¨利用POSIX編程接口存取數據降低了實現難度,提高通用性?

??? ¨POSIX接口提供功能更豐富

??? ¨用戶態下有多種調試工具

??? ¨Master和Chunk Server都以進程方式運行,單個進程不影響整個操作系統

??? ¨GFS和操作系統運行在不同的空間,兩者耦合性降低

只提供專用接口

??? 降低實現的難度

??? 對應用提供一些特殊支持

??? 降低復雜度

2、容錯機制

Master容錯

Name Space,文件系統目錄結構?

Chunk與文件名的映射

Chunk副本的位置信息(默認有三個副本)?

單個Master,對于前兩種元數據,GFS通過操作日志來提供容錯功能

第三種元數據信息保存在各個 ChunkServer 上, Master 故障時, 磁盤恢復

GFS還提供了Master遠程的實時備份,防止Master徹底死機的情況

Chunk Server容錯

u采用副本方式實現Chunk Server容錯

¨每一個Chunk有多個存儲副本(默認為三個),分布存儲在不同的Chunk Server上用戶態的GFS不會影響Chunk Ser

ver的穩定性

¨副本的分布策略需要考慮多種因素,如網絡的拓撲、機架的分布、磁盤的利用率等

¨對于每一個Chunk,必須將所有的副本全部寫入成功,才視為成功寫入?


盡管一份數據需要存儲三份,好像磁盤空間的利用率不高,但綜合比較多種因素,加之磁盤的成本不斷下降,采用副本

無疑是最簡單、最可靠、最有效,而且實現的難度也最小的一種方法


¨ GFS中的每一個文件被劃分成多個Chunk,Chunk的默認大小是64MB


¨Chunk Server存儲的是Chunk的副本,副本以文件的形式進行存儲
¨ 每個Chunk又劃分為若干Block(64KB),每個Block對應一個32bit的校驗碼,保證數據正確(若某個Block錯誤,
則轉移至其他Chunk副本)

系統管理技術

二、分布式數據處理MapReduce



1、產生背景



MapReduce

?一種處理海量數據的并行編程模式,用于大規模數據集(通常大于1TB)的并行運算。


?“Map(映射)”、“Reduce(化簡)”的概念和主要思想,都是從函數式編程語言(

適合于結構化和非結構化的海量

數據的搜索、挖掘、分析與機器智能學習等)和矢量編程語言借鑒?

u計算問題簡單,但求解困難

???待處理數據量巨大(PB級),只有分布在成百上千個節點上并行計算才能在可接受的時間內完成

??? 如何進行并行分布式計算?

???如何分發待處理數據?

???–如何處理分布式計算中的錯誤?

JefferyDean設計一個新的抽象模型,封裝并行處理、容錯處理、本地化計算、負載均衡的細節,還提供了一個簡單而強大的

接口

這就是MapReduce

2、編程模型
怎么用MapReduce計算一個大型文本文件中各單詞出現次數?Map的輸入參數指明了需要處理哪部分數據,以<在文本中的起始位置,需要處理的數據長度>表示,經過Map
處理,形成一批中間結果<單詞,出現次數>。而Reduce函數處理中間結果,將相同單詞出現的次數進行累加,

得到每個單詞總的出現次數3、實現機制

操作過程

(1)輸入文件分成M塊,每塊大概16M~64MB(可以通過參數決定),接著在集群的機器上執行分派處理程序

?

?(2)M個Map任務和R個Reduce任務需要分派,Master選擇空閑Worker來分配這些Map或Reduce任務

?(3)Worker讀取并處理相關輸入塊,Map函數產生的中間結果<key,value>對暫時緩沖到內存

?(4)中間結果定時寫到本地硬盤,分區函數將其分成R個區。中間結果在本地硬盤的位置信息將被發送回Master,然后Maste
r負責把這些位置信息傳送給ReduceWorker?

(5)當Master通知執行Reduce的Worker關于中間<key,value>對的位置時,它調用遠程過程,從MapWorker的本地硬盤上讀取

緩沖的中間數據。當Reduce Worker讀到所有的中間數據,它就使用中間key進行排序,這樣可使相同key的值都在一起

(6)Reduce Worker根據每一個唯一中間key來遍歷所有的排序后的中間數據,并且把key和相關的中間結果值集合傳遞給用戶

定義的Reduce函數。Reduce函數的結果寫到一個最終的輸出文件

?

(7)當所有的Map任務和Reduce任務都完成的時候,Master激活用戶程序。此時MapReduce返回用戶程序的調用點個區
本地硬盤的位置信息將被發送回Master,然后Master負責把這些位置信息傳送給ReduceWorker ? 案例分析假設有一批海量的數據,每個數據都是由26個字母組成的字符串,原始的數據集合是完全無序的,怎樣通過MapReduce完成
排序工作,使其有序(字典序)呢??——排序通常用于衡量分布式數據處理框架的數據處理能力









總結

以上是生活随笔為你收集整理的《云计算》学习笔记2——Google的云计算原理与应用(GFS和MapReduce)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。