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操作数 ...
随机推荐
- Win10下Tensorflow的安装
Win10下Tensorflow的安装 1. Tensorflow简介 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张 ...
- bug的描述
我们知道了自身的症状,那么就从这里开始,一起聊一聊一个优秀的 BUG,应该包含哪些方面的内容呢? 标题 其实每一个 BUG 也都是一个小的文档,既然是文档,我们首先就要做好一个 “标题党”,当然,此 ...
- logging模块封装
logging模块封装 #!/usr/bin/env python # -*- coding: utf-8 -*- import datetime import logging import env ...
- 使用Python解密仿射密码
新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文“DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS” 想解密这个密文,首先必须要知道仿 ...
- Python中和迭代有关的两个函数next()和iter()
next(): next()返回迭代器的下一个项目 next语法: next(iterator[,dafault]) iterator -- 可迭代对象 default -- 可选,用于设置在没有下一 ...
- OO第四单元——终章
一.架构设计 这一单元的作业主要是围绕UML来对我们的面向对象思维进行训练,刚开始接触的时候或许因为些许陌生而觉得有一定难度,但随着一次一次的代码阅读再加上思考,逐渐地也变得得心应手了起来. 1.第一 ...
- 'ipconfig' 不是内部或外部命令,也不是可运行的程序 或批处理文件
今天在学习的时候需要找本地ip地址,可是在命令行窗口却显示 百度之后发现原来是环境变量没配置的问题(其实之前是ok的,但应该是anconda安装的时候点了那个一键设置环境变量搞得本地的path里的数据 ...
- Beta冲刺总结随笔
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 团队名称 WeChair 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 如下 其他参考文献 项目预期 ...
- Swagger之外的选择
今天给大家安利一款接口文档生成器--JApiDocs. swagger想必大家都用过吧,非常方便,功能也十分强大.如果要说swaager有什么缺点,想必就是注解写起来比较麻烦.如果我说有一款不用写注解 ...
- ora-06502 ORA-06512问题解决
Plsql报错:ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 ORA-06512:等 这里网上常见解决方案是加大变量长度,但是我发现加大长度也没什么用,实际问题出在变量赋值上 例 ...