前不久剛剛讀了谷歌三篇重要的論文,得到一些感想。
進入21世紀以來,隨著上網的人越來越多,網路中產生的資料也越來越多。人們面臨著兩個關鍵問題: 1、海量資料如何存盤?2、海量資料如何計算?而谷歌公司在2003年至2006年發布的三篇論文則為解決兩個問題提供了思路,從此引爆了大資料時代。
GFS檔案系統是一個可擴展的分布式檔案系統,用于大型的、分布式的、對大量資料進行訪問的應用。GFS由一個master和大量的chunkserver構成。Google設定一個master來保存目錄和索引資訊,這是為了簡化系統果,提高性能來考慮的,但是這就會造成主成為單點故障或者瓶頸。為了消除主的單點故Google把每個chunk設定的很大,這樣,由于代碼訪問資料的本地性,application端和master的互動會減少,而主要資料流量都是Application和chunkserver之間的訪問。GFS不僅滿足了人們對記憶體的需求,而且該系統還將檔案管理得有序不亂,該系統在現在的電腦中應用范圍泛,它也有許多的優點。其中GFS將整個系統的節點分為三類角色:客戶端、主服務器和資料塊服務器。它的特點也十分具有特色,如1.GFS實作了資料流和控制流的分離。Client和Master之間只有控制流,沒有資料流,極大地降低了Master的負載。Client和Chunk Server之間直接傳輸資料流,同時由于檔案被分為多個Chunk進行分布式存盤,Client可以同時訪問多個Chunk Server,從而使整個系統的IO高度并行,整體性能得到提高。2.采用中心服務器模式:(1)可以方便的操作Chunk Server(2)Master可以掌握系統內所有Chunk Server的情況,方便進行負載均衡(3)不存在元資料的一致性問題3.無論是客戶端還是chunk服務器都不需要快取檔案資料:(1)檔案操作大部分是流式讀寫,不存在大量重復的讀寫(2)Chunk Server上的資料存盤在本地檔案系統上(Linux File System),若真的出現頻繁存取,那么本地檔案系統的cache也可以支持(3)若建立系統cache,那么cache中的資料與Chunk Server中的資料的一致性很難保證。
MapReduce是一種編程模型,用于大規模資料集(大于1TB)的并行運算。顧名思義把Map和Reduce分開,它實作的主要思想也是依賴Map(映射)和Reduce(歸約)。Map函式是一個處理key/value鍵值對的資料集合的程序,Reduce函式則是一個合并的程序。BigTable則是采用NoSQL資料庫將資料存在一張大表中,通過犧牲存盤的空間來換取性能。Google的后面兩篇論文——MapReduce 和 BigTable都是以GFS為基礎。三大基礎核心技術構建出了完整的分布式運算架構。
作為一名大二的學生,想要完全理解谷歌的三篇論文還需要長期的知識累積,現在最重要的是通過這些論文學習大資料的思想,開拓眼界,打好這方面的基礎。以后自己也將更加努力!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/127488.html
標籤:其他
上一篇:谷歌三篇重要論文讀后感
