大数据技术基础笔记7 MapReduce
Posted Lora鳃鳃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据技术基础笔记7 MapReduce相关的知识,希望对你有一定的参考价值。
7.1 概述
7.1.1 分布式并行编程
“摩尔定律”:CPU性能大约每隔18个月翻一番
从2005年开始摩尔定律逐渐失效 ,需要处理的数据量快速增加,人们开始借助于分布式并行编程来提高程序性能。
分布式程序运行在大规模计算机集群上,可以并行执行大规模数据处理任务,从而获得海量的计算能力
谷歌公司最先提出了分布式并行编程模型MapReduce,Hadoop MapReduce是它的开源实现,后者比前者使用门槛低很多
问题:在MapReduce出现之前,已经有像MPI这样非常成熟的并行计算框架了,那么为什么Google还需要MapReduce?MapReduce相较于传统的并行计算框架有什么优势?
7.1.2 MapReduce模型简介
—MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象为Map和Reduce函数:
MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理
MapReduce设计的一个理念就是“计算向数据靠拢”,而不是“数据向计算靠拢”,减少网络传输开销
MapReduce框架采用了Master/Slave架构,Master上运行JobTracker,每个Slave上运行TaskTracker
—编程容易
不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算
MapReduce应用程序则不一定要用Java来写
7.1.3 Map和Reduce函数
输入和输出采用键值对形式
7.2 MapReduce体系结构
MapReduce体系结构主要由四个部分组成:
Client、JobTracker、TaskTracker以及Task
1.Client
用户编写的MapReduce程序通过Client提交到JobTracker端。
用户可通过Client提供的一些接口查看作业运行状态
2.JobTracker
JobTracker负责资源监控和作业调度。
JobTracker 监控所有TaskTracker与Job的健康状况,一旦发现失败,就将相应的任务转移到其他节点。
JobTracker 会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器(TaskScheduler),而调度器会在资源出现空闲时,选择合适的任务去使用这些资源
3.TaskTracker
TaskTracker 会周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)
TaskTracker 使用“slot”等量划分本节点上的资源量(CPU、内存等)。slot 分为Map slot 和Reduce slot 两种,分别供MapTask 和Reduce Task 使用
一个Task 获取到一个slot 后才有机会运行。
4.Task
分为Map Task 和Reduce Task 两种,均由TaskTracker 启动
7.3 MapReduce工作流程
以上是关于大数据技术基础笔记7 MapReduce的主要内容,如果未能解决你的问题,请参考以下文章
尚硅谷大数据技术Hadoop教程-笔记06Hadoop-生产调优手册