码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop 对MapReduce的理解

时间:2017-12-23 19:02:01      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:作业   发送   ash   文件复制   tracker   mapr   div   溢出   创建   

  • 对MapReduce的理解
    1. 客户端启动一个作业
    2. 向JobTraker请求一个JobId
    3. 将资源文件复制到HDFS上,包括Jar文件,配置文件,输入划分信息等
    4. 接收作业后,进入作业队列,根据输入划分信息为每个划分创建一个map任务,并将map任务分配给TaskTracker来执行(运算移动,数据不移动)分配Reduce任务时,不考虑数据本地化
    5. TaskTracker每隔一段时间向JobTracker发送一个心跳, 告诉JobTracker它仍在运行,同时心跳中还带有很多信息,比如任务进度

 

  • Map端
    1. 输入分片(默认64M)进入Map,输出则暂且放到缓存中,缓冲区快要溢出时,会在本地创建一个溢出文件
    2. Partition(hash)和分区的内部排序,每个分区对应一个reduce任务
    3. 合并这些溢出文件
      • 减少每次写入磁盘的数据量
      • 减少下一阶段网络传输的数据量
    4. 将分区中的数据拷贝给reduce任务(map-TaskTracker-JobTracker)

 

  • Reduce端
    1. 接收到每个map传输来的有效数据(有序),超过了缓冲区,就写入到磁盘中
    2. 将溢出文件不断合并成一个更大的有序文件
    3. 最后一次合并的数据,不输出到磁盘,直接输出到reduce函数中

Hadoop 对MapReduce的理解

标签:作业   发送   ash   文件复制   tracker   mapr   div   溢出   创建   

原文地址:http://www.cnblogs.com/wjf0/p/8093952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!