hadoop--MapReduce概述
目录
- 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接口。
OutputFormat实现类
默认输出格式TextOutputFormat
自定义OutputFormat
a. 自定义一个类继承Fileoutputformat;
b.改写RecordWriter,具体改写输出数据的方法write().
hadoop--MapReduce概述相关推荐
- 【Hadoop】Hadoop生态系列之MapReduce概述及MapReduce任务开发与发布
上一篇:Hadoop生态系列之HDFS常用Shell命令实践及Java API操作HDFS 这里写目录标题 MapReduce 概述 流程分析 环境搭建 MapReduce任务开发 背景 实现 任务发 ...
- 【云计算与大数据技术】大数据系统总体架构概述(Hadoop+MapReduce )
一.总体架构设计原则 企业级大数据应用框架需要满足业务的需求,一是要求能够满足基于数据容量大,数据类型多,数据流通快的大数据基本处理需求,能够支持大数据的采集,存储,处理和分析,二是要能够满足企业级应 ...
- MapReduce概述
MapReduce概述 源自于Google的MapReduce论文,论文发表于2004年12月 Hadoop的MapReduce是Google MapReduce的克隆版.与HDFS非常类似. Map ...
- java mapreduce api_Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API
精品视频课程推荐 Java数据结构和算法精讲版 本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上. 从零开始.全面系统.成体系的讲解数据 ...
- 第一、二章大数据与Hadoop的概述
目录 第一章:大数据的概述 1.1 大数据的概念 1.2 大数据的特征(重点) 1.3 大数据的应用场景 1.4 大数据的发展前景 1.5 企业大数据的一般工作流程 1.6 数据部门的组织架构 1. ...
- MapReduce入门(一)—— MapReduce概述 + WordCount案例实操
MapReduce入门(一)-- MapReduce概述 文章目录 MapReduce入门(一)-- MapReduce概述 1.1 MapReduce 定义 1.2 MapReduce 优缺点 1. ...
- Hadoop MapReduce 保姆级吐血宝典,学习与面试必读此文!
Hadoop 涉及的知识点如下图所示,本文将逐一讲解: 本文档参考了关于 Hadoop 的官网及其他众多资料整理而成,为了整洁的排版及舒适的阅读,对于模糊不清晰的图片及黑白图片进行重新绘制成了高清彩图 ...
- 分布式计算框架Hadoop核心组件概述
Hadoop作为成熟的分布式计算框架在大数据生态领域已经使用多年,本文简要介绍Hadoop的核心组件MapReduce.YARN和HDFS,以加深了解. 1.Hadoop基本介绍 Hadoop是分布式 ...
- 又双叒叕来更新啦!Hadoop———MapReduce篇
文章目录 MapReduce(计算) MapReduce概述 MapReduce定义 MapReduce的优缺点 核心思想 MapReduce计算程序运行时的相关进程 官方WordCount源码 Ma ...
- hadoop错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster 原创hongxiao2016 最后发布于2019-03-30 21:20:5 ...
最新文章
- 深挖谷歌 DeepMind 和它背后的技术
- flutter 类似日期选择器控件_一切皆组件的Flutter,安能辨我是雄雌
- 【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )
- 【转载】给不同 type 的 input 自动设置样式
- CRM客户关系管理系统(十三)
- 从 RequireJs 源码剖析脚本加载原理
- Node-ipc 热门包作者投毒“社死‘’,谁来保护开源软件供应链安全?
- micropython websocket_通过websocket登录ESP32
- Julia : 类型别名
- Nginx面试题总结
- 关于把Excel转换成word的经验
- 变量名与变量地址的关系:
- json数据解析与JAVA对象转换以及在JQUERY中的使用
- 计算机等级考试17周岁能考吗,他,8岁计算机过二级,16岁被保送清华,信息类竞赛大奖拿到手软...
- 代码走读测试案例分享
- 实施TPM-营销费用管控系统的意义
- 搜索引擎核心技术与算法 —— 倒排索引
- c语言强制退出的程序
- Java扑克牌小游戏
- 三、【从0到1产品实战2】BRD、MRD文档
热门文章
- 计算机网络之数据链路层:7、选择重传协议(SR)
- (软件工程复习核心重点)第六章实现和测试-第二节:软件测试基础
- (王道408考研操作系统)第三章内存管理-第二节1:虚拟内存管理基本概念
- Linux系统编程18:超详解进程程序替换exec函数的一些用法
- libjpeg-turbo(1)
- mingW与cygwin
- DirtyCow漏洞复现(脏牛、大脏牛、Linux、Android、提权)
- linux修改文件夹及其下面所有文件的权限(文件夹权限)
- Python3bytes转16进制字符(例如:b111111转\x8c\x8c\x8c\x8c\x8c\x8c)
- freemaker中小数展示为整数的问题