当前位置: 首页 > news >正文

【大数据面试】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)面试题及答案_牛客网


 

相关文章:

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

目录 介绍下MapReduce MapReduce优缺点 MapReduce架构 MapReduce工作原理 MapReduce哪个阶段最费时间 ✅MapReduce中的Combine是干嘛的?有什么好出? ✅MapReduce环形缓冲区是什么 ✅MapReduce为什么一定要有环型缓冲区 MapReduce为什么一定要有Shuffle过程 MapRedu…...

数组深入学习感悟

注:本文学习借鉴于《代码随想录》 一.介绍数组 数组是储存在连续内存空间中的相同类型数据的集合 数组名的理解: 数组名就是数组⾸元素(第⼀个元素)的地址是对的,但是有两个例外: sizeof(数组名),sizeof中单独放数…...

亚马逊云科技-如何缩容/减小您的AWS EC2根卷大小-简明教程

一、背景 Amazon EBS提供了块级存储卷以用于 EC2 实例,EBS具备弹性的特点,可以动态的增加容量、更改卷类型以及修改预配置的IOPS值。但是EBS不能动态的减少容量,在实际使用中,用户也许会存在此类场景: 在创建AWS EC2…...

[Java 基础] Java Stream

Java Stream 是 Java 8 引入的新特性之一,它提供了一种新的处理数据集合的方式。Stream 可以使我们更加方便地对集合进行处理和操作,同时还能提高代码的简洁性和可读性。 文章目录 什么是 Stream常见用法创建 Stream中间操作终端操作 总结 什么是 Stream…...

达芬奇18.6DaVinci ResolveStudio(Win/Mac)激活版

DaVinci Resolve Studio 18是一款业界领先的视频后期制作软件,它集成了剪辑、调色、视觉特效、动态图形和音频后期制作等功能,为用户提供了完整的创作解决方案。该软件不仅适用于电影、电视和网页内容的制作,还广泛应用于广告、纪录片和独立电…...

力扣题目学习笔记(OC + Swift)16. 最接近的三数之和

16. 最接近的三数之和 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 排序 双指针 思路同15. 三数之和 简单地使用三重循环枚举所有的三…...

基于STM32的DHT11温湿度传感器与LCD显示器的集成设计

在本文中,我们将详细介绍如何基于STM32微控制器实现DHT11温湿度传感器与LCD显示器的集成设计。我们将包括硬件连接、软件编程以及涉及的STM32库函数和相关知识。这个项目旨在帮助您理解如何使用STM32来读取DHT11温湿度传感器的数据,并将数据显示在LCD显示…...

解决浏览器自动将http跳转至https导致无法访问的问题

以下只针对Chrome浏览器 方法一: 1.地址栏中输入chrome://net-internals/#hsts。 2.在Delete domain中输入项目的域名,并Delete(删除)。 3.可以在Query domain测试是否删除成功。 HSTS全称:HTTP Strict Transport Se…...

小程序面试题 | 07.精选小程序面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...

深度学习的推理部分

深度学习的推理部分指的是已经训练好的深度学习模型应用于新数据(通常是测试或实际应用数据)以进行预测、分类、分割等任务的过程。在深度学习中,训练和推理是两个阶段: 训练阶段: 在这个阶段,深度学习模型…...

如何用 CleanMyMac 来保护 Mac 隐私

大家早上好,中午好,下午好,晚上好。 在我们使用MacBook上的自带浏览器-Safari(或者一些其他浏览器)进行网页浏览的时候,往往会留下一些痕迹。如果这些痕迹涉及一些敏感数据信息的话,那么我们肯…...

opencv入门到精通——鼠标事件和Trackbar控件的使用

目标 了解如何在OpenCV中处理鼠标事件 您将学习以下功能:cv.setMouseCallback() 了解将轨迹栏固定到OpenCV窗口 您将学习以下功能:cv.getTrackbarPos,cv.createTrackbar等。 简单演示 在这里,我们创建一个简单的应用程序&am…...

