首页 > 试题广场 >

请简要描述一下Hadoop, Spark, MPI三种计算框

[问答题]
请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什么样的场景
推荐
a)     Hadoop
基于分布式文件系统HDFS的分布式批处理计算框架。适用于数据量大,SPMD(单程序多数据)的应用。
b)     Spark
基于内存计算的并行计算框架。适用于需要迭代多轮计算的应用。
c)      MPI
基于消息传递的并行计算框架。适用各种复杂应用的并行计算。支持MPMD( 多程序多数据) ,开发复杂度高
编辑于 2015-01-28 11:21:18 回复(1)
Hadoop
是一种分布式系统基础架构
当处理海量数据的程序,开始要求高可靠、高扩展、高效、低容错、低成本的场景

Spark
是一种可以基于内存,迭代的计算框架
数据过于繁杂,并且需要让计算通过迭代,并在内存中,极大地提高效率的场景

MPI
是一种消息传递的编程模型
并行计算平台需要在集群上很好地应用的场景
发表于 2015-01-12 12:45:58 回复(0)
Hadoop是离线计算,基于磁盘,每次运算之后的结果需要存储在HDFS里面,下次再用的话,还需要读出来进行一次计算,磁盘IO开销比较大。底层基于HDFS存储文件系统。并且Hadoop只有Map和Reduce两种接口,相对于Spark来说太少了。Spark里面的一个核心的概念就是RDD,弹性分布式数据集。Spark支持内存计算模型,用户可以指定存储的策略,当内存不够的时候,可以放置到磁盘上。并且Spark提供了一组RDD的接口,Transformations和Action。Transformations是把一个RDD转换成为另一个RDD以便形成Lineage血统链,这样当数据发生错误的时候可以快速的依靠这种继承关系恢复数据。Action操作是启动一个Job并开始真正的进行一些计算并把返回的结果可以给Driver或者是缓存在worker里面。MPI不是了解哎,,,还需要关注下啦。
编辑于 2015-03-09 10:59:45 回复(0)
<p> 总体而言: 1,Hadoop是离线计算,基于磁盘,每次运算之后的结果需要存储在HDFS里面,下次再用的话,还需要读出来进行一次计算,磁盘IO开销比较大。底层基于HDFS存储文件系统。适用于离线数据处理和不需要多次迭代计算的场景,并且Hadoop只有Map和Reduce两种接口,相对于Spark来说太少了。 &nbsp; 2,Spark是内存计算框架,适用于多次迭代的计算模型,诸如各种机器学习算法 ,Spark里面的一个核心的概念就是RDD,弹性分布式数据集。Spark支持内存计算模型,用户可以指定存储的策略,当内存不够的时候,可以放置到磁盘上。并且Spark提供了一组RDD的接口,Tran敏感词ormations和Action。Tran敏感词ormations是把一个RDD转换成为另一个RDD以便形成Lineage血统链,这样当数据发生错误的时候可以快速的依靠这种继承关系恢复数据。Action操作是启动一个Job并开始真正的进行一些计算并把返回的结果可以给Driver或者是缓存在worker里面。 3,MPI是消息传递接口,可以理解为是更原生的一种分布式模型 </p> <p> 就作业而言: 1,Hadoop中的作业,一段编好能运行的程序被称为MapReduce程序,也就是一个Job,每个Job下还能有若干个task,可区分为MapTask和ReduceTask。<img src="http://www.raincent.com/uploadfile/2014/1121/20141121050949944.jpg" alt="" /> </p> <p> 2,在Spark中,作业有很复杂的层级划分 </p> <pre>- Application:用户在Spark上部署的程序,由集群上的驱动程序和执行器组成 - Task:被发送到一个执行器的工作单元 - Job:一个由多个由Spark action引起的反应task组成的并行计算的单元 - Stage:每个Job可以被划分成多个task的集合,成为stage,它们之间互相关联</pre> <p> <img src="http://www.raincent.com/uploadfile/2014/1121/20141121051047349.jpg" alt="" /> </p> <p> 一个Application和一个SparkContext相关联,每个Application中可以有一个或多个Job,可以并行或者串行运行Job。Spark中的一个Action可以触发一个Job的运行。在Job里面又包含了多个Stage,Stage是以Shuffle进行划分的。在Stage中又包含了多个Task,多个Task构成了Task Set。 </p>
发表于 2015-09-14 14:47:37 回复(0)

综合了一下大家的答案:

1,Hadoop是离线计算,基于磁盘,每次运算之后的结果需要存储在HDFS里面,下次再用的话,还需要读出来进行一次计算,磁盘IO开销比较大。底层基于HDFS存储文件系统。适用于离线数据处理和不需要多次迭代计算的场景,并且Hadoop只有Map和Reduce两种接口,相对于Spark来说太少了。 
2,Spark是内存计算框架,适用于多次迭代的计算模型,诸如各种机器学习算法 ,Spark里面的一个核心的概念就是RDD,弹性分布式数据集。Spark支持内存计算模型,用户可以指定存储的策略,当内存不够的时候,可以放置到磁盘上。并且Spark提供了一组RDD的接口,Tran敏感词ormations和Action。Tran敏感词ormations是把一个RDD转换成为另一个RDD以便形成Lineage血统链,这样当数据发生错误的时候可以快速的依靠这种继承关系恢复数据。Action操作是启动一个Job并开始真正的进行一些计算并把返回的结果可以给Driver或者是缓存在worker里面。
3,MPI是消息传递接口,可以理解为是更原生的一种分布式模型

