1. 程式人生 > >超越Hadoop的大資料分析之圖形處理尺寸

超越Hadoop的大資料分析之圖形處理尺寸

另一個來自Google的重要工具,看起來超越了Hadoop MR——Pregel框架實現了圖形計算(Malewicez et al.2010)。在Pregel中的計算是由一系列迭代組成的,被稱為supersteps。圖上的每個頂點都與一個使用者定義的計算函式相關聯;Pregel確保每個superstep在圖的每條邊上併發呼叫使用者定義的計算函式。頂點可通過邊傳送訊息,並且頂點間可交換值。這也是個全域性同步——所有操作必須在使用者定義的函式結束後才能繼續。熟悉BSP的讀者可以看出為什麼Pregel是BSP優秀的例子——一組實體在使用者定義的函式中使用全域性鎖平行計算,並且能夠進行訊息交換。

Apache Hama (Seo et al. 2010)相當於開源的Pregel,一種BSP的實現。Hama在HDFS和微軟的Dryad引擎之上 實現了BSP。大概是因為他們不希望被認為他們與Hadoop的社群之間有所不同。但重要的是,BSP本質上是一種適合迭代計算的範例,而且Hama擁有CGD的並行實現,這是Hadoop不容易實現的。必須指出的是,Hama的BSP引擎是在MPI之上實現的,這是並行程式設計文學的鼻祖(

www.mcs.anl.gov/research/projects/mpi/ )。Apache Giraph, Golden Orb, 還有Stanford GPS專案的靈感也來自Pregel。

GraphLab (Gonzalez et al. 2012)已經成為現代化圖形處理的範例。GraphLab起源於華盛頓大學和卡內基梅隆大學(CMU)的學術專案。GraphLab提供跨叢集節點處理圖形的有用抽象。PowerGraph,GraphLab的後續版,使得它有效地處理自然圖形或冪律圖——這是有大量不良連線點和少量良好連線點的圖。Twitter上關於頁面排名和三角形計數問題的效能評估已驗證GraphLab比其他方法更有效率。本書的重點主要是Giraph,GraphLab及其相關方面。

表1.1對各種範例的非功能特性進行了比較,如可擴充套件性、容錯機制和已實現的演算法。由此可推斷出,儘管傳統工具只工作在單個節點上,不可能做橫向擴充套件,也有可能出現單點故障,近期重構方面的努力搶劫它們跨代遷移。值得注意的是,大多數圖形處理範例並沒有容錯機制,然而Spark和Hadoop是其中提供容錯機制的第三代工具。

QQ圖片20140525183622