Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/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,我有一份Mapreduce工作,处理少量数据(200 MB)。map阶段在计算上很简单,但是reduce阶段在计算上很昂贵,需要花费更多的时间来分析一个输入。给定32MB的分割大小,我看到在映射阶段所有机器都在计算,但在reduce阶段只有一台机器在计算,reduce阶段的速度要慢得多。是否有一种方法可以使拆分仅在作业的缩减阶段变小,以便我可以使用缩减阶段的所有机器?拆分大小不会影响缩减并行性。它只驱动映射程序的数量 MapReduce要求您指定要使用的减速机的数量。您可以设置mapreduce

我有一份Mapreduce工作,处理少量数据(200 MB)。map阶段在计算上很简单,但是reduce阶段在计算上很昂贵,需要花费更多的时间来分析一个输入。给定32MB的分割大小,我看到在映射阶段所有机器都在计算,但在reduce阶段只有一台机器在计算,reduce阶段的速度要慢得多。是否有一种方法可以使拆分仅在作业的缩减阶段变小,以便我可以使用缩减阶段的所有机器?

拆分大小不会影响缩减并行性。它只驱动映射程序的数量

MapReduce要求您指定要使用的减速机的数量。您可以设置
mapreduce.job.reduces
属性,该属性默认为1,或者使用
job.setNumReduceTasks(int任务)
()。这里,你想增加这个数字


Apache Crunch之类的高级工具会根据输入的大小、提供的比例因子和每个减速机的目标输入大小自动设置减速机的数量。如果一些任务的硬编码不适合您的需要,您可以轻松地实施类似的策略

你的制图员能生成多少个关键组?@BinaryNerd我怎么知道?看看你工作的计数器,这是一个标准计数器。您还应该知道您的密钥是什么,以及您期望它的粒度。例如,如果您有一个键,则只有一个减速机将运行。@BinaryNerd INFO mapreduce.Job:Counters:52右,它告诉您有52个不同的计数器。之后,应该有一个计数器用于
减少输入组