Database 所有并行问题的MapReduce?

Database 所有并行问题的MapReduce?,database,performance,parallel-processing,mapreduce,cpu-speed,Database,Performance,Parallel Processing,Mapreduce,Cpu Speed,我知道MapReduce非常适合解决大型数据集上的并行问题。然而,是否有任何问题的例子,虽然在某种意义上是可并行的,但并不适合MapReduce 是和否。这实际上取决于它们的结构和编写方式。在给定的数据步/map-reduce函数中,map-reduce肯定存在并行性差的问题。对称矩阵的联立方程求解器就是一个例子。由于同时性的明显原因,如果在单个函数中编写,它们的并行性就不好(在许多情况下,它们可能加载到单个节点上)。解决这一问题的一个常见方法是将预矩阵计算隔离在单独的处理器中,因为它们是可并行

我知道MapReduce非常适合解决大型数据集上的并行问题。然而,是否有任何问题的例子,虽然在某种意义上是可并行的,但并不适合MapReduce

是和否。这实际上取决于它们的结构和编写方式。在给定的数据步/map-reduce函数中,map-reduce肯定存在并行性差的问题。对称矩阵的联立方程求解器就是一个例子。由于同时性的明显原因,如果在单个函数中编写,它们的并行性就不好(在许多情况下,它们可能加载到单个节点上)。解决这一问题的一个常见方法是将预矩阵计算隔离在单独的处理器中,因为它们是可并行的。通过分解这一点,map reduce优化器能够获取更多的节点和处理能力。

很少观察到:

  • 我们不应该将Hadoop和Hadoop复制的MapReduce的早期Google实现(即仅限于键/值映射)与MapReduce所基于的一般拆分和聚合概念混淆

  • MapReduce的理念(split&aggregate、divide&concur只是它的几个其他名称)是通过将处理过程拆分为可独立并行处理的较小子任务来实现并行化,因此可以应用于大量问题(数据密集型、计算密集型或其他)

  • 一般来说,MapReduce与大数据集或数据无关。它成功地应用于小数据集或计算MapReduce中,用于纯处理并行化

  • 为了回答您的问题,MapReduce通常不适用于原始任务无法拆分为可独立并行处理的子任务集的情况。在现实生活中,很少有用例属于这一类,因为对于MapReduce类型的处理,大多数不明显的问题都是近似的


第14张幻灯片对Map/Reduce有很高的“优缺点”,看看世界上最大的超级计算机正在解决什么样的问题。它们(问题和超级计算机)都是并行的,但没有使用MapReduce的迹象。将它用于需要许多查询的事情,或者更一般的事情会变得很尴尬