lab1 mapreduce

抽象理解:

master维护worker,task两个队列,表示空闲的worker,等待执行的task。

对task进行抽象比较重要,输入数据位置+nReducer+用户代码逻辑,即可确定一个task。



worker可能随时被分配给master,所以master主要分成两个线程:

背景线程用来接收分配给它的worker,把worker插入队列。

调度线程分别从worker、task队列中取出一个worker,task,让worker执行task。执行成功,把worker插入worker队列;如果失败,把task插入task队列。

你可能感兴趣的:(lab1 mapreduce)