1)

slot就是槽的意思,是一个资源单位,只有给task分配了一个slot之后,这个task才可以运行。slot分两种,map slot沪蓉reduce slot。另外,slot是一个逻辑概念,一个数据节点的slots数量既不是CPU的核数,也不是memory chip,一个节点的slot数量用来表示此节点的资源容量或是计算计算能力的大小,也就是说slot是hadoop的资源单位。

2)

系统中map slots总数与reduce slots总数的计算方式如下:

map slots 总数=集群节点数*mapred.tasktracker.map.tasks.maximum(默认是2);

reduce slots 总数=集群节点数*mapred.tasktracker.reduce.tasks.maximum(默认是2);

当初以为slots就是节点上cpu的核数,一直搞不懂三个数据节点,总共5个cpu核,为什么会有6个map slots 、6个reduce slots:

slot的含义-LMLPHP

默认一个节点上有2个map slots,2个reduce slots。而一个slot对应一个task,所以,map task capacity、reduce task capacity的值是6。Avg.Tasks/Node就是一个节点的平均任务数量,2个map+2个reduce就是4个。

slot的含义-LMLPHP

运行的job包含42个map,由于集群总的map slots是6,所以会有22等待的map任务。

05-11 11:05