MapReduce还是批处理作业?

mre*_*cer 3 parallel-processing jobs scalability mapreduce batch-file

我有一个需要在很多文件(1000's)上调用的函数.每个都独立于另一个,可以并行运行.每个文件的函数输出不需要与其他文件组合(当前).我有很多服务器可以扩展,但我不知道该怎么做:

1)在其上运行MapReduce

2)创建1000个作业(每个作业都有不同的文件).

一种解决方案会优于另一种吗?

谢谢!

PA.*_*PA. 6

MapReduce将为分发大型数据集工作负载提供重要价值.在您的情况下,在小型独立数据文件上进行较小的独立工作,在我看来,这可能是过度的.

所以,我更喜欢运行一堆动态创建的批处理文件.

或者,使用集群管理器和作业调度程序,如SLURM https://computing.llnl.gov/linux/slurm/

SLURM:高度可扩展的资源管理器

SLURM是一个开源资源管理器,专为各种规模的Linux集群而设计.它提供三个关键功能.首先,它在一段时间内向用户分配对资源(计算机节点)的独占和/或非独占访问,以便他们可以执行工作.其次,它提供了一个框架,用于在一组分配的节点上启动,执行和监视工作(通常是并行作业).最后,它通过管理待处理工作的队列来仲裁资源争用.

  • +1.一般来说,您希望做最适合您的问题的最简单的事情.正如@PA所指出的那样,设置mapreduce以执行可以使用独立文件在独立文件上完成的操作是过度杀伤.话虽如此,如果你知道你想要学习MapReduce是出于其他原因而想要将这个更简单的问题作为起点,那就去吧.但我不会在这种情况下推荐它. (2认同)