轉自http://www.blogjava.net/shenh062326/archive/2012/06/03/379845.html
做爲hadoop下一代集羣資源管理和調度平臺, 其上能支持多種計算框架, 本文就簡要介紹一下這些計算框架.
1. MapReduce
首先是大家熟悉的mapreduce, 在MR2之前, hadoop包括HDFS和mapreduce, 做爲hadoop上唯一的分佈式計算框架, 其優點是用戶可以很方便的編寫分佈式計算程序, 並支持許多的應用, 如hive, mahout, pig等. 但是其缺點是無法充分利用集羣資源, 不支持DAG, 迭代式計算等. 爲了解決這些問題, yahoo提出了Yarn (next generation mapreduce), 一個分佈式集羣集羣資源管理和調度平臺. 這樣除了mapreduce外, 還可以支持各種計算框架.
2. Spark
Spark是一種與mapreduce相似的開源計算框架, 不同之處在於Spark在某些工作負載方面表現更優, 因爲它使用了內存分佈式數據集, 另外除了提供交互式查詢外, 它還可以優化迭代工作負載.
3. Apache HAMA
Apache Hama 是一個運行在HDFS上的BSP(Bulk Synchronous Parallel大容量同步並行) 計算框架, 主要針對大規模科學計算,如矩陣, 圖像, 網絡算法等.當前它有一下功能:
- 作業提交和管理接口
- 單節點上運行多個任務
- 輸入/輸出格式化
- 備份恢復
- 支持通過Apache Whirr運行在雲端
- 支持與Yarn一起運行
4. Apache Giraph
圖像處理平臺上運行這大型算法(如page rank, shared connections, personalization-based popularity 等)已經很流行, Giraph採用BSP模型(bulk-synchronous parallel model),可用於等迭代類算法。
5. Open MPI
這是一個高性能計算函數庫,通常在HPC(High Performance Computing)中採用,與MapReduce相比,其性能更高,用戶可控性更強,但編程複雜,容錯性差,可以說,各有所長,在實際應用中,針對不同 該應用會採用MPI或者MapReduce。
6. Apache HBase
HBase是一個hadoop數據庫, 其特點是分佈式,可擴展的,存儲大數據。當有需要隨機,實時讀寫的大數據時, 使用HBase很適合.
本文參考: