【大数据面试】MapReduce常见问题与答案

目录

介绍下MapReduce

MapReduce优缺点

MapReduce架构

MapReduce工作原理

MapReduce哪个阶段最费时间

✅MapReduce中的Combine是干嘛的?有什么好出?

✅MapReduce环形缓冲区是什么

✅MapReduce为什么一定要有环型缓冲区

MapReduce为什么一定要有Shuffle过程

MapReduce的Shuffle过程及其优化

Reduce怎么知道去哪里拉Map结果集?

Reduce阶段都发生了什么,有没有进行分组

MapReduce Shuffle的排序算法

shuffle为什么要排序?

说一下map是怎么到reduce的?

说一下你了解的用哪几种shuffle机制?

MapReduce的数据处理过程

mapjoin的原理(实现)?应用场景?

reducejoin如何执行(原理)

MapReduce为什么不能产生过多小文件

MapReduce分区及作用

ReduceTask数量和分区数量关系

Map的分片有多大

MapReduce join两个表的流程?

手撕一段简单的MapReduce程序

reduce任务什么时候开始?

MapReduce的reduce使用的是什么排序?

MapReduce怎么确定MapTask的数量?

Map数量由什么决定

MapReduce的map进程和reducer进程的ivm垃圾回收器怎么选择可以提高吞吐量?

MapReduce的task数目划分

MapReduce作业执行的过程中,中间的数据会存在什么地方?不会存在内存中么?

Mapper端进行combiner之后,除了速度会提升,那从Mapper端到Reduece端的数据量会怎么变?

map输出的数据如何超出它的小文件内存之后,是落地到磁盘还是落地到HDFS中?

Map到Reduce默认的分区机制是什么?

结合wordcount述说MapReduce,具体各个流程,map怎么做,reduce怎么做

MapReduce数据倾斜产生的原因及其解决方案

Map Join为什么能解决数据倾斜

MapReduce运行过程中会发生OOM,OOM发生的位置?

MapReduce用了几次排序,分别是什么?

MapReduce压缩方式

MapReduce中怎么处理一个大文件


介绍下MapReduce

MapReduce优缺点

MapReduce架构

MapReduce工作原理

MapReduce哪个阶段最费时间

✅MapReduce中的Combine是干嘛的?有什么好出?

Combiner合并

1)Combiner是MR程序汇总Mapper和Reducer之外的一种组件

2)Combiner组件的父类就是Reducer

3)  Combiner和Reducer组件的区别局在于运行的位置

■ Combiner是在每一个MapTask所在的节点运行
■ Reducer是接受全局的所有Mapper的输出结果,然后进行运算。

4)Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减少网络传输量。

5)Combiner能够应用的前提是不能影响最终的业务逻辑。

自定义Combiner实现步骤:

■ 1.自定义一个Combiner并继承Reducer,重写Reduce方法
■ 2.在Job驱动中配置使用。

✅MapReduce环形缓冲区是什么

环形缓冲区分为三块,空闲区、数据区、索引区。初始位置取名叫做“赤道”,就是圆环上的白线那个位置。初始状态的时候,数据和索引都为0,所有空间都是空闲状态。数据是从赤道的右边开始写入,索引(每次申请4kb)是从赤道是左边开始写,两个文件是独立的,执行期间互不干涉。

在数据和索引的大小到了mapreduce.map.sort.spill.percent参数设置的比例时(默认80%,这个是调优的参数),会有两个动作:
1、对写入的数据进行原地排序,并把排序好的数据和索引spill到磁盘上去;
2、在空闲的20%区域中,重新算一个新的赤道,然后在新赤道的右边写入数据,左边写入索引;
3、当20%写满了,但是上一次80%的数据还没写到磁盘的时候,程序就会panding一下,等80%空间腾出来之后再继续写。
如此循环往复,永不停歇,直到所有任务全部结束。整个操作都在内存,形状像一个环,所以才叫环形缓冲区。

✅MapReduce为什么一定要有环型缓冲区

环形缓冲区不需要重新申请新的内存,始终用的都是这个内存空间。大家知道MR是用java写的,而Java有一个最讨厌的机制就是Full GC。Full GC总是会出来捣乱,这个bug也非常隐蔽,发现了也不好处理。环形缓冲区从头到尾都在用那一个内存,不断重复利用,因此完美的规避了Full GC导致的各种问题,同时也规避了频繁申请内存引发的其他问题。

