小烨收藏MPI和Hadoop的区别

Posted SureData数烨数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小烨收藏MPI和Hadoop的区别相关的知识,希望对你有一定的参考价值。

三种框架:

a)  Hadoop基于分布式文件系统HDFS的分布式批处理计算框架。适用于数据量大,SPMD(单程序多数据)的应用。
b)  Spark 基于内存计算的并行计算框架。适用于需要迭代多轮计算的应用。

c)   MPI 基于消息传递的并行计算框架。适用各种复杂应用的并行计算。支持MPMD( 多程序多数据) ,开发复杂度高


1.Hadoop与MPI的主要区别体现在数据存储和数据处理在系统中位置不同。

        MPI是计算与存储分离,Hadoop是计算向存储迁移。这一点体现出,hadoop系统中数据存储的位置更重要。

        MPI是一种基于消息传递机制的并行编程标准,它为程序设计者提供了丰富而方便的通信函数,在程序设计上非常简单而且符合普通程序员的编程习惯。然而MPI有一个比较大的缺陷,即底层没有一个分布式的文件系统对其进行支持。在MPI中数据存储的节点和数据处理的节点往往是不同的,一般在每次计算开始时MPI需要从数据存储节点读取需要处理的数据分配给各个计算节点,然后进行数据处理,即MPI的数据存储和数据处理是分离的。对于计算密集型的应用MPI能表现出良好的性能,但对于处理TB级数据的数据密集型应用,大量的数据在节点间进行交换,网络通信时间将成为影响系统性能的重要因素,性能会大大降低。用“计算换通信”也是MPI并行程序设计中的基本原则 。

        在Hadoop中有HDFS文件系统的支持,数据是分布式存储在各个节点的,计算时各节点读取存储在自己节点的数据进行处理,从而避免了大量数据在网络上的传输,实现“计算向存储的迁移”。这对处理TB级的海量数据有很大的优势。

        Hadoop从上层架构上看是一种典型的主从式结构,主从式的结构在MPI并行程序设计中也是一种重要的并行程序设计方法,主节点负责对整个系统的数据和工作进行管理和分发。而Hadoop与MPI最根本的区别在于,Hadoop有一个主从式的文件系统HDFS在底层支撑其Map/Reduce的数据处理功能。有了HDFS,Hadoop可以方便地实现“计算向数据存储位置的迁移”,从而大大提高了系统计算效率。主从式基础存储和主从式数据处理构成了Hadoop的基本架构模型。


2.MPI无法应对节点的失效。

     如果MPI在运行过程出现节点失效及网络通信中断,则只有返回并退出,MPI没有提供一套机制处理节点失效后的备份处理方案问题,所以如果中途出现问题,所有的计算将重新开始,这是非常耗时的。Hadoop为应对服务器的失效,在数据备份上下了很大的功夫,数据块会形成多个副本存储在不同的地方,一般会有3个副本,采用简单化的跨机架数据块存储,最大限度避免了数据丢失,数据的安全性得到了保证。


3.Hadoop设计时有以下的几点假设

1、服务器失效是常态事件,而不是意外事件;

2、存储和处理的数据是海量的;

3、文件不会被频繁写入和修改,绝大部分文件的修改是采用在文件尾部追加数据,而不是覆盖原有数据的方式。对文件的随机写入操作在实际中几乎不存在;

4、机柜内的数据传输速度大于机柜间的数据传输速度;

5、海量数据的情况下移动计算比移动数据更有效;


以上是关于小烨收藏MPI和Hadoop的区别的主要内容,如果未能解决你的问题,请参考以下文章

小烨收藏ElasticSearch权威指南-映射和分析

小烨收藏动态规划和贪心算法比较

小烨收藏ElasticSearch权威指南-索引管理

小烨收藏ElasticSearch权威指南-入门

小烨收藏语音识别和自然语言处理

小烨收藏ElasticSearch权威指南-数据输入输出