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操作数 ... 
随机推荐
- Unit2-窝窝牌电梯
			全文共2329字,推荐阅读时间10~15分钟. 文章共分四个部分: 作业分析 评测相关 重构策略 课程体验感受 作业分析 Unit2要求我们模拟现实生活中的电梯调度情景,迭代路径是单电梯->多电 ... 
- .net core 部署到windows服务上的方法
			前言 Net core 项目部门在Windows有很多种方式,大致有以下几种, dotnet 命令, iis(windowshosts), 一些开源的应用容器(docker ) 基于一些exe 程序, ... 
- Java 从入门到进阶之路(二十三)
			在之前的文章我们介绍了一下 Java 中的 集合框架中的Collection 的迭代器 Iterator,本章我们来看一下 Java 集合框架中的Collection 的泛型. 在讲泛型之前我们先来 ... 
- vc6.0代码转vs2017相关问题
			vc6.0代码转vs2017相关问题 命令行 error D8016: “/ZI”和“/Gy-”命令行选项不兼容fatal error C1083: 无法打开包括文件: “WinSock2.h”: N ... 
- cookie的介绍和使用
			一.什么是cookie 是由服务器端生成,发送给客户端(一般指浏览器),浏览器将cookie以键值对的形式保存到某个目录下的文本文件内.下次请求该网站时就把cookie发送回服务器.(cookie就是 ... 
- DP:0-1背包问题
			[问题描述] 0-1背包问题:有 N 个物品,物品 i 的重量为整数 wi >=0,价值为整数 vi >=0,背包所能承受的最大重量为整数 C.如果限定每种物品只能选择0个或1个,求可装的 ... 
- 【题解】[USACO17JAN]Balanced Photo G
			题目链接:https://www.luogu.com.cn/problem/P3608 方法一 用树状数组求逆序对先后扫两遍,一次从前往后,一次从后往前,算出每头奶牛左右两边比她高的数量. 最后统计一 ... 
- JavaScript图形实例:窗花图案
			1.窗花基本框线 设定曲线的坐标方程为: n=25; r=100; x=r/n*cos(5*θ)+r*cos(θ); y=r/n*sin(5*θ)+r*sin(θ); (0≤θ≤2π ... 
- MVC+EFCore 项目实战-数仓管理系统1
			项目背景及需求说明 这是一个数据管理"工具类"的系统,计划有三个核心功能: 1.通过界面配置相关连接字符串,查询数据库的表数据. 2.配置相关模板,生成数据库表. 可以界面填报或通 ... 
- 设置CMD窗口为UTF-8编码
			Windows下的CMD窗口默认是采用非UTF-8编码的,有时候运行一些UTF-8编写的批处理文件在控制台中的输出就是乱码, CHCP是MD DOS中的命令,用来显示或设置活动代码页编号的.用法是: ... 