另外呢,环形缓冲区同时做了两件事情:1、排序;2、索引。在这里一次排序,将无序的数据变为有序,写磁盘的时候顺序写,读数据的时候顺序读,效率高非常多!

在这里设置索引区也是为了能够持续的处理任务。每读取一段数据,就往索引文件里也写一段,这样在排序的时候能加快速度。

MapReduce为什么一定要有Shuffle过程

MapReduce的Shuffle过程及其优化

Reduce怎么知道去哪里拉Map结果集?

Reduce阶段都发生了什么,有没有进行分组

MapReduce Shuffle的排序算法

shuffle为什么要排序?

说一下map是怎么到reduce的?

说一下你了解的用哪几种shuffle机制?

MapReduce的数据处理过程

mapjoin的原理(实现)?应用场景?

reducejoin如何执行(原理)

MapReduce为什么不能产生过多小文件

MapReduce分区及作用

ReduceTask数量和分区数量关系

Map的分片有多大

MapReduce join两个表的流程?

手撕一段简单的MapReduce程序

reduce任务什么时候开始?

MapReduce的reduce使用的是什么排序?

MapReduce怎么确定MapTask的数量?

Map数量由什么决定

MapReduce的map进程和reducer进程的ivm垃圾回收器怎么选择可以提高吞吐量?

MapReduce的task数目划分

MapReduce作业执行的过程中,中间的数据会存在什么地方?不会存在内存中么?

Mapper端进行combiner之后,除了速度会提升,那从Mapper端到Reduece端的数据量会怎么变?

map输出的数据如何超出它的小文件内存之后,是落地到磁盘还是落地到HDFS中?

Map到Reduce默认的分区机制是什么?

结合wordcount述说MapReduce,具体各个流程,map怎么做,reduce怎么做

MapReduce数据倾斜产生的原因及其解决方案

Map Join为什么能解决数据倾斜

MapReduce运行过程中会发生OOM,OOM发生的位置?

MapReduce用了几次排序,分别是什么?

MapReduce压缩方式

MapReduce中怎么处理一个大文件

参考:大数据(MapReduce)面试题及答案_牛客网


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Autosar通信实战系列08-Com模块相关开发问题总结

本文框架 前言1. Com模块重要接口回顾2. 如何让通过Com模块配置改善发送报文周期不准问题?3. UDS 0x28服务关闭或打开APP报文与Com模块的交互?4. 如何在Com层实现接收报文的超时,ARC及信号有效性监控?4.1 信号超时监控的配置4.2 报文ARC校验4.3 报文信号值有效性校验前言 …

linux命令绕过

WAF绕过命令执行 1 命令分隔符2 命令执行绕过2.1 绕过空格2.2 拼接2.3 编码2.4 单引号、双引号绕过2.5 反斜线绕过2.6 通配符绕过 1 命令分隔符 linux: && || & | ; # &&绕过 [rootlocalhost ~]# echo 123&& cat /etc/passwd 123 root:…

拾壹[11],缩放形状匹配,函数CreateScaledShapeModel/FindScaledShapeModel

