Yarn做為hadoop下一代集群資源管理和調(diào)度平臺(tái), 其上能支持多種計(jì)算框架, 本文就簡(jiǎn)要介紹一下這些計(jì)算框架.
1. MapReduce
首先是大家熟悉的mapreduce, 在MR2之前, hadoop包括HDFS和mapreduce, 做為hadoop上唯一的分布式計(jì)算框架, 其優(yōu)點(diǎn)是用戶(hù)可以很方便的編寫(xiě)分布式計(jì)算程序, 并支持許多的應(yīng)用, 如hive, mahout, pig等. 但是其缺點(diǎn)是無(wú)法充分利用集群資源, 不支持DAG, 迭代式計(jì)算等. 為了解決這些問(wèn)題, yahoo提出了Yarn (next generation mapreduce), 一個(gè)分布式集群集群資源管理和調(diào)度平臺(tái). 這樣除了mapreduce外, 還可以支持各種計(jì)算框架.
2. Spark
Spark是一種與mapreduce相似的開(kāi)源計(jì)算框架, 不同之處在于Spark在某些工作負(fù)載方面表現(xiàn)更優(yōu), 因?yàn)樗褂昧藘?nèi)存分布式數(shù)據(jù)集, 另外除了提供交互式查詢(xún)外, 它還可以?xún)?yōu)化迭代工作負(fù)載.
3. Apache HAMA
Apache Hama 是一個(gè)運(yùn)行在HDFS上的BSP(Bulk Synchronous Parallel大容量同步并行) 計(jì)算框架, 主要針對(duì)大規(guī)模科學(xué)計(jì)算,如矩陣, 圖像, 網(wǎng)絡(luò)算法等.當(dāng)前它有一下功能:
- 作業(yè)提交和管理接口
- 單節(jié)點(diǎn)上運(yùn)行多個(gè)任務(wù)
- 輸入/輸出格式化
- 備份恢復(fù)
- 支持通過(guò)Apache Whirr運(yùn)行在云端
- 支持與Yarn一起運(yùn)行
4. Apache Giraph
圖像處理平臺(tái)上運(yùn)行這大型算法(如page rank, shared connections, personalization-based popularity 等)已經(jīng)很流行, Giraph采用BSP模型(bulk-synchronous parallel model),可用于等迭代類(lèi)算法。
5. Open MPI
這是一個(gè)高性能計(jì)算函數(shù)庫(kù),通常在HPC(High Performance Computing)中采用,與MapReduce相比,其性能更高,用戶(hù)可控性更強(qiáng),但編程復(fù)雜,容錯(cuò)性差,可以說(shuō),各有所長(zhǎng),在實(shí)際應(yīng)用中,針對(duì)不同 該應(yīng)用會(huì)采用MPI或者MapReduce。
6. Apache HBase
HBase是一個(gè)hadoop數(shù)據(jù)庫(kù), 其特點(diǎn)是分布式,可擴(kuò)展的,存儲(chǔ)大數(shù)據(jù)。當(dāng)有需要隨機(jī),實(shí)時(shí)讀寫(xiě)的大數(shù)據(jù)時(shí), 使用HBase很適合.
本文參考:
http://wiki.apache.org/hadoop/PoweredByYarn
http://www.oschina.net/p/open+mpi
http://incubator.apache.org/hama/
http://incubator.apache.org/giraph/
http://hbase.apache.org/