1.定义
mapreduce是由map和reduce任务组成的编程框架,目的是解决多机器并行协同、容错的问题。
2.步骤
1.把文件分成多个大小相同的小文件
2.主节点(main)把map任务和reduce任务分配给空闲节点
3.map工作节点处理输入,输入给自定义map函数,暂放在缓存
4.把缓存内容更新到本地磁盘,把信息通知main
5.reduce获得中间文件的数据信息对数据排序
6.reduce节点把数据输入给reduce函数
7.完成后main通知用户程序
注意:main作为map和reduce连接的通道需要维护很多信息比如文件位置,map和reduce节点的工作状态。
这个我想到了之前写的Webserver的proactor的工作模式也是把任务分成主线程和工作线程。