一、Apache Hama
簡介:Apache Hama是一個純BSP(Bulk Synchronous Parallel)計算框架,模仿了Google的Pregel瑰煎。用來處理大規(guī)模的科學(xué)計算嗤军,特別是矩陣和圖計算。
?建立在Hadoop上的分布式并行計算模型苫亦。
?基于 Map/Reduce 和 Bulk Synchronous 的實現(xiàn)框架。
?運(yùn)行環(huán)境需要關(guān)聯(lián) Zookeeper怨咪、HBase屋剑、HDFS 組件。
Hama中有2個主要的模型:
– 矩陣計算(Matrix package)
– 面向圖計算(Graph package)
二诗眨、Apache Giraph
代碼托管地址:GitHub
簡介:Apache Giraph是一個可伸縮的分布式迭代圖處理系統(tǒng)唉匾,靈感來自BSP(bulk synchronous parallel)和Google的Pregel,與它們 區(qū)別于則是是開源匠楚、基于 Hadoop 的架構(gòu)等巍膘。
Giraph處理平臺適用于運(yùn)行大規(guī)模的邏輯計算,比如頁面排行芋簿、共享鏈接峡懈、基于個性化排行等。Giraph專注于社交圖計算益咬,被Facebook作為其Open Graph工具的核心逮诲,幾分鐘內(nèi)處理數(shù)萬億次用戶及其行為之間的連接帜平。
三、HaLoop
簡介:迭代的MapReduce梅鹦,HaLoop——適用于迭代計算的Hadoop 裆甩。
Hadoop與HaLoop的不同
與Hadoop比較的四點(diǎn)改變:
1.提供了一套新的編程接口,更加適用于迭代計算齐唆;
2.HaLoop的master進(jìn)行job內(nèi)的循環(huán)控制嗤栓,直到迭代計算結(jié)束;
3.Task Scheduler也進(jìn)行了修改箍邮,使得任務(wù)能夠盡量滿足data locality
4.slave nodes對數(shù)據(jù)進(jìn)行cache并index索引茉帅,索引也以文件的形式保存在本地磁盤。
四锭弊、Twister
簡介:Twister堪澎, 迭代式MapReduce框架,Twister是由一個印度人開發(fā)的味滞,其架構(gòu)如下:
在Twister中樱蛤,大文件不會自動被切割成一個一個block,因而用戶需提前把文件分成一個一個小文件剑鞍,以供每個task處理昨凡。在map階段,經(jīng)過map()處理完的結(jié)果被放在分布式內(nèi)存中蚁署,然后通過一個broker network(NaradaBroking系統(tǒng))將數(shù)據(jù)push給各個reduce task(Twister假設(shè)內(nèi)存足夠大便脊,中間數(shù)據(jù)可以全部放在內(nèi)存中);在reduce階段光戈,所有reduce task產(chǎn)生的結(jié)果通過一個combine操作進(jìn)行歸并哪痰,此時,用戶可以進(jìn)行條件判定田度, 確定迭代是否結(jié)束妒御。combine后的數(shù)據(jù)直接被送給map task解愤,開始新一輪的迭代镇饺。為了提高容錯性,Twister每隔一段時間會將map task和reduce task產(chǎn)生的結(jié)果寫到磁盤上送讲,這樣奸笤,一旦某個task失敗,它可以從最近的備份中獲取輸入哼鬓,重新計算监右。
為了避免每次迭代重新創(chuàng)建task,Twister維護(hù)了一個task pool异希,每次需要task時直接從pool中取健盒。在Twister中,所有消息和數(shù)據(jù)都是通過broker network傳遞的,該broker network是一個獨(dú)立的模塊扣癣,目前支持NaradaBroking和ActiveMQ惰帽。