Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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群集-如何知道每个tasktracker的映射/减少任务的理想最大数量_Hadoop_Mapreduce - Fatal编程技术网

Hadoop群集-如何知道每个tasktracker的映射/减少任务的理想最大数量

Hadoop群集-如何知道每个tasktracker的映射/减少任务的理想最大数量,hadoop,mapreduce,Hadoop,Mapreduce,我刚刚用Hadoop 0.20.205建立了一个Hadoop集群。我有一个主NameNode和JobTracker以及另外两个从机 我试图理解,如何定义映射的数量并减少要使用的任务 到目前为止,我了解到我可以设置每个TaskTracker能够同时处理的映射和减少任务的最大数量:*mapred.TaskTracker.map.tasks.max*和*mapred.TaskTracker.reduce.tasks.max* 此外,我还可以定义整个集群可以与*mapred.map.tasks*同时运行

我刚刚用Hadoop 0.20.205建立了一个Hadoop集群。我有一个主NameNode和JobTracker以及另外两个从机

我试图理解,如何定义映射的数量并减少要使用的任务

到目前为止,我了解到我可以设置每个TaskTracker能够同时处理的映射和减少任务的最大数量:*mapred.TaskTracker.map.tasks.max*和*mapred.TaskTracker.reduce.tasks.max*

此外,我还可以定义整个集群可以与*mapred.map.tasks*同时运行的最大映射任务数。是这样吗


如果是,我如何知道*mapred.tasktracker.map.tasks.max*的值应该是多少?我看到默认值是2。但是为什么呢?增加或减少这个值的利弊是什么?

我不认为有这样的规则,比如设置减速器数量的规则

我要做的是,将映射器和还原器的数量设置为每台机器可用的内核数量减去1。直观地说,这将为每台机器留下一些内存,用于其他进程,如集群通信。但我可能错了。不管怎样,这是我从中发现的唯一的东西。它建议使用尽可能多的映射器和一个或两个还原器。
我希望能有所帮助。

以下是我的建议。希望有帮助

在主节点中运行hadoop fsck/以了解块的大小和数量。例如:

...
Total size: 21600037259 B
Total dirs: 78
Total files:    152
Total blocks (validated):   334 (avg. block size 64670770 B)
...
我将reduce任务设置为num_of_blocks/10。 设置mapred.map.tasks=33

我将贴图任务设置为块大小(MB*2)。 设置mapred.reduce.tasks=124


到目前为止,这是我找到的最好的配置。您必须根据集群的配置对其进行修改。

您所说的设置减速器数量的规则是这个?0.95或1.75*节点*mapred.tasktracker.tasks.maximum如果是这样,只是为了确保我得到了正确的结果。例如,如果我有6个节点,每个节点最多可以执行2个reduce任务,那么如果我使用0.95,我应该将reducer的数量设置为11,对吗?是的,这是正确的数字。使用0.95因子,所有reduce任务都会同时运行,但每个任务通常需要更长的时间。使用1.75因子,每个reduce任务查找速度更快,但一些reduce任务正在队列中等待执行。选择1.75系数以获得更好的负载平衡。直观地说,使用0.95,当减速器完成时,机器什么也不做。对于1.75,当一个reducer比其他reducer完成得更快时,它开始处理队列中等待的reduce任务。