Hadoop的MapReduce

本文介绍了Hadoop的MapReduce框架,包括其工作原理、编程规范和数据输入处理。MapReduce适用于大规模数据计算,通过Map和Reduce阶段进行分布式处理。文章详细讲解了InputFormat的切片、TextInputFormat和CombineTextInputFormat,以及Shuffle机制中的分区。此外,还阐述了自定义Partitioner的重要性以及如何配置ReduceTask数量。

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

介绍

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

优点:

  1. 易用:用户只关心业务,底层代码框架已实现
  2. 易扩展:可动态增加服务器解决计算资源不够的问题
  3. 高容错性:任一节点挂掉,可提前将计算任务转移到其他节点
  4. 适合海量数据计算(TB/PB), 几千台服务器共同计算

缺点:

  1. 不擅长实时计算,mysql 擅长
  2. 不擅长流式计算,spark flink 擅长
  3. 不擅长有向图无环图计算(一个节点的计算依赖上一个节点的计算结果),spark擅长

工作原理

MapReduce 的过程分成两个部分:

  1. Map在每个节点上做block的局部处理,处理完交给Reduce节点
  2. Reduce节点做汇总工作

例子:统计单词的逻辑图

在这里插入图片描述

编程规范

MapReduce程序分为3个部分:Mapper、Reducer、Driver:

Mapper阶段:

  1. 用户自己定义的mapper类继承系统的Mapper
  2. Mapper输入的数据是 key-v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值