MapReduce计算框架的核心编程思想
@
概念
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计算框架的核心编程思想的更多相关文章
- MapReduce的核心编程思想
1.MapReduce的核心编程思想 2.yarn集群工作机制 3.maptask并行度与决定机制 4.maptask工作机制 5.MapReduce整体流程 6.shuffle机制 7.yarn架构
- (第4篇)hadoop之魂--mapreduce计算框架,让收集的数据产生价值
摘要: 通过前面的学习,大家已经了解了HDFS文件系统.有了数据,下一步就要分析计算这些数据,产生价值.接下来我们介绍Mapreduce计算框架,学习数据是怎样被利用的. 博主福利 给大家赠送一套ha ...
- 小马哥讲Spring栈核心编程思想 Spring IoC+Bean+Framework
小马哥出手的Spring栈核心编程思想课程,可以说是非常专业和权威的Spring课程.课程主要的方向与核心是Spring Framework总览,带领同学们重新认识重新认识IoC,Spring IoC ...
- MR 01 - MapReduce 计算框架入门
目录 1 - 什么是 MapReduce 2 - MapReduce 的设计思想 2.1 如何海量数据:分而治之 2.2 方便开发使用:隐藏系统层细节 2.3 构建抽象模型:Map 和 Reduce ...
- Big Data(七)MapReduce计算框架
二.计算向数据移动如何实现? Hadoop1.x(已经淘汰): hdfs暴露数据的位置 1)资源管理 2)任务调度 角色:JobTracker&TaskTracker JobTracker: ...
- Big Data(七)MapReduce计算框架(PPT截图)
一.为什么叫MapReduce? Map是以一条记录为单位映射 Reduce是分组计算
- mapreduce计算框架
一. MapReduce执行过程 分片: (1)对输入文件进行逻辑分片,划分split(split大小等于hdfs的block大小) (2)每个split分片文件会发往不同的Mapper节点进行分散处 ...
- Hadoop中MapReduce计算框架以及HDFS可以干点啥
我准备学习用hadoop来实现下面的过程: 词频统计 存储海量的视频数据 倒排索引 数据去重 数据排序 聚类分析 ============= 先写这么多
- MapReduce的编程思想(1)
MapReduce的编程思想(1) MapReduce的过程(2) 1. MapReduce采用分而治之的思想,将数据处理拆分为主要的Map(映射)与Reduce(化简)两步,MapReduce操作数 ...
随机推荐
- 分析ThreadLocal的弱引用与内存泄漏问题
目录 一.介绍 二.问题提出 2.1内存原理图 2.2几个问题 三.回答问题 3.1为什么会出现内存泄漏 3.2若Entry使用弱引用 3.3弱引用配合自动回收 四.总结 一.介绍 之前使用Threa ...
- GitHub如何回滚代码?
1.git log 查看commit hash值 执行git log:查看commit hash值. 2.执行git reset --hard xxxx xxxx表示的是commit hash 值. ...
- 循序渐进VUE+Element 前端应用开发(12)--- 整合ABP框架的前端登录处理
VUE+Element 前端是一个纯粹的前端处理,前面介绍了很多都是Vue+Element开发的基础,从本章随笔开始,就需要进入深水区了,需要结合ABP框架使用(如果不知道,请自行补习一下我的随笔:A ...
- Linux工具之开发调试命令
目录 gcc gdb vim pmap pstack strace readelf objdump ldd gcc 详见 gcc -E 只预处理 gcc -S 生成汇编代码 gcc -c 生成可重定向 ...
- 吃货联盟订餐系统 源代码 Java初级小项目
咳咳,今天博主给大家写一个小的项目:吃货联盟订餐系统.博主不是大神(互联网架构师的路上ing),也是小白一个,不过是刚入门的小白^_^.项目功能也很简单:只是模拟日常的订餐流程呦,所以有错误以及功能不 ...
- Java开发中的23种设计模式详解(收藏-转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- 马士兵老师Java虚拟机调优
该视频主要讲解的内容如下所示: 1.虚拟机的内存结构 1.每一个线程都有一个虚拟机栈,线程中每调用一个方法都会开启一个栈帧,栈帧里面保存方法中的局部变量. 2.方法区在java8以后改名为永久区域pe ...
- cookie和session及token
cookie,session傻傻分不清楚? 做了这么多年测试,还是分不清什么是cookie,什么是session?很正常,很多初级开发工程师可能到现在都搞不清什么是session,cookie相对来说 ...
- h5请求签名加密
签名说明 签名对 url + method + 业务参数 进行统一签名,防止重放和篡改 客户端js对加密逻辑和appSecret进行混淆加密处理,增加破解难度 客户端本地存储appid 和 appSe ...
- Redis系列(六):数据结构List双向链表LPUSH、LPOP、RPUSH、RPOP、LLEN命令
1.介绍 redis中的list既实现了栈(先进后出)又实现了队列(先进先出) 1.示意图 2.各命令详解 LPUSH/RPUSH LPUSH: 从队列的左边入队一个或多个元素 将所有指定的值插入到存 ...