slot,它是资源基本单位。每个TaskTracker上配有一定的map slot(通过参数mapred.tasktracker.map.tasks.maximum配置)和reduce slot(通过参数mapred.tasktracker.reduce.tasks.maximum配置),分别用于运行map task和reduce task。
比如一个TaskTracker上配有5个map slot和5个reduce slot,则说明该节点上最多可以同时运行5个map task和5个reduce task。具体每个节点上配置几个slot,完全是你根据节点的资源配置决定。比如一个节点是8核40G内存,你可以设置10个map slot和4个reduce slot(通常而言,map slot与reduce slot总数是核数的1~2倍,但还要考虑具体应用,比如你的作业全是大内存的,可能要考虑内存够不够用)。
TaskTracker周期性通过心跳向JobTracker汇报自己的状态,包括:空闲slot数,task运行情况,磁盘使用情况等,JobTracker收到心跳信息后,会按照一定的策略为该节点分配一个或者多个task。