Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Hadoop映射/减少作业分布_Hadoop_Mapreduce - Fatal编程技术网

Hadoop映射/减少作业分布

Hadoop映射/减少作业分布,hadoop,mapreduce,Hadoop,Mapreduce,我有4个节点,我正在运行一个mapreduce示例项目,以查看作业是否在所有4个节点之间分配。我多次运行该项目,并注意到映射器任务在所有4个节点之间被拆分,而reducer任务仅由一个节点完成。这就是假设的情况,或者假设reducer任务也在所有4个节点之间拆分 谢谢地图绘制者的分布取决于地图绘制者操作的数据块。默认情况下,框架尝试将任务分配给存储了数据块的节点。这将阻止数据的网络传输 对于减速机,这同样取决于您的工作所需的减速机数量。如果作业仅使用一个减速器,则可以将其分配给节点上的任何pf

我有4个节点,我正在运行一个mapreduce示例项目,以查看作业是否在所有4个节点之间分配。我多次运行该项目,并注意到映射器任务在所有4个节点之间被拆分,而reducer任务仅由一个节点完成。这就是假设的情况,或者假设reducer任务也在所有4个节点之间拆分


谢谢

地图绘制者的分布取决于地图绘制者操作的数据块。默认情况下,框架尝试将任务分配给存储了数据块的节点。这将阻止数据的网络传输

对于减速机,这同样取决于您的工作所需的减速机数量。如果作业仅使用一个减速器,则可以将其分配给节点上的任何pf


影响这一点的还有投机性执行。如果启用此选项,则会导致在不同节点上启动多个map task/reduce task实例,并且基于完成百分比的作业跟踪器将决定哪个实例将通过,其他实例将被终止。

假设您的文件为224 MB。当您根据默认的64 MB块大小将该文件添加到HDFS中时,文件被分成4个块[blk1=64Mblk2=64Mblk3=64Mblk4=32M]。让我们假设节点1上的blk1表示为blk1node1blk2node2blk3node3blk4。现在,当您运行MR时,Map需要访问输入文件。因此MR FWK创建了4个映射器,并在每个节点上执行。现在是减速器,正如Venkat所说,这取决于为您的工作配置的减速器数量。可以使用Hadoop org.apache.Hadoop.mapreduce.Job setNumReduceTasks(int tasks)API配置还原程序。

这里可以找到与您刚才提出的问题非常类似的问题