大数据面试题集锦-Hadoop面试题(四)-YARN

news2024/9/20 10:40:41

你准备好面试了吗?这里有一些面试中可能会问到的问题以及相对应的答案。如果你需要更多的面试经验和面试题,关注一下"张飞的猪大数据分享"吧,公众号会不定时的分享相关的知识和资料。

文章目录

    • 1、为什么会产生 yarn,它解决了什么问题,有什么优势?
    • 2、简述hadoop1与hadoop2 的架构异同
    • 3、Hadoop的调度器总结
    • 4、MapReduce 2.0 容错性
    • 5、HDFS的数据压缩算法?
    • 6、mapreduce推测执行算法及原理
    • 7、更多大数据面试集锦

1、为什么会产生 yarn,它解决了什么问题,有什么优势?

1)Yarn最主要的功能就是解决运行的用户程序与yarn框架完全解耦。
  2)Yarn上可以运行各种类型的分布式运算程序(mapreduce只是其中的一种),比如mapreduce、storm程序,spark程序……

2、简述hadoop1与hadoop2 的架构异同

1)加入了yarn解决了资源调度的问题。
  2)加入了对zookeeper的支持实现比较可靠的高可用。

3、Hadoop的调度器总结

(1)默认的调度器FIFO
  Hadoop中默认的调度器,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。
(2)计算能力调度器Capacity Scheduler
  支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。调度时,首先按以下策略选择一个合适队列:计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。
(3)公平调度器Fair Scheduler
  同计算能力调度器类似,支持多队列多用户,每个队列中的资源量可以配置,同一队列中的作业公平共享队列中所有资源。实际上,Hadoop的调度器远不止以上三种,最近,出现了很多针对新型应用的Hadoop调度器。

4、MapReduce 2.0 容错性

1)MRAppMaster容错性
  一旦运行失败,由YARN的ResourceManager负责重新启动,最多重启次数可由用户设置,默认是2次。一旦超过最高重启次数,则作业运行失败。
2)Map Task/Reduce
  Task Task周期性向MRAppMaster汇报心跳;一旦Task挂掉,则MRAppMaster将为之重新申请资源,并运行之。最多重新运行次数可由用户设置,默认4次。

5、HDFS的数据压缩算法?

Hadoop中常用的压缩算法有bzip2、gzip、lzo、snappy,其中lzo、snappy需要操作系统安装native库才可以支持。
  数据可以压缩的位置如下所示。
在这里插入图片描述

企业开发用的比较多的是snappy。

6、mapreduce推测执行算法及原理

1)作业完成时间取决于最慢的任务完成时间
  一个作业由若干个Map 任务和Reduce 任务构成。因硬件老化、软件Bug 等,某些任务可能运行非常慢。
  典型案例:系统中有99%的Map任务都完成了,只有少数几个Map老是进度很慢,完不成,怎么办?
2)推测执行机制
  发现拖后腿的任务,比如某个任务运行速度远慢于任务平均速度。为拖后腿任务启动一个备份任务,同时运行。谁先运行完,则采用谁的结果。
3)不能启用推测执行机制情况
  (1)任务间存在严重的负载倾斜;
  (2)特殊任务,比如任务向数据库中写数据。
4)算法原理
  假设某一时刻,任务T的执行进度为progress,则可通过一定的算法推测出该任务的最终完成时刻estimateEndTime。另一方面,如果此刻为该任务启动一个备份任务,则可推断出它可能的完成时刻estimateEndTime,于是可得出以下几个公式:

estimateEndTime=estimatedRunTime+taskStartTime
estimatedRunTime=(currentTimestamp-taskStartTime)/progress
estimateEndTime= currentTimestamp+averageRunTime

其中,currentTimestamp为当前时刻;taskStartTime为该任务的启动时刻;averageRunTime为已经成功运行完成的任务的平均运行时间。这样,MRv2总是选择(estimateEndTime- estimateEndTime·)差值最大的任务,并为之启动备份任务。为了防止大量任务同时启动备份任务造成的资源浪费,MRv2为每个作业设置了同时启动的备份任务数目上限。
  推测执行机制实际上采用了经典的算法优化方法:以空间换时间,它同时启动多个相同任务处理相同的数据,并让这些任务竞争以缩短数据处理时间。显然,这种方法需要占用更多的计算资源。在集群资源紧缺的情况下,应合理使用该机制,争取在多用少量资源的情况下,减少作业的计算时间。

7、更多大数据面试集锦

  1. 大数据书籍资料分享
  2. 大数据面试题集锦

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

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

相关文章

Linux系统常用的2种切换用户命令

文章目录一、su命令二、sudo命令总结一、su命令 1、语法:(英文全拼:switch user) su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]2、参数说明: -f或--fast:不必读启动档&…

值得收藏!适合小微企业的万元数字化攻略!

编者按:小微企业数字化之路困难重重?看看这款全新的全面数字化方案,低成本、部署效率、免安装、免维护、数据安全,小微企业的数字化福音!关键词:低成本,开箱即用,免安装免维护&#…

数据结构——树(一):二叉树

前言 在这篇文章中,荔枝会整理一下自己学习二叉树的学习笔记。主要内容包括树与二叉树的基本定义以及基础概念、二叉树的存储结构、二叉树的四种遍历方法以及二叉查找树的基本内容。 文章目录 前言 一、树形存储结构 二、二叉树 2.1 二叉树的基本定义 2.2 二叉…

【项目笔记】尚硅谷《云原生实战》

