ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

谈一谈你对mapreduce 的理解?(大数据面试题系列~)

2019-03-05 21:51:24  阅读:176  来源: 互联网

标签:map 面试题 谈一谈 容器 作业 mapreduce MapReduce 任务 master


MapReduce 是一种用于数据处理的编程模型。我们可以这样理解MapReduce, 把一堆杂乱无章的数据按照某种特征归纳起来,然后处理并得到最后的结果。Map 面对的是杂乱无章的互不相关的数据,它解析每个数据,从中提取key 和value, 也就是提取了数据的特征。经过MapReduce 的shuffle 阶段之后,在Reduce 阶段看到的都是归纳好的数据,然后再进行进一步的处理以得到结果。

Hadoop2 中的MapReduce 工作机制

1.客户端开始运行MapReduce 作业

2.向资源管理器请求一个新的应用ID,用作MapReduce 作业ID

3.将运行作业所需要的资源(作业JAR 文件、配置文件和计算所得的输入分片)复制到HDFS中以作业ID命名的目录下

4.提交作业

5a.资源管理器分配一个容器

5b.在容器中启动作业对应的application master 进程

6.作业的初始化

7.Application master 接收来自于HDFS 的、在客户端计算的输入分片。然后对每一个分片创建一个map 任务对象以及多个reduce 对象

application master 决定如何运行构成MapReduce 作业的各个任务。如果作业很小,就选择在当前JVM 上运行任务,否则申请其它节点。

默认情况下,小作业就是少于10个mapper 且只有一个reducer 且输入大小小于一个HDFS 块的作业。

8.如果作业不是小作业,那么application master 就会为该作业中的所有map 任务和reduce 任务向资源管理器申请容器。

首先为map 任务发出申请,这是因为所有的map 任务必须在reduce 的排序阶段能够启动前完成。直到有5% 的map 任务已经完成时,为reduce 任务申请容器的请求才会发出。

9a 9b.一旦资源管理器为任务分配了一个特定节点上的容器,application master 就通过与节点管理器通信来启动容器。

10.在运行任务之前,首先将任务需要的资源本地化,包括任务作业的配置、JAR文件等。

11.运行任务(Map 任务 or Reduce 任务)

标签:map,面试题,谈一谈,容器,作业,mapreduce,MapReduce,任务,master
来源: https://blog.csdn.net/qq_24871519/article/details/88206851

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有