MapReduce工作原理
【摘要】 MapReduce是Hadoop平台的基础组件之一,它是一个分布式的计算框架,用于大数据的离线计算,和HDFS、YARN搭配使用。MapReduce主要分为切片File、Map 、shuffle和Reduce四个阶段,数据导入——首先是将数据上传到HDFS上进行切片(一般默认分片是64M)、存储Map阶段——然后会由YARN进行资源的协调与分配,启动job,进行分片操作,一般默认HDFS的一...
MapReduce是Hadoop平台的基础组件之一,它是一个分布式的计算框架,用于大数据的离线计算,和HDFS、YARN搭配使用。
MapReduce主要分为切片File、Map 、shuffle和Reduce四个阶段,
数据导入——首先是将数据上传到HDFS上进行切片(一般默认分片是64M)、存储
Map阶段——然后会由YARN进行资源的协调与分配,启动job,进行分片操作,一般默认HDFS的一个块(64M)就是一个分片,一个分片对应一个map进程进行并行处理计算,数据表现形式也是以Key-Value的形式(一般 Key代表特征值,Value代表数量)
Map shuffle阶段——计算过程中的数据都是在内存中进行,在Map的数据落盘之前,会有分区(根据Key值进行Hash算法来分区)、排序、组合(本地化的优化操作,将Key值相同的组合相加,减少Reduce的输入)、合并(将溢出文件进行合并,生成经过排序和合并处理的MOF文件,),统称Map的shuffle操作(这四步骤不是必须都有)
Reduce shuffle阶段——将Map阶段落盘的MOF文件进行读取,每个Map task都有对应的Reduce task,这一阶段相当于将之前分布给各个节点的key值相同的数据进行整合然后再分配给每个Reduce task
Reduce阶段——将key值相同的 Value值进行叠加
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)