Hadoop-03 MapReduce

 

目录

1. MapRecude概述
2. MapReduce编程模型
3. MapReduce WordCount编程实例
4. MapReduce类型
5. MapReduce输入格式
6. MapReduce输出格式
7. COmbiner
8. Partitioner
9. RecordReader
10. Join的MapReduce实现
11. 排序的MapReduce实现
12. 二次排序的MapReduce实现
13. 合并小文件的MapReduce实现

 

  1. MapRecude概述

    1.mp是什么?
        简化版并行计算的编程模型
    2.mp涉及目标
        分散任务,汇总结果
    3.mp特点
        1.易于编程,通过一些简单的接口就可以完成分布式程序
        2.良好的扩展性,计算资源不满足的时候,增加机器
        3.高容错性,一台服务器挂了,把上面的计算任务移到另外一个节点上
        4.能对PB数据进行离线计算
    4.mp不擅长的场景
        1.实时计算;无法像mysql一样实时计算
        2.流式计算;流式数据的计算都是动态的,而mp计算的资源都是静态的
        3.DAG(有向图)计算;多个应用程序存在依赖关系,一个输出是另外一个输入,并不是不能做,二十每      次计算都会写入磁盘,会造成大量IO操作,降低使用性能

     

  2. MapReduce编程模型

    1.编程模型概述
        1.mp由map()和reduce()两个阶段组成,用户只需要写入这两个函数,即可完成简单的分布式程序的设      计。
        2.map()函数以keyValue对作为输入,产生另外一系列keyvalue作为输出写入磁盘。mp框架会自动将这      些中间数据按照key值进行聚集,key值相同的数据被同意给reduce函数处理。
        3.reduce()函数以key及对应的value列表作为输入,经合并key相同的value值后,产生另一系列       keyvalue作为最终输入写入hdfs。
    2.编程模型三部曲
        1.Input:一系列k1/v1对
        2.Map和Reduce:Map:(K1,V1)-->list(K2,V2),Reduce:(K2,list(V2))-->list(K3,V3)
        3.OutPut一系列(K3,V3)对

     

  3. MapReduce WordCount编程实例

    1.WOrdCount实现涉及分析
        1.mpa过程,并行读取文本,对读取的单词进行map操作,每个词都已<key,value(num)>形式生成
        2.reduce操作是对map的结果进行排序,合并,最后得出词频
    2.WordCount代码开发
        1.输入数据实例化
    3.WOrdCount代码说明
        1.
    4.WOrdCount提交到集群运行
        1.将代码文件打包放到hadoop/lib目录下
        2.将测试数据提价到hdfs中3.
        3.提交mapreduce作业到集群运行
            hadoop jar <mp代码路径> xxxx
        4.查看作业输出结果

     

  4. MapReduce类型

    1.mapreduce类型概述
        map输出和reduce输入一致
    2.mp常用的设置
        1.输入数据类型设置
        2.map输出数据类型
        3.reduce输出数据类型

     

  5. MapReduce输入格式

    1.mp处理的数据文件,一般存在hdfs中,格式可以是任意的。
    ​

     

  6. MapReduce输出格式

     

  7. COmbiner

    1.减少mp的输出数值,从而减少网络宽带和reducer上的负载。可以理解为在每个单独节点做一次reduce。

     

  8. Partitioner

    1.Partitioner
        如果要把最终结果按照组分到不同的文件中,就意味着map需要把不同组的数据放到不同的reducer中。    这种过程就叫做Partitioner
    2.Partitioner案例
        内部代码
    3.提交作业到集群运行

     

  9. RecordReader

    1.RecordReader概述
        1.RecordReader表示以怎样的方式从分片中读取一条记录,每读取一条记录都会调用RecordReader      类,RecordReader对应的LIneRecordReader是以每行的偏移量作为key,内容作为value,如果需       要key不是偏移量而是行号就需要自定义RecordReader
    2.RecordReader实现案例
        

     

  10. Join的MapReduce实现

    1.概述
        mp实现join比较繁琐,用的少,主要在hive,spark用,理解原理
    2.mp Map端join的实现原理
        1.Map端读取所有的文件,并在输出的内容里加上标示,代表数据是从哪个文件来的
        2.在reduce处理函数中,按照标示对数据进行处理
        3.然后根据key用join来求出结果直接输出

     

  11. 排序的MapReduce实现

    1.需求
        对输入文件中数据进行排序,输入文件中的每行美容均为一个数字,即一个数据。要求在输出中每行有两    个间隔的数字,其中第一个代表原始数据在原始数据中的位次,第二个代表原始数据
    2.mp排序的实现原理
        

     

  12. 二次排序的MapReduce实现

    1.概述
        默认对key进行排序,有的时候还需要对value进行排序,这就是二次排序
    2.mp实现原理
        

     

  13. 合并小文件的MapReduce实现

    1.概述
        hdfs对于处理单个大文件比处理多个小文件效率要高
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值