Hadoop整理三(Hadoop分布式计算框架MapReduce)

一.概念

  MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组

  大规模数据处理时, MapReduce 在三个层面上的基本构思 。
  如何对付大数据处理:分而治之
  对相互间不具有计算依赖关系的大数据,实现并行最自然的办法就是采取分而治之的策略。
  上升到抽象模型: Mapper 与 Reducer
  MPI等并行计算方法缺少高层并行编程模型,为了克服这一缺陷,MapReduce借鉴了Lisp函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型。
  上升到构架:统一构架,为程序员隐藏系统层细节
  MPI等并行计算方法缺少统一的计算框架支持,程序员需要考虑数据存储、划分、分发、结果收集、错误恢复等诸多细节;为此,MapReduce设计并提供了统一的计算框架,为程序员隐藏了绝大多数系统
层面的处理细节。

  不可分拆的计算任务或相互间有依赖关系的数据无法进行并行计算!

  序列化是指将结构化的数据转化为字节流以便在网络上传输或写入到磁盘进行永久存的过程,反序列化是指将字节流转换为结构化对象的逆过程。序列化常见应用场景:进程间通信和永久存储。
   Hadoop中,序列化要满足:紧凑,快速,可扩展,支持互相操作。Hadoop中使用了自己的序列化格式Writable。它绝对紧凑、速度快、但不容易扩展

  自定义数据类型:
  ? 实现Writable接口,以便该数据能被序列化后完成网络传输或文件输入/输出。
  ? 如果该数据需要作为主键key使用,或需要比较数值大小时,则需要实现WritableComparable接口。

  集群上最紧俏的资源便是网络带宽,因此尽量减少map和reduce阶段的网络传输对MapReduce的性能提升是很重要的。Hadoop为map任务的输出指定了一个合并函数(combiner),合并函数的输出作为reduce的输入。Combiner是的map的输出结果更加紧凑,同时减少了写磁盘和网络传输的数据量。 Combiner 又称为Local Reducer 。

原文地址:https://www.cnblogs.com/yuanninesuns/p/8406977.html

时间: 2024-10-27 06:39:41

Hadoop整理三(Hadoop分布式计算框架MapReduce)的相关文章

分布式计算框架MapReduce

MapReduce概述 MapReduce源自Google的MapReduce论文,论文发表于2004年12月.Hadoop MapReduce可以说是Google MapReduce的一个开源实现.MapReduce优点在于可以将海量的数据进行离线处理,并且MapReduce也易于开发,因为MapReduce框架帮我们封装好了分布式计算的开发.而且对硬件设施要求不高,可以运行在廉价的机器上.MapReduce也有缺点,它最主要的缺点就是无法完成实时流式计算,只能离线处理. MapReduce属

Hadoop第三课

1.3Hadoop基础知识 1.3.1术语解释 1.Hadoop1.0 ? 第一代Hadoop,由分布式文件系统HDFS 和分布式计算框架MapReduce组成 ? HDFS由一个NameNode和多个DataNode 组成 ? MapReduce由一个JobTracker和多个 TaskTracker组成 课堂笔记 图中的4个英文单词都是指带进程. 进程简而言之就是程序(一行行的代码)加上启动这个程序所包含的所有资源. 大致讲解一下Hadoop1.0,看图!master这个节点中有两个进程,N

[转]分布式计算框架综述

本来是发表到科技论在线的,谁知道被退稿了,那就发到这里来吧. 0      引言 随着互联网的发展,web2.0时期[1]的到来,人类正式进入了信息爆炸时期的.海量的信息在很多应用都会出现,比如一些社交网络应用中记录用户行为日志通常都是以GB甚至是TB为单位的.常规的单机计算模式已经不能支撑如此巨大的数据量.所以,计算必须以分布式的把巨大的计算任务分成小的单机可以承受的计算任务,在这种情况下分布式计算框架与云计算[2]出现. 1      分布式计算框架背景介绍 我们的互联网从Web 1.0迈入

分布式计算框架综述

最近在写本科的毕业论文,题目是有关于MapReduce的并行化处理,老师给出修改意见中提到了关于分布式计算框架的的国内外研究现状,一开始并没有搞懂分布式计算机框架,以为是MapReduce.MapReduce只是一种并行编程模式,也可以是一种并行框架,并不是分布式计算框架.百度得知,比如Hadoop,storm,Spark等才是分布式计算框架,随后又查看了一篇博客,写得不错,如下: 以下是转载内容:http://blog.csdn.net/zwan0518/article/details/177

大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)

hadoop的核心分为两块,一是分布式存储系统-hdfs,这个我已经在上一章节大致讲了一下,另一个就是hadoop的计算框架-mapreduce. mapreduce其实就是一个移动式的基于key-value形式的分布式计算框架. 其计算分为两个阶段,map阶段和reduce阶段,都是对数据的处理,由于其入门非常简单,但是若想理解其中各个环节及实现细节还是有一定程度的困难,因此我计划在本文中只是挑几个mapreduce的核心来进行分析讲解. 1.MapReduce驱动程序默认值 编写mapred

Hadoop 1.0 和 2.0 中的数据处理框架 - MapReduce

1. MapReduce - 映射.化简编程模型 运行原理: 2. Hadoop V1 中的 MapReduce 的实现 Hadoop 1.0 指的是版本为Apache Hadoop 0.20.x.1.x或者CDH3系列的Hadoop,内核主要由HDFS和MapReduce两个系统组成,其中,MapReduce是一个离线处理框架,由编程模型(新旧API).运行时环境(JobTracker和TaskTracker)和 数据处理引擎(MapTask和ReduceTask)三部分组成. 2.1 Had

hadoop系列三:mapreduce的使用(一)

转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/7224772.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6.4 上一篇:hadoop系列二:HDFS文件系统的命令及JAVA客户端API 在下面可以看到统计一本小说(斗破苍穹)哪些词语出现了最多. 本来mapreducer只想写一篇的,可是发现写一篇太长了,所

升级版:深入浅出Hadoop实战开发(云存储、MapReduce、HBase实战微博、Hive应用、Storm应用)

      Hadoop是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上.而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序

Hadoop企业级完整训练:HDFS&MapReduce&HBase&Hive&Zookeeper&Pig&Project)

Hadoop是云计算的事实标准软件框架,是云计算理念.机制和商业化的具体实现,是整个云计算技术学习中公认的核心和最具有价值内容. 如何从企业级开发实战的角度开始,在实际企业级动手操作中深入浅出并循序渐进的掌握Hadoop是本课程的核心. 云计算学习者的心声: 如何从企业级开发的角度,不断动手实际操作,循序渐进中掌握Hadoop,直到能够直接进行企业级开始,是困惑很多对云计算感兴趣的朋友的核心问题,本课程正是为解决此问题而生,学习者只需要按照一步步的跟着视频动手操作,即可完全无痛掌握Hadoop企