@

概念

Job(作业) : 一个MapReduce程序称为一个Job。

MRAppMaster(MR任务的主节点): 一个Job在运行时,会先启动一个进程,这个进程称为MRAppMaster,负责Job中执行状态的监控,容错,和RM申请资源,提交Task等。

Task(任务): Task是一个进程,负责某项计算。

Map(Map阶段):Map是MapReduce程序运行的第一个阶段,Map阶段的目的是将输入的数据,进行切分。将一个大文件,切分为若干小部分!切分后,每个部分称为1片(split),每片数据会交给一个Task(进程),Task负责Map阶段程序的计算,称为MapTask。在一个MR程序的Map阶段,会启动N(取决于切片数)个MapTask。每个MapTask是并行运行。

Reduce(Reduce阶段): Reduce是MapReduce程序运行的第二个阶段(最后一个阶段)!Reduce阶段的目的是将Map阶段的每个MapTask计算后的结果进行合并汇总!得到最终结果!Reduce阶段是可选的,Task负责Reduce阶段程序的计算,称为ReduceTask,一个Job可以通过设置,启动N个ReduceTask,这些ReduceTask也是并行运行!每个ReduceTask最终都会产生一个结果。

MapReduce中常用的组件

①Mapper:map阶段核心的处理逻辑

②Reducer: reduce阶段核心的处理逻辑

③InputFormat:输入格式

  • MR程序必须指定一个输入目录,一个输出目录
  • InputFormat代表输入目录中文件的格式
  • 如果是普通文件,可以使用FileInputFormat
  • 如果是SequeceFile(hadoop提供的一种文件格式),可以使用SequnceFileInputFormat
  • 如果处理的数据在数据库中,需要使用DBInputFormat

④RecordReader: 记录读取器

  • RecordReader负责从输入格式中,读取数据,读取后封装为一组记录(k-v)

⑤OutPutFormat: 输出格式

  • OutPutFormat代表MR处理后的结果,要以什么样的文件格式写出
  • 将结果写出到一个普通文件中,可以使用FileOutputFormat
  • 将结果写出到SequeceFile中,可以使用SequnceFileOutputFormat
  • 将结果写出到数据库中,可以使用DBOutPutFormat

⑥RecordWriter: 记录写出器

  • RecordWriter将处理的结果以什么样的格式,写出到输出文件中

⑦Partitioner: 分区器

  • 分区器,负责在Mapper将数据写出时,将keyout-valueout,为每组keyout-valueout打上标记,进行分区
  • 目的: 一个ReduceTask只会处理一个分区的数据!

MapReduce计算框架的核心编程思想的更多相关文章

  1. MapReduce的核心编程思想

    1.MapReduce的核心编程思想 2.yarn集群工作机制 3.maptask并行度与决定机制 4.maptask工作机制 5.MapReduce整体流程 6.shuffle机制 7.yarn架构

  2. (第4篇)hadoop之魂--mapreduce计算框架,让收集的数据产生价值

    摘要: 通过前面的学习,大家已经了解了HDFS文件系统.有了数据,下一步就要分析计算这些数据,产生价值.接下来我们介绍Mapreduce计算框架,学习数据是怎样被利用的. 博主福利 给大家赠送一套ha ...

  3. 小马哥讲Spring栈核心编程思想 Spring IoC+Bean+Framework

    小马哥出手的Spring栈核心编程思想课程,可以说是非常专业和权威的Spring课程.课程主要的方向与核心是Spring Framework总览,带领同学们重新认识重新认识IoC,Spring IoC ...

  4. MR 01 - MapReduce 计算框架入门

    目录 1 - 什么是 MapReduce 2 - MapReduce 的设计思想 2.1 如何海量数据:分而治之 2.2 方便开发使用:隐藏系统层细节 2.3 构建抽象模型:Map 和 Reduce ...

  5. Big Data(七)MapReduce计算框架

    二.计算向数据移动如何实现? Hadoop1.x(已经淘汰): hdfs暴露数据的位置 1)资源管理 2)任务调度 角色:JobTracker&TaskTracker JobTracker: ...

  6. Big Data(七)MapReduce计算框架(PPT截图)

    一.为什么叫MapReduce? Map是以一条记录为单位映射 Reduce是分组计算

  7. mapreduce计算框架

    一. MapReduce执行过程 分片: (1)对输入文件进行逻辑分片,划分split(split大小等于hdfs的block大小) (2)每个split分片文件会发往不同的Mapper节点进行分散处 ...

  8. Hadoop中MapReduce计算框架以及HDFS可以干点啥

    我准备学习用hadoop来实现下面的过程: 词频统计 存储海量的视频数据 倒排索引 数据去重 数据排序 聚类分析 ============= 先写这么多

  9. MapReduce的编程思想(1)

    MapReduce的编程思想(1) MapReduce的过程(2) 1. MapReduce采用分而治之的思想,将数据处理拆分为主要的Map(映射)与Reduce(化简)两步,MapReduce操作数 ...

