art*_*tif 35 hadoop tcp distributed-computing mpi protocol-buffers
如果我错了,请纠正我,但我的理解是Hadoop不使用MPI进行不同节点之间的通信.
这有什么技术原因?
我可能会冒一些猜测,但我不知道MPI如何在"引擎盖下"实施,以了解我是否正确.
想想看,我对Hadoop的内部结构也不是很熟悉.我在概念层面理解框架(map/combine/shuffle/reduce以及它如何在高级别工作),但我不知道细节的实现细节.我一直认为Hadoop 通过TCP连接传输序列化数据结构(可能是GPB),例如在混洗阶段.如果不是这样,请告诉我.
小智 25
Hadoop/map-reduce的一大特色是容错.大多数(任何?)当前MPI实现不支持容错.正在考虑将来的OpenMPI版本.
Sandia labs有一个使用MPI的map-reduce版本,但它缺乏容错能力.
rju*_*ney 19
MPI是消息传递接口.就在名称中 - 没有数据位置.您将数据发送到另一个节点以进行计算.因此,在处理大数据时,MPI在性能方面受网络限制.
使用Hadoop分布式文件系统的MapReduce复制数据,以便您可以在本地存储中进行计算 - 从磁盘流式传输并直接进入处理器.因此,MapReduce利用本地存储来避免在处理大数据时出现网络瓶颈.
这并不是说MapReduce不使用网络......它确实:而且洗牌通常是工作中最慢的部分!但它尽可能少地使用它.
总结一下:Hadoop(和谷歌之前的东西)没有使用MPI,因为它无法使用MPI并且工作.MapReduce系统是专门为解决MPI在硬件趋势方面的缺点而开发的:磁盘容量爆炸(及其数据),磁盘速度停滞,网络速度慢,处理器千兆赫峰值,多核接管摩尔定律.
小智 8
事实是Hadoop可以使用MPI实现.只要MPI存在,MapReduce就已经通过MPI使用了.MPI具有'bcast'等功能 - 广播所有数据,'alltoall' - 将所有数据发送到所有节点,'reduce'和'allreduce'.Hadoop通过使用reduce命令打包传出通信命令,消除了显式实现数据分发和收集结果方法的要求.在实施Hadoop之前,您需要确保问题符合"减少"功能.这可能是你的问题更适合'scatter'/'gather',你应该使用Torque/MAUI/SGE与MPI而不是Hadoop.最后,MPI不会按照另一篇文章中的描述将您的数据写入磁盘,除非您使用写入磁盘的接收方法.它就像Hadoop一样,通过将您的进程/数据发送到其他地方来完成工作.重要的是要通过足够的细节来理解您的问题,以确保MapReduce是最有效的并行化策略,并且要意识到存在许多其他策略.
归档时间: |
|
查看次数: |
18447 次 |
最近记录: |