`

Hadoop初学-mapreduce

 
阅读更多

看完hadoop权威指南第一,二章,初步了解了hadoop的结构和相关生态,主要详细从第二章mapreduce学习开始,现总结备查。

 

什么是mapreduce?

读完后,就问自己什么是mapreduce,想自己理解归纳下。

mapreduce是一种分布式的并行计算编程模型。主要把计算分map和reduce两个阶段。

  1. map阶段是把原始输入数据分为多块输入到多个map函数中进行并行的逻辑处理和排序,然后输出中间结果;
  2. reduce阶段是以map阶段的多个输出汇聚后,作为reduce函数的输入,再由reduce函数进行汇总逻辑计算,然后输出最后结果。

两个阶段都是通过KEY/VALUE的方式作为输入和输出。一般map的输入可以是文件格式(如文件行号作为KEY,每行数据作为VALUE)。

 

hadoop的mapreduce工作模式

hadoop中的mapreduce是由job控制和执行的。一个job包括:输入数据,mapreduce程序和配置。

  • 准备输入数据到hadoop的HDFS(分布是文件系统,同时负责把原始输入数据分割个小块,也叫分片。),由namenode主节点控制分片逻辑和元数据,分别保存在多个datanode节点机上。
  • jobtracker(任务主控机,和HDFS的namenode一般在一台机器上)生成多个task,协调多个tasktracker来分别并行执行计算。通常在存储输入数据分片的每个datanode上运行计算(数据就近计算优化:data locality optimization)
  • 一般来说,hadoop为每个分片构建一个map任务,在jobtracker的协调下由tasktracker进行运算,然后把多map任务的输出排序后,通过网络发送给一个reduce任务节点(也是tasktracker,由jobtracker协调),合并数据后由reduce函数继续计算处理并输出最后结果。
  • 关于分片的大小:如果太小,片总数量多,管理和协调分片及计算的时间和构建map任务的时间想多较多;如果太大,并行计算的任务数太小,负载平衡的效果则受到影响。原始数据的分片在hadoop的HDFS中一般是64M,但是可以根据实际情况进行参数调整。
  • map的计算结果是中间结果一般保存在节点本地磁盘,因为中间结果是临时的,不需要写多份;reduce的最终结果保存在HDFS上。



 书中hadoop-HDFS的数据量

 


原始数据的输入有推和拉两种方式

  • 推一般是0.20版本前的JAVA-API提供的每次map函数只读取一行的处理方式(也可以使用实例变量保持每次读取的数据,然后在批量处理,实现拉方式);
  • 拉方式是0.20后的新API提供的UNIX标准流方式进行输入输出,这就和JAVA-IO的处理方式一样,由read来控制读取的数量多少和处理时机。

 

hadoop的流(streaming)

hadoop的mapreduce程序框架提供了UNIX标志流作为hadoop和应用程序间的接口,所以可以使用任何支持标志输入/输出流的语音进行mapreduce程序开发(基本大部分语音都支持,呵呵)。

 

本节无源代码,因为主要是理论,代码也是书上的示例,拷贝无意义。

 

  • 大小: 67.9 KB
分享到:
评论

相关推荐

    Hadoop-MapReduce实践示例

    初学大数据hadoop,自己写实践练手的示例,示例非常全,带目录,非常清晰。

    Hadoop实战-陆嘉恒

    《Hadoop实战》是一本系统且极具实践指导意义的hadoop工具书和参考书。内容全面,对hadoop整个...《Hadoop实战》既适合没有hadoop基础的初学者系统地学习,又适合有一定hadoop基础但是缺乏实践经验的读者实践和参考。

    eclipse-hadoop3x-master.rar

    看到hadoop,相信一堆概念大家都听得不少了,什么MapReduce,这个就大概解释下: Map:俗点说就是直接把数据打散,一份数据把它切分成多份小的数据进行处理,这个过程可以称之为Map。 Reduce:有打散当然要有聚合,...

    初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。 HDFS是GoogleFileSystem(GFS)的开源实现。MapReduce是GoogleMapReduce的开源实现。HDFS和...

    Hadoop计算框架:MapReduce

    文档较详尽的讲述了MR的简介,MR初学分析示例(有代码)、MR特性,MR的执行过程(有代码),MR单元测试介绍(有代码)、HA的架构和配置、同时也向大众推荐了两本书。其中部分有较为详尽的链接以供参考。

    Hadoop集群配置及MapReduce开发手册

    Hadoop集群配置及MapReduce开发手册,初学mapreduce的好帮手

    Hadoop MapReduce架构

    尽管 MapReduce 1.0 中存在一些问题,但是整体架构比较清晰,更适合初学者理解 MapReduce 的核心概念。所以,本教程首先使用 MapReduce 1.0 来介绍 MapReduce 的核心概念,然后再在此基础上介绍 MapReduce 2.0。 一...

    learning-hadoop-and-spark:链接学习中学习Hadoop和学习Spark课程的同伴

    学习Hadoop和Spark ...您有很多选择-尽管您可以设置本地Hadoop / Spark集群,但我不建议您使用这种方法,因为这种方法对于初学者来说不必要地复杂。 相反,我确实建议您使用部分或完全托管的群集。 为了学习,我

    MapReduce之wordcount范例代码

    Hadoop初学MapReduce最经典的范例

    百度地图毕业设计源码-MapReduce:初学MR的一些实践

    MapReduce 初学MR的一些实践 HDFS 1 HDFS概述 1.1 HDFS产生背景 ​ 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理...

    Ubuntu Hadoop 0.20.2 安装配置说明

    本文档适合初学者,指引初学者或初次接触 Hadoop 的人成功安装 Hadoop ,使用代码执行简单的 HDFS 操作,并利用 MapReduce 执行分布式计算示例代码。其中 MapReduce 示例代码为 Hadoop 官方带的 hadoop-0.20.2-...

    Hadoop权威指南-中文译版

    对HadoopTom不熟悉的初学者,可以参考本书。Wbite著,此为第二版(修订升级),由周敏奇等人翻译。该书介绍了Hadoop的安装及使用,详述了MapReduce机制并介绍了Hbase,Hive,Zookeeper及HDFS,最后给出了实例分析。

    Hadoop海量数据处理

    本书主要介绍Hadoop技术的相关知识,不但详细介绍了Hadoop、MapReduce、HDFS、Hive和Sqoop,还深入探讨了Hadoop的运维和调优,并包含了一个具有代表性的完整的基于Hadoop的商业智能系统的设计和实现。, 本书的最大...

    MapReduce设计模式

    MapReduce作为一种分布式海量数据处理的编程框架,已经得到业界的...《MapReduce设计模式》面向中高级MapReduce开发者,涵盖了绝大部分MapReduce编程可能面对的场景,相信初学者和专家同样可以在本书中得到一些启示。

    Data-intensive Systems: Principles and Fundamentals using Hadoop and Spark

    初学hadoop需要哪些技术基础? Data-intensive Systems: Principles and Fundamentals using Hadoop and Spark (Advanced Information and Knowledge Processing) By 作者: Tomasz – Wiktorski – Tomasz Wiktorski...

    big_data:有关Hadoop,MapReduce,Spark,Docker的教程的集合

    初学者的大数据 有关Hadoop,Spark等的一些教程和演示,主要是Jupyter笔记本的形式。 使用MapReduce Streaming和bash创建映射器和化的MapReduce简介 一个非常基本的MapReduce单词计数示例 一个简单的MapReduce作业...

    mapreduce案例代码及案例涉及文件

    了解map和reduce工作原理,以及排序,分组,分区设置,有详细的注释,方便查看学习,适合入门初学者练手

    Hadoop实战(陆嘉恒)

    《Hadoop实战》是一本系统且极具实践指导意义的hadoop工具书和参考书。内容全面,对hadoop整个... 《Hadoop实战》既适合没有hadoop基础的初学者系统地学习,又适合有一定hadoop基础但是缺乏实践经验的读者实践和参考。

    Hadoop实战手册

    通过阅读《hadoop实战手册》,hadoop初学者可以使用hadoop来进行数据处理,hadoop工程师或者数据挖掘工程师可以解决复杂的业务分析,hadoop系统管理员可以更好地进行日常运维。《hadoop实战手册》也可作为一本hadoop...

Global site tag (gtag.js) - Google Analytics