MapReduce核心编程思想,编程规范

MapReduce是一种用于处理大规模数据集的分布式程序编程框架,简化了并行编程的复杂性。它能够将用户编写的业务逻辑代码整合为分布式运算程序,在Hadoop集群上并发运行。本文详细介绍了MapReduce的工作原理,包括其核心编程思想、自动化调度平台YARN的作用以及如何通过Mapper、Reducer和Driver实现WordCount等经典应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是MapReduce?
    分布式程序的编程框架,java-》ssh ssm, 目的:简化开发!
    是基于hadoop的数据分析应用的核心框架。
    mapreduce的功能:将用户编写的业务逻辑代码和自带默认组建整合成一个完整的分布式运算程序,并发的运行在hadoop集群上。

MapReduce的优缺点
    优点
        1、易于编程
        2、良好的拓展性
        3、高容错性
        4、适合处理PB级别以上的离线处理
    缺点
        1、不擅长做实时计算
        2、不擅长做流式计算(mr的数据源是静态的)
        3、不支持DAG(有向图)计算(spark)

mr的核心编程思想
    需求:统计一个文件(200M),查询结果:每个单词出现的次数统计出来(a-i开头的放在一个结果文件,j-z开头的放在另外一个文件中)

    maptask
        1、读数据
        2、按行处理
        3、切分
        4、HashMap(单词,value+1)
        5、处理完成按照首字母范围氛围2个hashmap
    reducetask
        统计
        输出结果文件

自动化调度平台YARN(mr程序的运行平台)
    mr程序应该在多台机器上运行启动,而且要先执行maptask,等待每个maptask,等待每个maptask都处理完成后,还要启动很多个reducetask,这个过程要用户手动调用任务不太现实,
    需要一个自动化的人物调度平台-》hadoop当中2.x中提供了一个分布式调度平台-YARN

YARN的服务进程:2个
    Resource Manager
    Node Manager

安装yarn集群

mapreduce的wordCount

mapreduce的编程规范
    用户编写mr程序主要包括撒呢部分:Mapper,Reducer,Driver
    1、Mapper阶段
        1)用户自定义mapper类,继承父类Mapper
        2)Mapper的输入数据的kv对形式(kv类型可以自定义)
        3)Mapper的map方法的重写(加入业务逻辑)
        4)Mapper的数据输入kv对的形式(kv类型可以自定义)
        5)map()方法(maptask进程)对每个<k,v>调用一次

    2、Reducer阶段
        1)用户自定义reducer类,要继承父类的Reducer
        2)Reducer的数据输入类型对应的是Mapper阶段的输出数据类型,也是kv对
        3)Reducer的reduce方法的重写(加入业务逻辑)
        4)ReduceTask进程对每组的k的<k,v>组调用一次reduce方法

    3、Driver阶段
        mr程序需要一个Driver类进行任务的提交,提交的任务是一个描述了各种重要信息的job对象
        1)获取job信息
        2)获取jar包
        3)获取自定义的mapper和reducer类
        4)设置map输出的数据类型
        5)设置reduce输出的数据类型
        6)设置输入存在的路径与处理后的结果路径
        7)提交任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值