首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是确切的地图减少WorkFlow?

什么是确切的地图减少WorkFlow?
EN

Stack Overflow用户
提问于 2017-02-09 09:10:24
回答 1查看 920关注 0票数 0

"hadoop最终指南-汤姆·怀特“一书的摘要如下:

用户映射函数和用户约简函数之间的所有逻辑称为混洗。洗牌然后跨越两个地图和缩小。在用户的map()函数之后,输出在内存循环缓冲区中。当缓冲区已满80%时,后台线程将开始运行。后台线程将将缓冲区的内容输出到溢出文件中。此溢出文件由键进行分区。在每个分区中,通过key.After排序对键值对进行排序,如果启用了组合器函数,则调用组合器函数。所有溢出文件将合并到一个MapOutputFile中。所有地图任务的MapOutputFile将通过网络收集,以减少任务。减少任务将执行另一种任务。然后调用用户的约简函数。

所以问题是:

1.)根据上面的总结,这就是流程:

1a.)这是流还是别的什么东西?

1b.)你能用一个例子来解释上面的流程吗?比如说单词计数例子,(我在网上找到的那些不是那么详细)?

2.)那么映射器的相位输出是一个大文件(MapOutputFile)?这是一个大文件,被破解,键值对被传递给相应的还原器?

3.)为什么排序第二次发生,而数据已经被排序&当传递到各自的减速机时合并?

4.)假设mapper1在datanode1上运行,那么reducer1是否有必要在Datanode1上运行?或者它可以在任何Datanode上运行?

EN

回答 1

Stack Overflow用户

发布于 2017-04-05 16:41:17

回答这个问题就像改写整个历史。你的很多疑问都与操作系统的概念有关,而不是MapReduce。

  1. 映射器数据是在本地文件系统上编写的。数据根据减速器的数量进行划分。在每个分区中,可以根据溢出事件发生的时间来创建多个文件。
  2. 与写入文件之前一样,在内存排序中对给定分区中的每个小文件进行排序。
  3. 为什么需要在映射端排序数据?a.The数据在映射程序端进行排序和合并,以减少文件数量。b.The文件是排序的,因为在还原器上不可能收集给定键的所有值。
  4. 在收集减速器上的数据之后,首先需要减少系统上的文件数量(请记住,uLimit对每个用户都有固定的数量--在本例中是hdfs)。
  5. 还原器只在一小组排序文件上维护一个文件指针,并对它们进行合并。

要了解更多有趣的想法,请参考:http://bytepadding.com/big-data/map-reduce/understanding-map-reduce-the-missing-guide/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42132371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档