Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mapreduce 映射缩减和哈希分区_Mapreduce_Hadoop Partitioning - Fatal编程技术网

Mapreduce 映射缩减和哈希分区

Mapreduce 映射缩减和哈希分区,mapreduce,hadoop-partitioning,Mapreduce,Hadoop Partitioning,在学习MapReduce时,我遇到了: 给定的Mapreduce程序在映射阶段生成100个具有10个唯一键的键值对 当至少有一个Reduce任务在使用散列分区器时肯定不会分配任何键时,此程序可以有多少Reduce任务选择正确的所有答案 []A.3 []B.11 []约50 []草101 答案是B,C,D 因为唯一键的编号是10。我们必须有至少10个任务。并且至少一个reduce任务具有空密钥 我无法理解这些答案是如何得出的。请帮助我。地图输出中的唯一键仅分配给一个reduce任务。如果有10个唯

在学习MapReduce时,我遇到了:

给定的Mapreduce程序在映射阶段生成100个具有10个唯一键的键值对

当至少有一个Reduce任务在使用散列分区器时肯定不会分配任何键时,此程序可以有多少Reduce任务选择正确的所有答案

[]A.3 []B.11 []约50 []草101 答案是B,C,D

因为唯一键的编号是10。我们必须有至少10个任务。并且至少一个reduce任务具有空密钥


我无法理解这些答案是如何得出的。请帮助我。地图输出中的唯一键仅分配给一个reduce任务。如果有10个唯一键,并且有11个、50个或101个reduce任务,那么必然会有一些reduce任务没有键。

要将一个reducer输出为空文件,即没有键分配给reducer,我们至少需要11个reducer,因为hashpartitioner是基于哈希函数分发的。此处接收数据的合格减速器为第r-00000部分至第r-00009部分

Reducer no=密钥哈希代码%n个Reducer


所以可能的余数是0到n-1。这里我们有10个唯一的密钥,即10个不同的余数。我们将有空的reducer文件,即使reducer的数量小于唯一的密钥数量。在最坏的情况下,如果reducer的数量超过唯一键,我们也会得到一个reducer文件为空。

因为有10个唯一键,我们需要10个reducer,因为我们需要1个reducer,但没有分配键,所以总共有11个reducer


如果减速器的数量大于或等于11,则作业将无异常运行。因此,任何大于或等于11的数字都是答案。

我查找了问题的来源,并将其与解释一起编辑到您的问题中。在解释的哪一部分需要帮助?一个减速机不能处理多个密钥对吗?