iOS 收集 SDK 内部 log

为 SDK 设置 log 等级,设置 RCIMClient 的 logLevel 为您期望的,可以在 SDK initWithAppkey 之后设置,比如希望只收集错误 log,那么可以设置为 RC_Log_Level_Error,如果想一般信息、警告信息,错误信息都收集…...

【CSS @property】CSS自定义属性说明与demo

CSS property property - CSS: Cascading Style Sheets | MDN At 规则 - CSS:层叠样式表 | MDN Custom properties (–*): CSS variables - CSS: Cascading Style Sheets | MDN CSS Houdini - Developer guides | MDN 📚 什么是property? property CSS…...

【华为数据之道学习笔记】6-3数据服务分类与建设规范

数据服务是为了更好地满足用户的数据消费需求而产生的,因此数据消费方的差异是数据服务分类的最关键因素。具体包括两大类:数据集服务和数据API服务。 1. 数据集服务 (1)数据集服务定义 比较常见的数据消费者有两类:一…...

Vue的脚手架

脚手架配置 脚手架文档:Vue CLI npm config set registry https://registry.npm.taobao.org vue.config.js配置选项: 配置参考 | Vue CLI ref选项 ref和id类似,给标签打标识。 document.getElementById(btn); this.$ref.btn; 父子组…...

Java实现Word中插入上标和下标

Java实现Word中插入上标和下标 Java不能直接在Word中插入上标和下标,但是可以通过POI库来实现。 下面提供一个Java代码示例,使用POI库向Word中插入带有上标和下标的文字: import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.…...

Java和Python中的目标堆栈规划实现

目标堆栈规划是一种简单高效的人工智能规划算法,用于解决复合目标问题。它的工作原理是**将总体目标分解为更小的子目标,然后以向后的顺序逐一解决它们。 让我们考虑一个简单的例子来说明目标堆栈规划。想象一下你想要烤一个蛋糕,目标是准备…...

(前端)后管系统登录后隐藏url上信息同时获取url上携带参数~开发需求(bug)总结7

问题描述: 首先我这个后管项目是若依权限管理系统,路由实现都是动态加载的。现在有一个需求,后端会邮件发送系统中的链接,这个链接是携带参数(id、用户的加密信息),比如:https://47.23.12.1/task/list?id…...

CSS3新增样式

1,圆角边框 在CSS3中,新增了圆角边框样式,这样我们的盒子就可以变圆角了 border-radious属性用于设置元素的外边框圆角 语法: border-radious:length; radious 半径(圆的半径)原理…...

HP服务器idrac设置以及系统安装

HP服务器idrac设置以及系统安装 一、设置管理口的地址和密码1、HP服务器重新界面选择"F9"进入BIOS,设置iLo5(idrac)的IP和用户名密码。2、选择"系统配置"。3、选择"iLO 4"配置程序。4、网络选项是设置idrac管理口的地址,设…...

rpc和消息队列区别

RPC 和消息队列都是分布式微服务系统中重要的组件之一,下面我们来简单对比一下两者: 从用途来看:RPC 主要用来解决两个服务的远程通信问题,不需要了解底层网络的通信机制。通过 RPC可以帮助我们调用远程计算机上某个服务的方法&a…...

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

当使用ssh登录服务器时,由于文件权限没有设置报以下错误 WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions for test_1.pem are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Loa…...

虚幻学习笔记18—C++委托(多播)和事件

一、前言 委托分单播和多播,多播就是可以绑定多个回调函数,然后一次性执行。这样也可以理解为啥多播没有返回值,多个回调函数执行后返回哪一个都是问题啊。而事件呢官方官方文档说法是“对于事件而言,只有定义事件的类才能调用 Br…...

【UML】第9篇 类图

目录 一、类图的概念 二、类图的主要作用 三、类图的构成 3.1 类的名称 3.2 抽象类(Abstract Class) 一、类图的概念 类图是UML模型中静态视图。它用来描述系统中的有意义的概念,包括具体的概念、抽象的概念、实现方面的概念等。静态视…...

