Hadoop MapReduce任务的执行过程

本文介绍了Hadoop MapReduce的工作流程,包括Map阶段的数据切分、Map任务处理、shuffle和排序,以及Reduce阶段的数据段处理和Reduce函数的调用。Map阶段中,Map任务的输出保存在本地硬盘,然后通过shuffle和排序形成数据段。Reduce阶段,一个Reduce任务处理一个数据段,对相同key值的数据进行聚合处理。reduce函数会被重复调用,用于处理同一个数据段内的不同key值。
摘要由CSDN通过智能技术生成

注:本文注重原理介绍,较少涉及编程实现,有错误请指正,感谢~

在进入正文之前需要了解这几个概念:

HDFS:可以先简单理解为它是一个大型分布式的文件系统,里面存放了大量文件,也可以理解为放着俗称的大数据。

数据块:HDFS中的数据以数据块为单位存放,默认是64MB,HDFS中的文件可能远远大于64MB,它被分割成很多个数据块,存放在集群上,数据块不一定存放在一台机器上,也不一定是连续存放的。

Map 阶段

首先大致了解一下Map的操作流程。

HDFS中待处理的数据首先进行切分(input split)得到很多个数据分片,对应很多个Map任务。每个数据分片都是由键值对组成的,其中键是一个长整数偏移量,是某一行起始位置相对于文件起始位置的偏移量(这里的键值并不是很重要,没必要过分关注),值就是对应的一行文本数据。数据分片中的一对(键-值)数据送给一个map方法来处理,处理之后的结果仍是键值对的形式,这里的键值对由你重写的map函数来指定(这里的键就很重要了)。

执行到这里,相当于之前的数据分片中的每条数据都经过处理,得到了新的键值对数据。不同的数据分片中可能会包含相同的key值,因此需要对这些数据片进行合并排序,将相同key值对应的数据整合到一起。姑且将整合以后得到的很多数据称为数据段(不是官方说法,只是为了方便解释并与前面的定义做区分)。
关于数据段有四条:

  1. 相同key值的数据一定在同
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值