浅析mapreduce工作机制

看了视频,做一个小小的总结

两个核心点:
map reduce编程模型:把数据运算分成两个阶段
阶段一:读取原始数据,形成key-value数据(map方法)
阶段二:将阶段一的key-value数据按照相同key分组聚合(reduce方法)

mapreduce编程模型的具体实现(软件):hadoop中的mapreduce框架;spark;
hadoop中的mapreduce框架:
对编程模型阶段一的实现就是:map task
对编程模型阶段二的实现就是:reduce task

对进行统计的文件数据切片,规格是128M
split文件

maptask通过TextInputFormat对切片文件进行读取
处理数据:maptask通过调用Mapper类map()方法实现对数据的处理

分区:将map阶段产生的key-value数据,分发给若干个reduce task来分担负载,map task调用Partitioner类的getPartitioner()方法来决定如何划分数据给不同的reduce task
对key-value数据做排序:调用key.compareTo()方法来实现对key-value数据做排序

reducetask

读数据:通过http方式从maptask产生的数据文件中下载属于自己的“区”的数据到本地磁盘,然后将多个“同区文件”做合并(归并排序)

处理数据:通过调用GroupingComparator的compare()方法来判断文件中那些key-value属于同一组,然后将这一组数据传给Reducer类的reduce()方法聚合一次

输出结果:调用OutputFormat组件将结果key-value数据写出去

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MapReduce工作机制主要分为三个阶段:Map、Shuffle和Reduce。 1. Map阶段:在Map阶段,MapReduce将输入数据分成多个小数据块,并将它们分配给多个Map任务进行并行处理。Map任务将输入数据块转换为键值对,并对每个键值对执行一次map函数。map函数将输入数据转换为一系列键值对,并将这些键值对传递给Reduce任务。 2. Shuffle阶段:在Shuffle阶段,MapReduce将Map任务的输出根据键进行排序,并将具有相同键的值分组在一起。这个过程是通过网络传输和排序完成的。在这个阶段,MapReduce会对每个Reduce任务进行分区,将相同分区中的键值对转移到同一个Reduce任务中,以便进行下一步的reduce操作。 3. Reduce阶段:在Reduce阶段,MapReduce将每个键值对组传递给Reduce任务,并对具有相同键的值执行reduce函数。reduce函数将相同键的值合并为一个结果,并将结果写回到文件系统中。 整个MapReduce工作机制可以描述为:输入数据->Map任务->Shuffle阶段->Reduce任务->输出结果。 MapReduce工作机制有以下几个特点: 1. 并行处理:MapReduce可以将输入数据分成多个小数据块,并将它们分配给多个Map任务进行并行处理。这样可以大大提高数据处理的速度和效率。 2. 分布式存储:MapReduce采用分布式文件系统(如HDFS)来存储数据,可以将数据存储在多个节点上,从而提高数据的可靠性和可用性。 3. 自动容错:MapReduce可以自动检测并处理节点故障,从而保证了系统的容错能力。 4. 高扩展性:MapReduce可以很容易地扩展到数千个计算节点,以处理大量数据,同时保持高性能和高可靠性。 综上所述,MapReduce通过Map任务、Shuffle阶段和Reduce任务三个步骤,实现了对大规模数据集的分布式处理和分析,具有并行处理、分布式存储、自动容错和高扩展性等特点

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值