如果我增加映射器的数量,减少减速器的数量,那么有没有在性能上有什么区别,同时执行任何任务的(增加/减少)?
此外,我要问如何设置映射器和减速器的数量? 我从来没有与此设置这就是为什么我不知道这个比赛。 我知道Hadoop的,但我与它的代码,因为我用蜂巢很多。
另外,如果我想增加映射器和减速器的编号,然后如何设置和高达什么价值做我设置它。 难道是取决于实例的数量(比方说10)?
请回复我,我想尝试这一点,并检查性能。 谢谢。
如果我增加映射器的数量,减少减速器的数量,那么有没有在性能上有什么区别,同时执行任何任务的(增加/减少)?
此外,我要问如何设置映射器和减速器的数量? 我从来没有与此设置这就是为什么我不知道这个比赛。 我知道Hadoop的,但我与它的代码,因为我用蜂巢很多。
另外,如果我想增加映射器和减速器的编号,然后如何设置和高达什么价值做我设置它。 难道是取决于实例的数量(比方说10)?
请回复我,我想尝试这一点,并检查性能。 谢谢。
改变映射器的数 - 是纯粹的优化这应该不会影响结果。 你应该设置数量,以充分利用集群(如果它是专用)。 尝试每个节点等于核心数量映射器的数量。 看看CPU的利用率,或增加数量,直到你几乎满CPU使用率,你系统启动交换。 它可能发生,你需要更少的映射器然后内核,如果你还没有足够的内存。
的减速影响数结果,因此,如果您需要特定数量的减速机(比如1) - 设置
如果你能处理任何数量的减速器的结果 - 做同样的优化与映射器。
理论上你可以成为在这一调整过程IO束缚 - 调整任务的数量也时要注意这一点。 您可以通过较低的CPU利用率尽管映射器的增加recognieze它/减速计数。
您可以增加基于块大小分开大小映射器的数量。 最简单的一种方法是减少分割尺寸,如下所示:
Configuration conf= new Cofiguration();
//set the value that increases your number of splits.
conf.set("mapred.max.split.size", "1020");
Job job = new Job(conf, "My job name");
我已经通过修改试图从@Animesh拉吉杰哈建议mapred.max.split.size
,并得到了显着的性能提升。
我正在使用Hadoop 2.2,不知道如何设置最大输入分割大小我想减小该值,以创造更多的映射器我尝试更新纱的site.xml,并且但它不工作
的确,Hadoop的2.2 /纱不走没有的以下设置
<property>
<name>mapreduce.input.fileinputformat.split.minsize</name>
<value>1</value>
</property>
<property>
<name>mapreduce.input.fileinputformat.split.maxsiz e</name>
<value>16777216</value>
</property>
<property>
<name>mapred.min.split.size</name>
<value>1</value>
</property>
<property>
<name>mapred.max.split.size</name>
<value>16777216</value>
</property>
最好