Mapreduce全流程(MR流程详解)

本文详细阐述MapReduce的工作流程,包括读数据、Shuffle阶段、Reduce的执行和写出。重点介绍了数据切片问题的解决、Shuffle的分区、排序和归并过程,以及MapReduce中可干预的环节如Partitioner、Combiner和GroupingComparator的使用。
摘要由CSDN通过智能技术生成

Mapreduce工作全流程

mapreduce工作三大核心问题

1.图示

在这里插入图片描述

  • 读数据到底是怎么回事?
  • shuffle到底是什么?
  • 结果数据到底是怎么回事?

mapreduce的工作流程

1.读数据

1.1对文件切片产生的问题的解决
  • 图示

在这里插入图片描述

  • 理解:当文件进行切片时,有可能会把单词且分开比如:hello切分为he和llo

    为了能够完整的,不出错的统计每一个单词的出现。有以下解决方案

  • 解决思想:因为默认的读取操作是,默认读取文件的一行数据,读取器不会管你是不是在这一行切开了。根据这个特性来进行框架规定了解决方案。

  • 解决方案(读取规则)

    • 每个maptask都向下多读一行
    • 每一个maptask都要抛弃读取的第一行数据
    • 第一个maptask不需要抛弃第一行
    • 最后一个maptask不往下多读一行
1.2图示

在这里插入图片描述

1.3读文件流程
  • maptask调用TextInputFormat.
    • TextInputFormat:指定去读什么文件,比如:去文本文档中,数据库等
  • TextInputFormat调用createLineRecordReader方法后,会生成一个Reader(具体怎么去读
  • 生成了一个LineRecordReader对象,按行读
    • nextkeyvalue
    • getCurrentkey
    • getCurrentvalue
  • maptask调用nextkeyvalue方法
  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值