hadoop细节---reduce任务数量

来源:互联网 发布:go编程语言 编辑:程序博客网 时间:2024/05/01 19:29

1.reduce任务的数量并非由输入数据的大小决定,而是特别指定的。可以设定mapred.tasktracker.map.task.maximum和mapred.tasktracker.reduce.task.maximum属性的值来指定map和reduce的数量。


2.reduce最优个数与集群中可用的reduce任务槽相关,总槽数由节点数乘以每个节点的任务槽。


3.本地作业运行器上,只支持0个或者1个reduce任务。


4.在一个tasktracker上能同时运行的任务数取决于一台机器有多少个处理器,还与相关作业的cpu使用情况有关,经验法则是任务数(包括map和reduce)处理器的比值为1到2.


5.如果有多个reduce任务,则每个map输出通过哈希函数分区,每个分区对应一个reduce任务。


6.一个小例子: 一个客户端有8个处理器,计划在处理器上跑2个进程,则可以将mapred.tasktracker.map.task.maximum和mapred.tasktracker.reduce.task.maximum都设置为7(考虑还有datanode和tasktracker进程,所以那两项不能设置为8)。

原创粉丝点击