目录

  • MapReduce定义
  • MapReduce优缺点
    • 优点
    • 缺点
  • MapReduce核心编程思想
  • MapReduce进程
  • 常用数据序列化类型
  • MapReduce编程规范
    • Mapper阶段
    • Reducer阶段
    • Driver阶段
  • OutputFormat接口实现类

MapReduce定义

MapReduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;

MapReduce核心功能是将用户编写的业务逻辑代码自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。

MapReduce优缺点

优点

1.易于编程。用户只关心业务逻辑、实现框架的接口;

2.良好的扩展性:可以动态增加服务器,解决计算资源不够用的问题;

3.高容错性:任何一台机器挂掉,都可以将任务转移到其他节点;

4.适合海量数据计算(TB/PB):几千台服务器共同计算。

缺点

1.不擅长实时计算;

2.不擅长流失计算;

3.不擅长DAG有向无环图计算。

MapReduce核心编程思想


MapReduce核心编程思想:

1.MapReduce运行程序一般需要分为2个阶段:Map阶段和Reduce阶段;

2.Map阶段的并发MapTask,完全并行运行,互不干涉;

3.Reduce阶段的兵法ReduceTask,完全互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出;

4.MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。

MapReduce进程

一个完整的MapReduce程序在分布式运行时有3类实例进程:

1.MrAppMaster: 负责整个程序的过程调度及状态协调;

2.MapTask: 负责Map阶段的整个数据处理流程;

3.ReduceTask: 负责Reduce阶段的整个数据处理流程。

常用数据序列化类型

MapReduce编程规范

用户编写的程序分为三个部分:Mapper、Reducer、Driver。

Mapper阶段

1.用户自定义分Mapper要继承自己的父类;
2.Mapper的输入数据是KV对的形式(KV的类型可自定义);
3.Mapper中的业务逻辑写在map()方法中;
4.Mapper的输出数据是KV对的形式(KV的类型可自定义);
5.Map()方法(Map Task进程)对每一个<K,V>调用一次。

Reducer阶段

1.用户自定义的Reducer要继承自己的父类;
2.Reducer的输入数据类型对应Mapper的输出数据类型,也是KV;
3.Reducer的业务逻辑写在reduce()方法中;
4.ReducerTask进程对每一组相同k的<k,v>组调用一次reduce()方法;

Driver阶段

相当于YARN集群的客户端,用于提交我们整个程序到YARN集群,提交的是封装了MapReduce程序相关运行参数的job对象。

wordcount词频统计案例==》

OutputFormat接口实现类

OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。

  1. OutputFormat实现类

  2. 默认输出格式TextOutputFormat

  3. 自定义OutputFormat
    a. 自定义一个类继承Fileoutputformat;
    b.改写RecordWriter,具体改写输出数据的方法write().

hadoop--MapReduce概述相关推荐

  1. 【Hadoop】Hadoop生态系列之MapReduce概述及MapReduce任务开发与发布

    上一篇:Hadoop生态系列之HDFS常用Shell命令实践及Java API操作HDFS 这里写目录标题 MapReduce 概述 流程分析 环境搭建 MapReduce任务开发 背景 实现 任务发 ...

  2. 【云计算与大数据技术】大数据系统总体架构概述(Hadoop+MapReduce )

    一.总体架构设计原则 企业级大数据应用框架需要满足业务的需求,一是要求能够满足基于数据容量大,数据类型多,数据流通快的大数据基本处理需求,能够支持大数据的采集,存储,处理和分析,二是要能够满足企业级应 ...

  3. MapReduce概述

    MapReduce概述 源自于Google的MapReduce论文,论文发表于2004年12月 Hadoop的MapReduce是Google MapReduce的克隆版.与HDFS非常类似. Map ...

  4. java mapreduce api_Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API

    精品视频课程推荐 Java数据结构和算法精讲版 本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上. 从零开始.全面系统.成体系的讲解数据 ...

  5. 第一、二章大数据与Hadoop的概述

    目录 第一章:大数据的概述 1.1 大数据的概念 1.2 大数据的特征(重点) 1.3 大数据的应用场景 1.4 大数据的发展前景 1.5 企业大数据的一般工作流程 1.6 数据部门的组织架构​ 1. ...

  6. MapReduce入门(一)—— MapReduce概述 + WordCount案例实操

    MapReduce入门(一)-- MapReduce概述 文章目录 MapReduce入门(一)-- MapReduce概述 1.1 MapReduce 定义 1.2 MapReduce 优缺点 1. ...

  7. Hadoop MapReduce 保姆级吐血宝典,学习与面试必读此文!

    Hadoop 涉及的知识点如下图所示,本文将逐一讲解: 本文档参考了关于 Hadoop 的官网及其他众多资料整理而成,为了整洁的排版及舒适的阅读,对于模糊不清晰的图片及黑白图片进行重新绘制成了高清彩图 ...

  8. 分布式计算框架Hadoop核心组件概述

    Hadoop作为成熟的分布式计算框架在大数据生态领域已经使用多年,本文简要介绍Hadoop的核心组件MapReduce.YARN和HDFS,以加深了解. 1.Hadoop基本介绍 Hadoop是分布式 ...

  9. 又双叒叕来更新啦!Hadoop———MapReduce篇

    文章目录 MapReduce(计算) MapReduce概述 MapReduce定义 MapReduce的优缺点 核心思想 MapReduce计算程序运行时的相关进程 官方WordCount源码 Ma ...

  10. hadoop错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

    错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster 原创hongxiao2016 最后发布于2019-03-30 21:20:5 ...

最新文章

  1. 深挖谷歌 DeepMind 和它背后的技术
  2. flutter 类似日期选择器控件_一切皆组件的Flutter,安能辨我是雄雌
  3. 【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )
  4. 【转载】给不同 type 的 input 自动设置样式
  5. CRM客户关系管理系统(十三)
  6. 从 RequireJs 源码剖析脚本加载原理
  7. Node-ipc 热门包作者投毒“社死‘’,谁来保护开源软件供应链安全?
  8. micropython websocket_通过websocket登录ESP32
  9. Julia : 类型别名
  10. Nginx面试题总结
  11. 关于把Excel转换成word的经验
  12. 变量名与变量地址的关系:
  13. json数据解析与JAVA对象转换以及在JQUERY中的使用
  14. 计算机等级考试17周岁能考吗,他,8岁计算机过二级,16岁被保送清华,信息类竞赛大奖拿到手软...
  15. 代码走读测试案例分享
  16. 实施TPM-营销费用管控系统的意义
  17. 搜索引擎核心技术与算法 —— 倒排索引
  18. c语言强制退出的程序
  19. Java扑克牌小游戏
  20. 三、【从0到1产品实战2】BRD、MRD文档

热门文章

  1. 计算机网络之数据链路层:7、选择重传协议(SR)
  2. (软件工程复习核心重点)第六章实现和测试-第二节:软件测试基础
  3. (王道408考研操作系统)第三章内存管理-第二节1:虚拟内存管理基本概念
  4. Linux系统编程18:超详解进程程序替换exec函数的一些用法
  5. libjpeg-turbo(1)
  6. mingW与cygwin
  7. DirtyCow漏洞复现(脏牛、大脏牛、Linux、Android、提权)
  8. linux修改文件夹及其下面所有文件的权限(文件夹权限)
  9. Python3bytes转16进制字符(例如:b111111转\x8c\x8c\x8c\x8c\x8c\x8c)
  10. freemaker中小数展示为整数的问题