hama是基於hdfs上的bsp模型實現。apache hame是google pregel的開源實現
pregel是google提出的乙個面向大規模圖計算的通用程式設計模型。許多實際應用中都涉及到大型的圖演算法,典型的如網頁鏈結關係、社交關係、地理位置圖、科研**中的引用關係等,有的圖規模可達數十億的頂點和上萬億的邊。pregel程式設計模型就是為了對這種大規模圖進行高效計算而設計。
pregel的設計思想來自bsp(bluk synchronous parallel)模型。bsp模型包括三部分:bsp機器模型、bsp計算模型和bsp代價模型。其中bsp計算模型採用單程式多資料(spmd)的執行方式。bsp計算由一組處理單元和一系列連續的超級步 (superstep)組成。在每個超級步內,每個處理單元併發地執行本地計算,並向其他的處理單元傳送訊息。在乙個超級步結束時有乙個全域性的同步操作。因此,可以看作本地計算-全域性通訊-柵欄同步模式。
具體而言,pregel計算由一系列的迭代(即超級步)組成。在每乙個超級步中,計算框架會呼叫頂點上的使用者自定義的compute函式,這個過程是並行執行的。compute函式定義了在乙個頂點v以及乙個超級步s中需要執行的操作。該函式可以讀入前一超級步s-1中傳送來的訊息,然後將訊息傳送給在下一超級步s+1中處理的其他頂點,並且在此過程中修改v的狀態以及其出邊的狀態,或者修改圖的拓撲結構。訊息通過頂點的出邊傳送,但乙個訊息可以送到任何已知id的特定頂點上去。這種計算模式非常適合分布式實現:頂點的計算是並行的;它沒有限制每個超級步的執行順序,所有的通訊都僅限於s到s+1之間。
pregel是乙個以頂點為中心的計算模型,邊在這種計算模式中並不是第一類物件,在邊上沒有相應的計算。
少點:單向鬆弛模擬:對於模式圖中的乙個出邊而言,孩子節點或孫子節點必須出現在條件集合中
少點:如果該點不存在,則他的兒子節點必須都存在,會出現無用結果,如存在a-->b,則輸出b
雙向鬆弛模擬:將模式圖的邊反向,再匹配,雙向匹配。
少點:如果該點不存在,則他的兒子和父親節點必須都存在。
與誰比較,優勢?
頂點屬性與頂點格式 頂點緩衝
頂點屬性與頂點格式 頂點可謂是3d世界中的基本元素。在計算機所能描繪的3d世界中,任何物體都是由多邊形構成的,可以是三邊形,也可以是四邊形等。由於三邊形,即三角形所具有的特殊性質決定其在3d世界中得到廣泛的使用。構成三角形需要三個點,這些點的性質就是這章所要講的內容。也許你已經知道頂點的結構定義,你...
一次奇葩Hama問題記錄
對hama進行改進,引用了乙個類a a繼承了執行緒類 當該類實現如下時,graphjobrunner 中 override public final void setup bsppeerpeer throws ioexception,syncexception,interruptedexceptio...
頂點一部落格
上學期進行了頂點一計畫,主要內容是早自習的換位思考,以及自己組隊做小調研。早自習的換位思考不像是工科學校的課程,他別具人文情懷,想讓我們發現生活中的小細節,不做個人精緻主義的倡導者。早自習這麼多天,留在心裡最深的一句話是,技術永遠是最後一步。我們組的調研是關於大學生學生組織退留情況。我們發現,不同的...