0

Apache Hadoop 的灵感来自 Google MapReduce 论文。MapReduce 的流程可以看作是两组 SIMD(单指令多数据),一组用于 Mappers,另一组用于 Reducers。Reducers 通过预定义的“key”消耗 Mappers 的输出。MapReduce框架(和Hadoop)的本质是自动对数据进行分区,确定分区数量和并行作业,管理分布式资源。

我有一个并行运行的通用算法(不一定是 MapReducable)。我没有以 MapReduce 方式实现算法本身。相反,该算法只是一个单机 python/java 程序。我想并行运行这个程序的 64 个副本(假设程序中没有并发问题)。即我对Hadoop集群中的计算资源比对MapReduce框架更感兴趣。无论如何我可以以这种旧方式使用 Hadoop 集群吗?

4

1 回答 1

0

MapReduce 的其他思考方式是,MR 进行转换,Reduce 进行某种聚合。

Hadoop 还允许仅映射作业。这样,应该可以并行运行 64 个 Map 程序副本。

Hadoop 有槽的概念。默认情况下,每个节点/机器将有 2 个 map 和 2 个 reduce 插槽。因此,对于 64 个并行进程,需要 32 个节点。如果节点是高端配置,那么每个节点的 M/R 插槽数也可以增加。

于 2013-04-10T12:35:43.767 回答