尚硅谷《云原生实战》1、云服务器nginx测试2、子网3、Docker4、Redis尚硅谷云原生项目 官方笔记 1、云服务器nginx测试 在云服务器供应商购买云服务器,配置弹性公网ip:121.37.230.200。外部访问使用公网ip,弹性公网每次会变;服务…

Docker中安装并配置单机版redis

1、使用docker安装redis 搜索Reis镜像,这里展示的是官方最新的镜像docker search redis 使用官方dockerhub搜索redis 2、选用常用的redis5.0作为安装的版本docker pull redis:5.0 3、运行redis容器的两种方式 3.1 不映射外部配置文件直接运行redis5.0镜像docker …

【C#基础】C# 正则表达式

序号系列文章7【C#基础】C# 常用数据结构8【C#基础】C# 面向对象编程9【C# 基础】C# 异常处理操作文章目录前言1,Regex 的概念2,Regex 的创建3,Regex 常用操作4,Regex 类的使用5,学习资源推荐结语前言 🌼 h…

软件测试之【性能测试】

性能测试的定义 性能测试的定义:通过自动化测试工具或者代码手段,来模拟正常、峰值负载访问被测系统,来观测系统各项性能指标是否合格的过程。 性能测试的分类 基于代码的性能测试(关注点是函数或方法执行的效率) 基于…

acwing1562 微博转发(宽搜)

微博被称为中文版的 Twitter。 微博上的用户既可能有很多关注者,也可能关注很多其他用户。 因此,形成了一种基于这些关注关系的社交网络。 当用户在微博上发布帖子时,他/她的所有关注者都可以查看并转发他/她的帖子,然后这些人…

铰链、弹簧,特殊的物理关节

title: 铰链、弹簧,特殊的物理关节 date: 2023-02-28T13:32:57Z lastmod: 2023-02-28T14:24:06Z 铰链关节(Hinge Join)组件 组件-Physics-Hinge Join Anchor 当物体挂载铰链组件以后,组件下Anchor等同于边长为1的立方体。当这…

机器学习笔记之流形模型——标准流模型基本介绍

机器学习笔记之流形模型——标准流模型基本介绍引言回顾:隐变量模型的缺陷标准流(Normalizing Flow\text{Normalizing Flow}Normalizing Flow)思想分布变换的推导过程引言 本节将介绍概率生成模型——标准流模型(Normalizing Flow\text{Normalizing Flow}Normalizi…

第九节 常用API(String/ArrayList)

常用API(String/ArrayList) java写好的程序,我们可以直接调用。 String类定义的变量可以用于存储字符串,同时String类提供了很多操作字符串的功能,我们可以直接使用。 ArrayList简单介绍 1.ArrayList代表的是集合类,集合是一种容…

《C++ Primer Plus》(第6版)第6章编程练习

《C Primer Plus》(第6版)第6章编程练习《C Primer Plus》(第6版)第6章编程练习1. 大小写转换2. 平均值3. 菜单4. 成员5. 收入所得税6. 捐款7. 统计单词8. 统计文件字符数9. 重写编程练习6《C Primer Plus》(第6版&…

taobao.top.secret.appkey.bill.detail( 服务商解密账单查询 )

¥免费不需用户授权 服务商解密账单查询,分页返回所有店铺的账单,每个店铺每天仅包含两条数据,当天产生的号租费 和 当天产生的通话费,仅对90天内的账单提供SLA保障。查询账单详情请使用taobao.top.secret.bill.detail接口。 公共参…

计算机的发展

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。个人爱好: 编程,打篮球,计算机知识个人名言:海不辞水,故能成其大;山不辞石…

云打包苹果证书生成、上架和应用截屏攻略

在使用apicloud或hbuilderx这些跨端的开发工具开发移动应用的时候,假如是打包ios应用,是需要生成苹果证书、证书profile文件,和对应用上架的。首先要普及一个概念,苹果的应用是无法像安卓那样挂在自己的服务器上下载直接安装就可以…

C++ STL:迭代器 Iterator

文章目录1、迭代器的类型2、traitsiterator_traitstype_traits泛化的指针,容器与算法的桥梁。提供一种方法,按照一定顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。既能对容器进行遍历,又可以对外隐藏容器的底层实…

谷歌邮箱账号不会注册?注册失败?这份完美注册教程请收好

谷歌邮箱相信大家都不陌生吧,无论是用于发送和接收邮件,还是用于在国外网站注册,很多人都离不开谷歌邮箱。甚至,一些网站直接提供谷歌邮箱登录选项。这就是为什么很多跨境人想要注册谷歌邮箱的原因。 但是,大部分网友都…

Java学习之路002——面向对象编程

【说明】部分内容来源于网络,如有冲突,请联系作者删除。 一、面向对象编程(OOP) 2.1 对象和类的关系 2.2 面向对象的特征 2.2.1 封装 2.2.2 继承 2.2.3 多态 3、抽象 使用abstract关键字修饰的类或者方法 定义抽象类(使用abstract) // 1、定义抽象方法…

计数排序.

1.动图演示: 2.代码示例: package test1;import java.util.Arrays;public class Test3 {public static void main(String[] args) {int[] nums new int[]{1, 2, 1, 4, 52, 1, 4};int[] arr count_sort(nums, getMax(nums));for (int i : arr) {System…

spring boot 配合element ui vue实现表格的批量删除(前后端详细教学,简单易懂,有手就行)

目录 一.前言: 二. 前端代码: 2.1.element ui组件代码 2.2删除按钮 2.3.data 2.4.methods 三.后端代码: 一.前言: 研究了其他人的博客,找到了一篇有含金量的,进行了部分改写实现前后端分离&#xff0…