MapReduce重点知识总结

本文详细总结了MapReduce的相关知识,包括MapReduce的定义、优缺点、核心思想,以及Hadoop序列化、数据切片与MapTask并行度、JOB提交流程源码等关键点。MapReduce主要由Map和Reduce两个阶段组成,适用于大规模离线数据处理,但不适合实时和流式计算。此外,还介绍了如何调整数据切片大小以优化性能。
摘要由CSDN通过智能技术生成

MapReduce定义

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

MapReduce优缺点

优点:
1)mapreduce易于编程(简单的实现一些接口,就可以完成一个分布式程序)
2)良好的扩展性(计算资源不能满足时,可以通过简单的增加机器来扩展它的计算能力)
3)高容错性(有多个副本)
4)适合PB级以上海量数据的离线处理(可以实现上千台服务器集群并发工作,提供数据处理能力)
缺点:
1)不擅长实时计算(mapreduce无法像mysql一样,在毫秒或者秒级内返回结果)
2) 不擅长流式计算(流式计算的输入数据时动态的,而mapreduce的输入数据集是静态的)
3)不擅长线性计算(即前一个程序的输出作为后一个程序的输入,这样会造成大量的磁盘IO,导致性能非常低下)

MapReduce核心思想

MapReduce运算程序一般需要2个阶段,即Map阶段和Reduce阶段。
map阶段根据输入数据大小分为多个MapTask任务,又会根据任务进行分区,
reduce阶段对多个分区的任务进行汇总,然后输出。
map和reduce并发实例完全并行运行,互不相干。

Hadoop序列化

序列化:把内存中的对象通过字节流的方式写入到磁盘,做到持久化。
反序列化:把磁盘中的字节流读出转换成对象。

数据切片与MapTask并行度

数据切片大小最好设置为一个数据块的大小,如果切片过大或者过小,MapTask就会从不同的节点中去读取数据,导致多次IO,而如果把切片大小设置为数据块大小,可大大减少IO次数,提高性能。

JOB提交流程源码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值