今天做题,其中一道是
请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什么样的场景。
一直想对这些大数据计算框架总结一下,只可惜太懒,一直拖着。今天就借这个机会好好学习一下。
一张表
名称 | 发起者 | 语言 | 简介 | 特点 | 适用场景 |
---|---|---|---|---|---|
Hadoop | Yahoo工程师,Apache基金会 | Java | MapReduce分布式计算框架+HDFS分布式文件系统(GFS)+HBase数据存储系统(BigTable) 数据分布式存储在磁盘各个节点,计算时各个节点读取存储在自己节点的数据进行处理 |
高可靠(Hadoop按位存储) 高扩展(在可用的计算机集群间分配数据并完成计算任务,可以方便的扩展到数千个节点上) 高效(能在节点间动态的移动数据,保证节点的平衡)计算向存储迁移 高容错,通过数据备份应对节点失效 |
离线大批量数据处理; 不需要多次迭代 |
Spark | UC Berkley AMP Lab,Apache基金会 | Scala | 基于内存计算的并行计算框架 使用内存来存储数据,RDD(弹性分布式数据集) 用户可以指定存储策略,当内存不够的时候可以放到磁盘上 |
轻量级快速处理(减少磁盘IO,用RDD在内存中存储数据,需要持久化时才到磁盘) |