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相关编程笔记

MR应用程序编写笔记

Hadoop VS Spark

Hadoop和Spark的对比

Hadoop学习笔记:MapReduce框架详解

来自:http://blog.jobbole.com/84089/开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hd...

hadoop 学习笔记:mapreduce框架详解

转自http://www.cnblogs.com/sharpxiajun/p/3151395.html 开始聊mapreduce,mapreduce是hadoop的计算框架,我学ha...
  • JDPlus
  • JDPlus
  • 2014年04月04日 09:57
  • 2232

Hadoop 学习笔记——mapreduce框架详解

开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密。这个可能...
  • bob908
  • bob908
  • 2014年08月21日 16:59
  • 531

hadoop学习笔记之二:MapReduce基本编程

hadoop学习笔记之二:MapReduce基本编程 引言 在本系列的上篇文章中介绍了Hadoop的基本概念和架构,本文将通过一个实例演示MapReduce基本编程。在继续进行前希...

hadoop编程入门学习笔记-3 开发MapReduce程序

Hadoop Streaming 和 Python
  • hjh00
  • hjh00
  • 2015年07月29日 17:21
  • 515

Hadoop实践(三)---高阶MapReduce

在运行作业处理数据集时,这个作业通常可以通过编写基本的MapReduce程序来生成,但有时需要编写更高级的程序来形成多个作业,或者用他们处理多个数据集。 Hadoop有几种不同的方式把多个作业协调在...

Hadoop实践(三)---MapReduce作业运行全貌(YARN)

MapReduce作业运行过程
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop实践(三)---MapReduce框架编程笔记
举报原因:
原因补充:

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