Hadoop从入门到入土(第二十一天)

分布式计算框架MapReduce


MapReduce是一种并行编程模型,用于大规模数据集的并行运算。"Map"(映射)和”Reduce“(归约)是它的主要思想,是从函数式编程语言借来的,MapReduce还有从矢量编程语言里借来的特性。它极大的方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指一个Map(映射)函数,实现任务的分配,指定并发的Reduce(归约)函数,用来任务的汇总。

目录

一、MapReduce定义

二、MapReduce优缺点

三、MapReduce进程

四、常用数据序列化类型

 五、 MapReduce编程规范


一、MapReduce定义

 

        MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。

MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。

二、MapReduce优缺点

优点:

  1.         1、MapReduce易于编程
    1.         2、良好的扩展性
      1.         3、高容错性
        1.         4、适合PB级以上海量数据的离线处理
        2. 缺点:
          1.         1、不擅长实时计算
            1.         2、不擅长流式计算
              1.         3、不擅长DAG(有向无环图)计算
              2. 三、MapReduce进程

              3. 一个完整的MapReduce程序在分布式运行时有三类实例进程:
                1.         1、MrAppMaster:负责整个程序的过程调度及状态协调。
                  1.         2、MapTask:负责Map阶段的整个数据处理流程。
                    1.         3、ReduceTask:负责Reduce阶段的整个数据处理流程。
                    2. 四、常用数据序列化类型

                    3. Java类型

                      Hadoop Writable类型

                      Boolean

                      BooleanWritable

                      Byte

                      ByteWritable

                      Int

                      IntWritable

                      Float

                      FloatWritable

                      Long

                      LongWritable

                      Double

                      DoubleWritable

                      String

                      Text

                      Map

                      MapWritable

                      Array

                      ArrayWritable

                      Null

                      NullWritable

 五、 MapReduce编程规范

1、Mapper阶段

  1. 用户自定义的Mapper要继承自己的父类。
  2. Mapper的输入数据是KV对的形式(KV的类型可自定义)。
  3. Mapper中的业务逻辑写在map()方法中。
  4. Mapper的输出数据是KV对的形式(KV的类型可自定义)
  5. map(方法)(MapTask进程)对每一个<k,V>调用一次。

2、Reducer阶段

  1. 用户自定义的Reducer要继承自己的父类。
  2. Reducer的输入数据类型对应Mapper的输出数据类型,也是KV。
  3. Reducer的业务逻辑写在reduce()方法中。
  4. ReduceTask进程对每一组相同的<k,V>组调用一次reduce()方法。

3、Driver阶段

        相当于YARN集群的客户端,用于提交我们整个程序到YARN集群,提交的是封装MapReduce程序相关运行参数的job对象。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值