函数CreateScaledShapeModel 函数功能 创建可缩放比例的形状匹配模板 C形式 LIntExport void CreateScaledShapeModel( const HObject& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& …

设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

原型模式 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。 工作原…

threejs 内置变量函数

参考glsl文档 threejs 内置变量 vertex shader highp vec4 gl_PointSize 点大小mediump float gl_Position 不用多说 fragment shader mediump vec4 gl_FragCoord 屏幕坐标系bool gl_FrontFacingmediump vec4 gl_FragColor 最重要的mediump vec4 gl_FragData[gl_MaxDrawBu…

新年跨年烟花超酷炫合集【内含十八个烟花酷炫效果源码】

❤️以下展示为全部烟花特效效果 ❤️下方仅展示部分代码 ❤️源码获取见文末 🎀HTML5烟花喷泉 <style> * {padding:0;margin:0; } html,body {positi

清华提出ViLa,揭秘 GPT-4V 在机器人视觉规划中的潜力

人类在面对简洁的语言指令时&#xff0c;可以根据上下文进行一连串的操作。对于“拿一罐可乐”的指令&#xff0c;若可乐近在眼前&#xff0c;下意识的反应会是迅速去拿&#xff1b;而当没看到可乐时&#xff0c;人们会主动去冰箱或储物柜中寻找。这种自适应的能力源于对场景的…

springboot的配置文件,以及spring boot自动装配的原理,bean的管理。

配置优先级&#xff1a; spring boot中自此三种格式的配置文件&#xff1a; server.port&#xff1a;8081 server.port&#xff1a;8082 server.port&#xff1a;8083 spring boot还支持两种外部配置&#xff1a; java系统属性&#x…

软件测试人才稀缺!揭秘为什么你找不到软件测试工作?

最近后台很多粉丝给我留言&#xff1a; 2023年软件测试已经崩盘了吗&#xff0c;为什么都找不到工作了&#xff1f; 确实&#xff0c;今年经济大环境不好&#xff0c;企业也都在降本增效&#xff0c;如果技术能力还在被应届生竞争岗位的阶段&#xff0c;只会越来越难。 找不…

【大数据面试】YARN常见问题与答案

目录 介绍下YARN YARN有几个模块 YARN工作机制 YARN有什么优势&#xff0c;能解决什么问题? YARN容错机制 YARN高可用 YARN调度器 YARN中Container是如何启动的? YARN的改进之处&#xff0c;Hadoop3.x相对于Hadoop 2.x? YARN监控 介绍下YARN YARN有几个模块 Yar…

74.搜索二维矩阵

题目 法1&#xff1a;二分搜索 剑指原题 class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length, n matrix[0].length;int i 0, j n - 1;while (i < m && j > 0) {if (matrix[i][j] target) {return true;} el…

从零开始在Linux服务器配置并运行YOLO8+Web项目

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 神经网络&#xff08;随缘更新&#xff09; ✨特色…

『OPEN3D』1.5.4 动手实现点云八叉树(OctoTree)最近邻

本专栏地址: https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 在二维和三维空间中,我们可以采用四叉树(Quad tree)和八叉树(Octree)这两种特定的数据结构来处理空间分割。这些树形结构可以看作是K-d树在不同维度下的扩展。…

SpringBoot的多环境开发

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

JS - 闭包(Closure)

目录 1&#xff0c;什么是闭包2&#xff0c;创建闭包3&#xff0c;如何销毁闭包2.1&#xff0c;自动创建的闭包2.2&#xff0c;手动创建的闭包 4&#xff0c;闭包的特点和使用场景3.1&#xff0c;特点3.2&#xff0c;使用场景避免全局变量污染函数柯里化 5&#xff0c;闭包经典…

【高级网络程序设计】Block1总结

这一个Block分为四个部分&#xff0c;第一部分是Introduction to Threads and Concurrency &#xff0c;第二部分是Interruptting and Terminating a Thread&#xff0c;第三部分是Keep Threads safety&#xff1a;the volatile variable and locks&#xff0c;第四部分是Beyon…

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…

提升研究效率,尽在EndNote 21 forMac/win!

在科研领域&#xff0c;文献管理是一项至关重要的任务。研究人员需要快速而准确地收集、整理和引用大量的文献资料&#xff0c;以支持他们的研究工作。而EndNote 21作为一款功能强大的文献管理软件&#xff0c;能够帮助研究人员高效地管理文献资源&#xff0c;提升研究工作的效…

【Linux基础】1. Linux 启动过程

文章目录 【 1. 内核的引导 】【 2. 运行init 】 运行级别 【 3. 系统初始化 】【 4. 建立终端 】【 5. 用户登录系统 】【 6. 图形模式与文字模式的切换方式 】【 7. Linux关机 】 Linux系统的启动过程分为 5个阶段&#xff1a; &#xff08;1&#xff09;内核的引导。 &#…

docker nginx 部署静态网站

1、dockerfile FROM nginx AS baseWORKDIR /appEXPOSE 80COPY . /app2、dockercompose.yaml version: 3 services:adminservice:container_name: adminwebbuild:context: ./dockerfile: Dockerfileports:- "5000:80"labels:description: adminwebrestart: always3、…