2013-02-08 86 views
0

实际上我对hdfs map-reduce如何在完全分布式模式下工作有点困惑。hdfs map-reduce如何在完全分布式模式下工作

假设我正在运行一个字数统计程序。我只给出'hdfs-site'&'核心站点'的路径。

那么事情是如何实际进行的?

这个程序是否分布在每个节点上还是什么?

+0

-1建议阅读一些文章/书籍,并回到与更具体问题的论坛。 – 2013-02-08 15:04:11

回答

1

是的,你的程序是分布式的。但是,说它分布到每个节点是错误的。更重要的是,hadoop检查你正在使用的数据,将这些数据分成更小的部分(在配置的一些约束下),然后将你的代码移动到hdfs中的这些部分的节点(我假设你有一个datanode和一个运行在节点上的tasktracker)。首先映射部分在这些节点上执行,从而产生一些数据。这些数据存储在节点上,并且在映射完成后,作业的第二部分将在节点 - 缩减阶段开始。

reducer在一些节点上启动(再次,您可以配置其中的多少个节点)并从映射器获取数据,将它们聚合并将输出发送到hdfs。

+0

也是在hdfs节点执行map reduce(一旦数据已被数据节点减少) – 2013-02-08 14:32:37

+0

是的,这里的“技巧”是找出数据在哪里并将计算移动到该数据。这主要是为制图人员完成的,但如果可能的话,减速器也可以从中受益。由于减速器通常会得到“分区”数据(所有减速器都会得到相同的“字数”),所以这样做有点困难,并且很可能导致将数据通过网络移动到某个节点。 – cybye 2013-02-08 15:40:48