【问题标题】:How hdfs map-reduce actually work in fully distributed modehdfs map-reduce 如何在完全分布式模式下实际工作
【发布时间】:2013-02-08 22:26:51
【问题描述】:

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

假设我正在运行一个字数统计程序。我只给出“hdfs-site”和“core-site”的路径。

那么事情到底是怎么进行的呢?

这个程序是分布在各个节点还是什么?

【问题讨论】:

  • -1 建议阅读一些文章/书籍,然后带着更具体的问题回到论坛。

标签: java hadoop mapreduce hdfs


【解决方案1】:

是的,您的程序已分发。但如果说它分布在每个节点上是错误的。更重要的是,hadoop 检查您正在使用的数据,将这些数据拆分为更小的部分(在配置的一些限制下),然后将您的代码移动到这些部分所在的 hdfs 中的节点(我假设您有一个datanode和一个在节点上运行的tasktracker)。首先,地图部分在这些节点上执行,这会产生一些数据。此数据存储在节点上,在映射完成期间,您的工作的第二部分从节点开始,即归约阶段。

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

【讨论】:

  • 是否也在 hdfs 节点执行 map reduce(一旦数据节点减少了数据)
  • 是的,这里的“诀窍”是找出数据的位置并将计算移至该数据。这主要是为映射器完成的,但如果可能的话,reducers 也可以从中受益。由于 reducer 通常会获得“分区”数据(所有 reducer 都获得相同的“要计数的单词”),这有点难做,并且很可能会导致通过网络将数据移动到某个节点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多