hadoop - Mapreduce 并行副本与 http 线程

标签 hadoop mapreduce

我无法了解以下 2 个 mapreduce 作业配置属性之间的差异。

mapreduce.reduce.shuffle.parallelcopies

mapreduce.tasktracker.http.threads

mapreduce.reduce.shuffle.parallelcopies 是在复制(洗牌)阶段由 reduce 运行的并行传输的数量。

mapreduce.tasktracker.http.threads 是 http 服务器的工作线程数。这用于 map 输出获取。

parallelcopies 表示并行传输的数量,我猜它指的是一次将 map 输出并行传输到 reducer。 http threads 表示要在 reducer 中运行以复制 map 输出的 http 线程数。

我无法区分这两个属性,对我来说似乎是相同的,因为两者都与 reducer 的提取器数量有关。

请帮助我了解这些属性的实际用途以及它们将如何提供帮助?

最佳答案

下图让您了解 mapreduce 程序的流程。

在 map tack 之后,运行 map 任务的节点将通过 HTTP 线程提供输出文件,此类线程的数量将由 ma​​preduce.tasktracker.http.threads 控制。默认情况下它是 40,意味着一个 tasktracker 将通过 40 个 http 线程获取数据。因此它可以为 40 个 reducer (最少)提供服务,同时它也可以变高。

一旦映射端的数据可用,reducer 就会从每个映射器节点复制它们。所以一次他们必须从许多节点复制。为了利用所有系统资源并减少复制中间数据的时间,reducer 将并行执行此操作。此并行副本数由 ma​​preduce.reduce.shuffle.parallelcopies 控制。默认为 5,因此一个 reducer 可以并行复制 5 个 map 输出。

enter image description here

关于hadoop - Mapreduce 并行副本与 http 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29841442/

相关文章:

java - 如何处理 URISyntaxException : Illegal character in path in Hadoop Map Reduce job?

visual-studio-2010 - 在 Visual Studio 中调试 MapReduce 程序

hadoop - 孤立的 Yarn 子进程会发生什么?

java - hadoop 2.3.0 源码构建错误

java - hadoop在输入文件夹中选择输入文件

hadoop - 增量 MapReduce 实现(除了 CouchDB,最好)

hadoop - Pig Latin等同于PostgreSQL generate_series()函数?

java - 映射器和缩减器的数量。这是什么意思?

mysql - 使用 sqoop 从 Mysql 导入 Hive 花费的时间太长

hadoop - Oozie - 任务日志不显示