Hadoop实践(三)---MapReduce框架编程笔记

原创 2016年08月28日 15:57:19

MapReduce框架通过把计算逻辑转移到数据所在的机器,而不是把数据转移到其能够处理的机器上,从而充利用本地性优势。

  • Combiner函数
    进行键值对的聚合操作时,会产生大量I/O和网络流量I/O,为了压缩map和reduce步骤间需要的网络带宽,程序员可以选择在map一侧进行预聚合,而预聚合通过提供的Combiner函数完成。Combiner函数和reduce函数类似,不同之处在于,前者并不传递给定键的所有值,而是把传递进来的输入值之和作为输出值传递出去。

  • 其他的MapReduce开源实现
    Sphere Starfish Riak等 这些开源项目实现了Google文档描述的特性或者其中的部分特性。

    【Hadoop MapReduce 作业的 I/O性能严重依赖HDFS】
    

map任务包含2个子任务(map和merge),reduce任务只包含1个子任务。shuffle和sort首先发生,由系统完成。每个子任务可以拆分为多个子阶段,如:read-map、spill、mege、copy-map和reduce-write。

  • 影响MapReduce性能的因素
    1.硬件(或资源)因素,如CPU时钟,磁盘I/O,网络带宽和内存大小。
    2.底层存储系统。
    3.输入数据、分拣(shuffle)数据以及输出数据的大小,这与作业的运行时间密切相关。
    4.作业算法(或者程序),如map、reduce、partition、combine和compress。有些算法很难再MapReduce中概念化,或者在MapReduce中效率可能会降低。

  • 其他可能对MapReduce性能构成潜在影响的因素

    1. I/O模式:也就是从存储系统获取数据的方式。从底层存储系统去读数据有2中模式:
      1.1直接I/O:通过硬件控制器把数据直接从本地硬盘中读取到内存中,不需要进程间通信成本。
      1.2流式I/O:通过特定进程间通行手段,如TCP/IP和JDBC,从其他正在运行进程(典型情况是存储系统进程)读取数据。
    2. 输入数据解析:是指从存储系统获取数据时,从原始数据到键值对的转换过程。
    3. 输入数据存储:当MapReduce获取数据并进行下一步处理时,所在的存储系统必须保证高速访问和数据可用性(如HDFS和HBase)。
版权声明:本文为博主原创文章,未经博主允许不得转载。

Hadoop MapReduce程序的模板框架

这里放了两个Hadoop MapReduce程序的模板框架,包括一些基本的包import语句、Mapper基类、Reducer基类、map()方法、reduce()方法,后面还有一些作业job的驱动程...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年03月16日 18:14
  • 1007

Hadoop实践(三)---MapReduce相关编程笔记

MR应用程序编写笔记
  • Wee_Mita
  • Wee_Mita
  • 2016年09月11日 08:53
  • 304

Hadoop MapReduce编程案例

Hadoop MapReduce编程案例简析
  • zpcandzhj
  • zpcandzhj
  • 2014年08月24日 17:00
  • 4092

Hadoop(四)——编程核心MapReduce(上)

上篇讲述了Hadoop的核心内容之一HDFS,是Hhadoop分布式的平台基础,而这讲的MapReduce则是充分利用Hdfs分布式,提高运行效率的算法模型 ,Map(映射)和Reduce(归约)两个...
  • liujiahan629629
  • liujiahan629629
  • 2015年09月09日 00:07
  • 3594

Hadoop教程(三):HDFS、MapReduce、程序入门实践

Hadoop 附带了一个名为 HDFS(Hadoop分布式文件系统)的分布式文件系统,基于 Hadoop 的应用程序使用 HDFS 。HDFS 是专为存储超大数据文件,运行在集群的商品硬件上。它是容错...
  • GarfieldEr007
  • GarfieldEr007
  • 2015年12月11日 12:57
  • 2678

Hadoop那些事儿(四)---MapReduce编程实例(基础)

前言上一篇文章,以WordCount为例讲了一下MapReduce的代码结构及运行机制,这篇文章将通过几个简单的例子进一步认识MapReduce。1.数据检索问题描述假设有很多条数据,我们从中查找包含...
  • u012116457
  • u012116457
  • 2017年02月17日 11:33
  • 2531

一道Hadoop面试题MapReduce编程,oh no,用了一下午来源码实现

自定义 MR 实现如下逻辑product_no lac_id moment start_time user_id county_id staytime city_id 13429100031 2255...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015年05月26日 18:42
  • 2366

Hadoop之MapReduce编程模型

一、MapReduce编程模型         MapReduce将作业的整个运行过程分为两个阶段:Map阶段和Reduce阶段         Map阶段由一定数量的Map Task组成      ...
  • u013800147
  • u013800147
  • 2015年05月24日 14:36
  • 3051

Hadoop架构介绍——MapReduce的体系结构

MapReduce的体系结构: (1)分布式编程架构 (2)以数据为中心,更看重吞吐率 (3)分而治之 (4)Map将一个任务分解成多个子任务 (5)Reduce将分解后的多任务分别处理,并将结果汇...
  • u013063153
  • u013063153
  • 2016年11月10日 14:09
  • 1824

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

hadoop的核心分为两块,一是分布式存储系统-hdfs,这个我已经在上一章节大致讲了一下,另一个就是hadoop的计算框架-mapreduce。mapreduce其实就是一个移动式的基于key-va...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2014年11月03日 10:33
  • 4827
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop实践(三)---MapReduce框架编程笔记
举报原因:
原因补充:

(最多只允许输入30个字)