如何根据用于提高性能的实例的数量增加Hadoop的映射器和减压器?(How to increase

2019-06-24 04:31发布

如果我增加映射器的数量,减少减速器的数量,那么有没有在性能上有什么区别,同时执行任何任务的(增加/减少)?

此外,我要问如何设置映射器和减速器的数量? 我从来没有与此设置这就是为什么我不知道这个比赛。 我知道Hadoop的,但我与它的代码,因为我用蜂巢很多。

另外,如果我想增加映射器和减速器的编号,然后如何设置和高达什么价值做我设置它。 难道是取决于实例的数量(比方说10)?

请回复我,我想尝试这一点,并检查性能。 谢谢。

Answer 1:

改变映射器的数 - 是纯粹的优化这应该不会影响结果。 你应该设置数量,以充分利用集群(如果它是专用)。 尝试每个节点等于核心数量映射器的数量。 看看CPU的利用率,或增加数量,直到你几乎满CPU使用率,你系统启动交换。 它可能发生,你需要更少的映射器然后内核,如果你还没有足够的内存。
的减速影响数结果,因此,如果您需要特定数量的减速机(比如1) - 设置
如果你能处理任何数量的减速器的结果 - 做同样的优化与映射器。
理论上你可以成为在这一调整过程IO束缚 - 调整任务的数量也时要注意这一点。 您可以通过较低的CPU利用率尽管映射器的增加recognieze它/减速计数。



Answer 2:

您可以增加基于块大小分开大小映射器的数量。 最简单的一种方法是减少分割尺寸,如下所示:

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");


Answer 3:

我已经通过修改试图从@Animesh拉吉杰哈建议mapred.max.split.size ,并得到了显着的性能提升。



Answer 4:

我正在使用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>

最好



文章来源: How to increase the mappers and reducers in hadoop according to number of instances used to increase the performance?