使用大型数据集进行Map and Reduce =在实践中如何运作?

时间:2011-04-11 18:48:21

标签: java algorithm mapreduce

我会感谢你的建议:

http://en.wikipedia.org/wiki/MapReduce声明:“......一个大型服务器场可以使用MapReduce在几个小时内对数PB的数据进行排序......”和“...主节点接受输入,对其进行分区分成较小的子问题,然后将它们分发给工作节点......“

我完全不明白这在实践中是如何运作的。鉴于我有一个拥有1PB数据的SAN(存储)。如何通过“主人”有效地将这些数据分配给奴隶?那是我无法理解的东西。鉴于我有从SAN到Master的10Gibt连接,从Masters到Slave 1 Gbit,我最多可以一次“扩散”10Gbit。我如何处理数PB几个小时,因为我首先必须将数据传输到“reducer / workers节点”?

非常感谢! 延

2 个答案:

答案 0 :(得分:2)

我相信这是因为主节点执行管理,而不是数据传输

数据存储在分布式文件系统中,并同时从多个节点引入。 (没有理由让数据通过主节点。)

答案 1 :(得分:2)

实际上,在一个完整的Map / Reduce框架上,例如Hadoop,数据存储本身就是分布式的。例如,Hadoop具有HDFS分布式文件存储系统,可以实现降低性能和高性能。文件系统节点可以用作计算节点,也可以是专用存储节点,具体取决于如何部署框架。

通常,在这种情况下提及计算时间时,假设输入数据已经存在于集群的分布式存储中。主节点仅向计算节点提供数据范围进行处理 - 而不是数据本身。