圖計算簡介和Pregel簡介


一、圖計算簡介

1、圖結構數據

許多大數據都是以大規模圖或網絡的形式呈現,如社交網絡、傳染病傳播途徑、交通事故對路網的影響
許多非圖結構的大數據,也常常會被轉換為圖模型后進行分析
圖數據結構很好地表達了數據之間的關聯性
關聯性計算是大數據計算的核心——通過獲得數據的關聯性,可以從噪音很多的海量數據中抽取有用的信息
比如,通過為購物者之間的關系建模,就能很快找到口味相似的用戶,並為之推薦商品
或者在社交網絡中,通過傳播關系發現意見領袖

2、傳統圖計算解決方案的不足之處

很多傳統的圖計算算法都存在以下幾個典型問題:
(1)常常表現出比較差的內存訪問局部性
(2)針對單個頂點的處理工作過少
(3)計算過程中伴隨着並行度的改變

 

針對大型圖(比如社交網絡和網絡圖)的計算問題,可能的解決方案及其不足之處具體如下:
(1)為特定的圖應用定制相應的分布式實現:通用性不好
(2)基於現有的分布式計算平台進行圖計算:在性能和易用性方面往往無法達到最優
現有的並行計算框架像MapReduce還無法滿足復雜的關聯性計算
MapReduce作為單輸入、兩階段(Map和Reduce)、粗粒度(以數據塊為單位處理)數據並行的分布式計算框架,在表達多迭代、稀疏結構和細粒度數據時,力不從心
比如,有公司利用MapReduce進行社交用戶推薦,對於5000萬注冊用戶,50億關系對,利用10台機器的集群,需要超過10個小時的計算
(3)使用單機的圖算法庫:比如BGL、LEAD、NetworkX、JDSL、Standford GraphBase和FGL等,但是,在可以解決的問題的規模方面具有很大的局限性
(4)使用已有的並行圖計算系統:比如,Parallel BGL和CGM Graph,實現了很多並行圖算法,但是,對大規模分布式系統非常重要的一些方面(比如容錯),無法提供較好的支持

3、圖計算通用軟件

傳統的圖計算解決方案無法解決大型圖的計算問題,因此,就需要設計能夠用來解決這些問題的通用圖計算軟件
針對大型圖的計算,目前通用的圖計算軟件主要包括兩種:
第一種主要是基於遍歷算法的、實時的圖數據庫,如Neo4j、OrientDB、DEX和 Infinite Graph
第二種則是以圖頂點為中心的、基於消息傳遞批處理的並行引擎,如GoldenOrb、Giraph、Pregel和Hama,這些圖處理軟件主要是基於BSP模型實現的並行圖處理系統

  一次BSP(Bulk Synchronous Parallel Computing Model,整體同步並行計算模型,又稱“大同步”模型)計算過程包括一系列全局超步(超步就是計算中的一次迭代),每個超步主要包括三個組件:
  局部計算:每個參與的處理器都有自身的計算任務,它們只讀取存儲在本地內存中的值,不同處理器的計算任務都是異步並且獨立的
  通訊:處理器群相互交換數據,交換的形式是,由一方發起推送(put)和獲取(get)操作
  柵欄同步(Barrier Synchronization):當一個處理器遇到“路障”(或柵欄),會等到其他所有處理器完成它們的計算步驟;每一次同步也是一個超步的完成和下一個超步的開始

二、Pregel簡介

  谷歌公司在2003年到2004年公布了GFS、MapReduce和BigTable,成為后來雲計算和Hadoop項目的重要基石
  谷歌在后Hadoop時代的新“三駕馬車”——Caffeine(大規模網頁索引構建,即爬蟲)、Dremel(實時交互式查詢,PB級數據2-3秒即可給出查詢結果)和Pregel,再一次影響着圈子與大數據技術的發展潮流
  Pregel是一種基於BSP模型實現的並行圖處理系統
  為了解決大型圖的分布式計算問題,Pregel搭建了一套可擴展的、有容錯機制的平台,該平台提供了一套非常靈活的API,可以描述各種各樣的圖計算
  Pregel作為分布式圖計算的計算框架,主要用於圖遍歷、最短路徑、PageRank計算等等

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM