美文网首页
MapReduce笔记

MapReduce笔记

作者: 南宫萧言 | 来源:发表于2019-01-05 16:55 被阅读0次

本文是根据网络视频学习资料总结,不喜勿喷!!!

原语:

•“相同”的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算。

基本的数据流:•输入(格式化k,v)数据集->map映射成一个中间数据集(k,v)->reduce

为什么叫MapReduce:MapTask & ReduceTask

图1

map阶段: 一个block对应1或多个split,每个split对应一个maptask。split把文件切分成多个切片,每个切片对应一个map任务进行排序,计算,形成<key,value,partition>形式。

reduce阶段:将上阶段map的中间数据集进行shuffle,然后merge,根据原语调用一次reduce任务,把最后的结果进行输出,如图二所示。

图二

下面是一个案例:

图三 图4

理解:

Map阶段:读懂数据;映射成KV模式;并行分布式;计算向数据移动。


Reduce阶段:数据全量/分量加工;Reduce中可以包含不同的key;相同的Key汇聚到一个Reduce中;相同的Key调用一次reduce方法。

运行架构:

图5

图5是Hadoop1.x的计算运行框架,任务资源调度和分配由job Tracker进行管理,如下图:

图6

JobTracker负责将计算上下文,计算程序(Map task)发送到DataNode上。计算结果由reduce task程序处理,汇总得到最后的结果。如下图:

图7

总结:

图8


Hadoop2.x以后使用yarn框架:

yarn资源管理框架

Clients与Resource Manager交互,Clients提交作业到计算框架。RM与NM(Node Manager)保持心跳,当RM收到任务使,会随机挑一个不忙的NM创建App Master,负责任务的调度,App向RM发送资源请求,等资源审核通过,会在其他的NM上创建Container进行实际的计算的任务,不向App master汇报自己的任务状态。当Container出现故障时,App master会定时检测出来,并创建新的Container。

一般RM的端口号为:8088

yarn介绍
yarn介绍 物理架构图

其中Executor就是为了启动APP与NM的连接,使APP与NM进行交互,实现任务调度。

运行测试例子:

案例,wordcount

相关文章

  • mapreduce框架详解

    参考:hadoop 学习笔记:mapreduce框架详解 [toc] 总结 Mapreduce是一个计算框架,既然...

  • Hadoop MapReduce 学习笔记

    前言 本文是个人之前纪录的MapReduce学习笔记,主要涉及到MapReduce基本概念、Hadoop 经典示例...

  • MapReduce笔记

    本文是根据网络视频学习资料总结,不喜勿喷!!! 原语: •“相同”的key为一组,调用一次reduce方法,方法内...

  • mapreduce学习笔记

    本文是对mapreduce技术的一个初步学习的总结,包括如下章节的内容: 概述 发展史 基本概念 程序编写 运行测...

  • MapReduce学习笔记

    wordcount: 统计文件中每个单词出现的次数需求:1) 文件内容小:shell2)文件内容很大:TB GB ...

  • MapReduce学习笔记

    MapReduce 一、什么是MapReduce 1.1 定义: MapReduce是Google提出的一个软件架...

  • MapReduce概念笔记

    一、MapReduce计算模型 1、思想 分而治之。适用于大量负责的任务处理场景,大规模数据处理场景。 Map负责...

  • 学习笔记—MapReduce

    MapReduce是什么 MapReduce是一种分布式计算编程框架,是Hadoop主要组成部分之一,可以让用户专...

  • mapreduce多目录输出笔记

    title: mapreduce多目录输出笔记date: 2016/11/26 22:23:21tags: Map...

  • 大数据学习day_5

    思考问题 MapReduce总结 MapReduce MapReduce的定义MapReduce是一种编程模型, ...

网友评论

      本文标题:MapReduce笔记

      本文链接:https://www.haomeiwen.com/subject/auzrrqtx.html