I.MX6ULL启动详解:Boot配置、Bootable image启动头的组成

本篇文章来了解一下I.MX6ULL的启动方式,实际上之前我介绍了NXP的跨界MCU RT1170的启动方式:I.MX RT1170启动详解:Boot配置、Bootable image头的组成,两个芯片虽然一个是Cortex-M,一个是Cortex-A,但是都是来…...

隐藏通信隧道技术——防御SSH隧道攻击的思路

隐藏通信隧道技术——防御SSH隧道攻击的思路 ​ 在内网中建立一个稳定、可靠的数据通道,对渗透测试工作来说具有重要的意义。应用层的隧道通信技术主要利用应用软件提供的端口来发送数据。常用的隧道协议有SSH、HTTP/HTTPS和DNS。 SSH协议 在一般情况下&#xff…...

UE-近战战斗系统学习笔记一

文章目录 一、介绍1)选择paragon资产下载2)用UE 5.0版本创建额外项目迁移到5.1版本的项目3)由于后面要装备武器和盾牌,所以引入一个空手人物模型 二、创建目标系统1)用导入的角色资产代替UE默认的人物第三人称角色资产…...

使用 Layui 的 template 模块来动态加载select选项

可以使用 Layui 的 template 模块来动态加载选项&#xff0c;如下所示&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>Layui 动态模板示例</title><link rel"stylesheet" href"pat…...

《数据分析-JiMuReport》积木报表详细入门教程

积木报表详细入门教程 一、JimuReport部署入门介绍 积木报表可以通过源码部署、SpringBoot集成、Docker部署以及各种成熟框架部署&#xff0c;具体可查看积木官方文档 当前采用源码部署&#xff0c;首先下载Jimureport-example-1.5.6 1 jimureport-example目录查看 使用ID…...

广州门户网站开发/搜索引擎优化的技巧

1、 Java中值类型和引用类型的不同&#xff1f; [定义] 引用类型表示你操作的数据是同一个&#xff0c;也就是说当你传一个参数给另一个方法时&#xff0c;你在另一个方法中改变这个变量的值&#xff0c; 那么调用这个方法是传入的变量的值也将改变.值类型表示复制一个当前变量…...

重庆网站建设在哪里/网络市场调研的方法

讲师&#xff1a;庞雨秾讲师简介&#xff1a;法狗狗法律人工智能技术总监&#xff0c;伦敦大学玛丽女皇学院认知科学硕士。专注于自然语言处理方面的研究与应用&#xff0c;负责研发了包括处理垂直于法律领域的智能咨询系统、分布式非结构化文本挖掘系统等一系列基于自然语言分…...

资源站建站技术/搜狗收录批量查询

看错误是类没有找到&#xff0c;但是代码中确实有这个类&#xff0c;编译没错&#xff0c;执行的时候报这个异常。 我同事的机器没事&#xff0c;我的有问题。 想了一下差别&#xff0c;就是.classPath文件不一致。 后来进 project - properties-java build path - Order and E…...

山西建设厅官方网站/网络推广方案设计

whereis # 选项&#xff1a;# -b&#xff1a;查看二进制文件&#xff1b;[rootZTT ~]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz [rootZTT ~]# whereis -b ls ls: /usr/bin/ls...

58同城网招聘找工作建筑工程/佛山seo外包平台

磁盘阵列df -h看文件系统使用率 : format看可用磁盘 : cfgadm -al看总线连接...

息县网站建设公司/网站秒收录

很多小伙伴在下载游戏了之后&#xff0c;win7电脑提示缺少D3DCompiler_47.dll文件&#xff0c;这是什么原因呢&#xff0c;是因为电脑没有及时下载更新的文件&#xff0c;也是这个原因导致无法加载游戏&#xff0c;只要我们重新下载一个就可以了&#xff0c;具体的解决方法一起…...