随机推荐

  1. CPU性能分析工具原理

    转载请保留以下声明 作者:赵宗晟 出处:https://www.cnblogs.com/zhao-zongsheng/p/13067733.html 很多软件都要做性能分析和性能优化.很多语言都会有他 ...

  2. C++值元编程

    --永远不要在OJ上使用值元编程,过于简单的没有优势,能有优势的编译错误. 背景 2019年10月,我在学习算法.有一道作业题,输入规模很小,可以用打表法解决.具体方案有以下三种: 运行时预处理,生成 ...

  3. 8种排序算法 Java实现

    冒泡排序 O(n2) 两个数比较大小,较大的数下沉,较小的数冒起来. public static void bubbleSort(int[] a) { //临时变量 int temp; //i是循环次 ...

  4. Springboot打包后,获取不到resource目录下资源文件的报错

    1.问题: java.io.FileNotFoundException ****目录下找不到模板文件 在使用Springboot启动类启动没有错,但是打包放到tomcat.东方通这些外部容器上报错,在 ...

  5. 基于web网站项目的性能测试结果分析

    业务背景: 最近公司研发了一款对并发要求比较高的web项目,需要对其压力测试,模拟线上可能存在的问题,这个过程中遇到一些很多问题,这里重新梳理一下思路,希望能给遇到同样问题的小伙伴提供一个参考. 工具 ...

  6. 昇腾AI计算,618冲动消费也不怕

    摘要:近期大热的图像识别处理核赔技术,可应对剁手党们冲动购物之后汹涌而至的退货场景.那么,这背后运用的技术原理是怎样? AI计算平台又能否重构企业业务引擎呢? 随着AI技术的挖掘与应用落地,也为每一年 ...

  7. 2020年最佳Java调试工具(翻译)

    调试是应用程序开发周期不可或缺的一部分.用Java或任何其他语言编写程序时,每个开发人员应解决的首要问题之一是可靠的调试工具的可用性. 所使用的工具类型可能影响或破坏应用程序的调试过程,因此至关重要的 ...

  8. jquery-form详解

    jQuery-Form 概观 jQuery表单插件允许您轻松而不显眼地升级HTML表单以使用AJAX.主要方法ajaxForm和ajaxSubmit从表单元素收集信息以确定如何管理提交过程.这两种方法 ...

  9. LeetCode 79,这道走迷宫问题为什么不能用宽搜呢?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题第48篇文章,我们一起来看看LeetCode当中的第79题,搜索单词(Word Search). 这一题官方给的难 ...

  10. SpringCloud 入门(一)

    本人也是刚接触springcloud,现在先将创建项目的过程记录下来,springcloud的理解日后再慢慢补齐,最好还是自己参考官方文档的介绍 使用工具:IDEA IDEA创建springcloud ...