美文网首页大数据
分布式计算框架MapReduce

分布式计算框架MapReduce

作者: JavaEdge | 来源:发表于2019-04-04 23:51 被阅读1次

    1 概述

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

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

    2 MapReduce编程模型

    通过wordcount词频统计分析案例入门

    3 MapReduce执行流程


    • InputFormat





    • OutputFormat
      OutputFormt接口决定了在哪里以及怎样持久化作业结果。Hadoop为不同类型的格式提供了一系列的类和接口,实现自定义操作只要继承其中的某个类或接口即可。你可能已经熟悉了默认的OutputFormat,也就是TextOutputFormat,它是一种以行分隔,包含制表符界定的键值对的文本文件格式。尽管如此,对多数类型的数据而言,如再常见不过的数字,文本序列化会浪费一些空间,由此带来的结果是运行时间更长且资源消耗更多。为了避免文本文件的弊端,Hadoop提供了SequenceFileOutputformat,它将对象表示成二进制形式而不再是文本文件,并将结果进行压缩。

    3 MapReduce核心概念


    3.1 Split

    3.2 InputFormat

    4 MapReduce 1.x 架构




    5 MapReduce 2.x 架构

    6 Java 实现 wordCount


    clean package
    上传到Hadoop服务器
    全路径没有问题

    7 重构

    8 Combiner编程

    9 Partitoner


    10 JobHistoryServer

    相关文章

      网友评论

        本文标题:分布式计算框架MapReduce

        本文链接:https://www.haomeiwen.com/subject/jewciqtx.html