发表于 2015-06-11 16:11:15 回复(0)
hadoop包括hdfs、mapreduce、yarn、核心组件。hdfs用于存储,mapreduce用于计算,yarn用于资源管理。
spark包括spark sql、saprk mllib、spark streaming、spark 图计算。saprk的这些组件都是进行计算的。spark sql离线计算,spark streaming 流计算,spark mllib机器学习。
mpi高性能计算。
hahoop只有mapreduce是和spark一样用来计算,要比较的话,只能比较mapreduce与spark区别。mapreduce叠代计算中间结果放在磁盘,适合大数据离线计算。spark技术先进,统一使用rdd,结果可放在内存,pipeline,计算速度比mapreduce快。
大数据存储使用hadoop的hdfs,资源管理用hadoop的yarn,计算使用spark或mpi
发表于 2017-07-15 16:42:51 回复(0)
System.out.println("hello");

发表于 2014-12-19 14:54:24 回复(0)
Hadoop:基于分布式文件系统HDFS的分布式批处理框架,适用于数据量大,SPMD(单程序多数据)的应用。
Spark:基于内存计算的并行计算框架,适用于需要迭代多轮计算的应用。
MPI(Message Passing Interface):基于消息传递的并行计算框架,适用于各种复杂应用的并行计算。支持MPMD(多程序多数据),开发复杂度高。
发表于 2021-04-16 22:37:35 回复(0)
Hadoop用到硬盘存储,使用MapReduce进行离线计算,使用场景为数据量大,延时高的场景。
Spark是

发表于 2019-09-26 13:46:30 回复(0)
hadoop:批处理,延迟较高,基于yarn,发展较快,生态好。
Spark:批处理与实时(SparkSQL)都有,还有图计算,机器学习,适合各种场景,对内存依赖与数据规模有关。
MPI:CPU密集型,并行计算,需要硬件支撑,如MIC卡。
发表于 2017-02-25 23:47:05 回复(0)
1.hadoop
就计算框架而言,hadoop计算框架指的是MapReduce(二代称yarn)计算框架;
特点是可以通过集群分布式处理超大规模数据;
适用于离线获得统计报表的场景。
2.spark
没有在工作中使用过spark,仅仅就了解的说下。
spark本质上并不依赖与yarn,它其实是一个可以与mr媲美的计算框架,是一套快速出色、可扩展能力惊人且极具灵活性的开源分布式计算平台;
适用于一切需分布式的场景,特别对于流计算处理很棒。
3.mpi
确实没接触过,查了下,MPI(Message Passing Interface)是一种被广泛采用的消息传递标准,是一种基于消息传递的并行编程技术;
这么看来,本质上是个标准。
不太了解具体使用场景。

发表于 2016-05-23 17:55:33 回复(0)
Hadoop分布式计算,大规模集群的环境使用
Spark内存计算,更快
MPI并行编程,
发表于 2015-09-21 11:37:53 回复(0)
<div> Hadoop主要建立在MapReduce引擎,将算法转化为Map和Reduce两种不同的操作对数据进行分布式处理。<br /> 目前而言,Hadoop是最为稳定的工业级的分布式存储与处理平台,但是由于分布式运算的中间结果都会保存在主存中,运算速度比较慢。 <br /> <br /> Spark是In-Memory的分布式系统,能很好地管理内存资源,通过RDD的构建,将数据放在内存中进行计算。 <br /> 所以特点是运算速度高于Hadoop,适合迭代等复杂的数据挖掘算法实现。 <br /> <br /> 根据两者特点,可以依不同的时间要求选择Hadoop与Spark。对于实时性要求高的例如数据流的计算,可以选择Spark。 对于稳定性要求高的,离线批处理计算等任务可以选择Hadoop计算框架。<br /> <br /> 不了解MPI<br /> </div>
发表于 2015-09-10 11:04:40 回复(0)
<div> hadoop采用hdfs作为分布文件存储,有效的解决了分布式平台下文件分割问题;mapreduce算法框架,为并行计算提供了可能。hadoop是大数据时代应运而生的产物,因此能够处理海量数据。虽然hadoop计算能力强大,但是hadoop启动速度慢,因此适用于离线处理。hadoop用于海量数据对实时要求又不是特别高的场景,如服务器的日志分析,网站KPI的分析;<br /> spark:可以直接支持内存数据处理,因此可以实时处理流数据,但是就是由于内存的限制使得spark处理数据规模远小于hadoop,spark应用于对实时要求高的场景,如网络安全的实时监控、电商网站的实时推荐系统;<br /> </div>
发表于 2015-09-06 17:10:03 回复(0)
地方好地方
发表于 2015-06-16 14:16:04 回复(0)
hadoop是一个可基于普通PC集群进行分布式存储和分布式计算的工具,
spark是基于内存的分布式计算工具,可搭建在hadoop2.x、standalone
MPI是多主机联网进行协同并行计算的工具,可基于个人电脑也可使用Top10的超级计算机。


发表于 2015-04-22 19:26:55 回复(0)
Hadoop适用于离线大批量数据处理场景;Spark是内存计算框架,适用于并行处理、实施计算、计算性能要求极高的场景;MPI适用于数据量小的处理场景;
发表于 2015-03-25 10:21:08 回复(0)
hadoop 离线数据分析
Spark 没了解过
MPI 没了解过
发表于 2015-02-13 11:50:36 回复(0)
Hadoop计算框架(特指MapReduce)的特点是磁盘计算,稳定性高,适用于离线数据处理和不需要多次迭代计算的场景
Spark是内存计算框架,适用于多次迭代的计算模型,诸如各种机器学习算法
MPI是消息传递接口,可以理解为是更原生的一种分布式模型
发表于 2015-02-09 20:01:11 回复(0)
请输入正确的答案及解题思路,如需输入代码,可点击菜单 <> 切换至代码高亮模式
发表于 2015-01-09 13:52:31 回复(1)
发表于 2015-01-09 13:46:57 回复(0)