初识Hadoop之MapReduce【持续更新中】

文章目录

MapReduce

概念

  • MapReduce是一种可用于数据处理的编程模型。MapReduce程序本质上是并行运行的,MapReduce的优势在于处理大规模数据集(高并行)。
  • MapReduce的任务过程分为两个阶段:map 阶段和 reduce 阶段。每个阶段都以自定义类型的K-V(K可以重复)对作为 input 和 outout ,重点是,需要我们自己实现map 和reduce 函数。
  • 数据来源:HDFS, 关系型数据库,非关系型数据库等都可作为数据的来源。
  • 切片:
  1. split(数据源),面向文件逻辑上的数据划分片,区别于hdfs切块,默认等于block的块大小,窗口机制,大小可以人为控制,并行度取决于切片的大小。为了计算向数据移动打下基础。
  2. 能定位到block的offset,split的偏移量一定在block内。
  3. map的数量取决于split的数量。同时split规定了map读取数据量
  4. reduce 数量取决于你的需求的结果(数据倾斜问题,10种key,一key数据量大,9key数据量小,2个reduce(1reduce处理大数据量,1reduce处理剩余9个)) (处理时间取决于数据倾斜最严重的那一台机器)

mapreduce流程图

  • MR 元语
  1. 相同的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算
    不同的key在分区(partition):相同的key分组
  2. 为什么要有排序?
    为了保证相同的key调用一次reduce
  • shuffler
  1. 框架内部实现机制
  2. 分布式计算节点数据流转,连接MapTask 和 ReduceTask
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值