大数据技术原理与应用(第七章 MapReduce)

本文详细介绍了MapReduce的模型、策略、架构以及工作流程,包括Map和Reduce函数、客户端、JobTracker、TaskTracker的角色。重点阐述了MapReduce的Shuffle过程,包括Map端和Reduce端的详细步骤,以及数据的分区、排序和合并。此外,还讨论了MapReduce在关系的自然连接等实际应用中的用法。
摘要由CSDN通过智能技术生成

目录

7.1 MapReduce简介

MapReduce与传统并行计算框架对比

MapReduce模型

MapReduce策略

MapReduce理念——计算向数据靠拢

MapReduce架构——Master/Slave

Map函数和Reduce函数

7.2 MapReduce的体系结构

Client客户端

JobTracker作业跟踪器

TaskTracker任务追踪器

7.3MapReduce工作流程概述

         MapReduce执行的各个阶段

Split分片

7.4 Shuffle过程原理

Map端的Shuffle过程

Reduce 端的Shuffle过程

7.5 MapReduce应用程序执行过程

 7.6 MapReduce的具体应用

用MapReduce实现关系的自然连接


7.1 MapReduce简介

数据处理能力提升的两条路线:单核CPU到双核四核八核;分布式并行编程。

典型的并行编程框架还有MPI(消息传递接口),OpenCL,CUDA等。

MapReduce与传统并行计算框架对比

MapReduce模型

MapReduce策略

将庞大的数据集,切分成非常多的独立的小分片;为每个分片单独启动一个map任务;最终通过多个map任务,并行地在多个机器上去处理。

MapReduce理念——计算向数据靠拢

传统的计算方法——数据向计算靠拢:要完成一次数据分析,选择一个计算节点,把运行数据分析的程序放到计算节点上运行;然后把涉及到的数据,全部从不同节点上面拉过来,传输到计算发生的地方。

MapReduce——计算向数据靠拢:在集群中选择部分机器作为程序运算的节点,一般选择距离需要处理数据块最近的Map或Reduce机器来进行运算;最终把结果汇总到相关任务协调节点返回。(大大减少了数据传输开销)

MapReduce架构——Master/Slave

一个Master服务器,作业跟踪器JobTracker,负责整个作业的调度和处理以及失败和恢复。

若干个Slave服务器,负责具体任务执行的组件TaskTracker,负责接收JobTracker给它分配的作业处理指令完成具体的任务处理。

Map函数和Reduce函数

7.2 MapReduce的体系结构

Client客户端

通过Client可以提交用户编写的应用程序,用户通过它将应用程序提交到JobTracker端;通过这些Client用户也可以通过它提供的一些接口去查看当前提交作业的运行状态。

JobTracker作业跟踪器

负责资源的监控和作业的调度;监控底层其他的TaskTracker以及当前Job的健康状况;一旦探测到失败的情况就把这个任务转移到其他节点继续执行;跟踪任务执行进度和资源使用量,并将这些信息告诉任务调度器(TaskScheduler),调度器会在资源出现空闲时,选择合适的任务去使用。(TaskScheduler是可插板模块,允许用户自行编写调度策略)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值