大数据面试题整理——Yarn

系列文章目录

第一章 HDFS面试题
第二章 MapReduce面试题


文章目录

  • 系列文章目录
  • [什么是 Yarn?](#什么是 Yarn?)
  • [一、Yarn 的主要组件及其功能是什么?](#一、Yarn 的主要组件及其功能是什么?)
  • [二、Yarn 中的容器(Container)是什么?](#二、Yarn 中的容器(Container)是什么?)
  • [三、简述 Yarn 的工作流程。](#三、简述 Yarn 的工作流程。)
  • [四、Yarn 如何进行资源分配?](#四、Yarn 如何进行资源分配?)
  • [五、Yarn 与 MapReduce 的关系。](#五、Yarn 与 MapReduce 的关系。)
  • [六、Yarn 与 Hive 的关系。](#六、Yarn 与 Hive 的关系。)
  • [七、Yarn 常见的配置参数有哪些?](#七、Yarn 常见的配置参数有哪些?)
  • [八、如何优化 Yarn 性能?](#八、如何优化 Yarn 性能?)
  • [九、Yarn 有哪些容错机制?](#九、Yarn 有哪些容错机制?)
  • [十、Yarn 如何处理节点故障?](#十、Yarn 如何处理节点故障?)

什么是 Yarn?

Yarn是 Hadoop 生态系统中的资源管理和任务调度框架。责管理调度资源。

一、Yarn 的主要组件及其功能是什么?

  • ResourceManager(RM):
    它是集群资源分配和管理中心,负责处理客户端请求、启动应用程序,监控 NodeManager 资源使用情况并为应用程序的 ApplicationMaster 分配资源。
  • NodeManager(NM):
    • 管理单个节点的资源,包括 CPU、内存等。
    • 启动和监控容器(Container),向 ResourceManager 汇报节点资源使用情况和容器状态。
  • ApplicationMaster(AM):
    • 每个应用程序有一个 ApplicationMaster,负责与 ResourceManager 协商资源,并与 NodeManager 协同工作来执行和监控任务。
    • 它负责应用程序的调度,如任务分配、监控任务进度等。

二、Yarn 中的容器(Container)是什么?

  • 容器是 Yarn 中资源分配的基本单位。
  • 它封装了一定量的内存、CPU 等资源。
  • NodeManager 负责启动和管理容器,ApplicationMaster 可以向 ResourceManager 请求特定资源规格的容器来运行任务。

三、简述 Yarn 的工作流程。

  • 客户端向 ResourceManager 提交应用程序。
  • ResourceManager 为应用程序启动一个 ApplicationMaster。
  • ApplicationMaster 向 ResourceManager 申请资源(容器)。
  • ResourceManager 分配资源给 ApplicationMaster。
  • ApplicationMaster 与 NodeManager 通信,启动容器并执行任务。
  • 任务执行过程中,ApplicationMaster 监控任务进度和状态,向 ResourceManager 汇报。
  • 任务完成后,ApplicationMaster 向 ResourceManager 注销并释放资源。

四、Yarn 如何进行资源分配?

  • ResourceManager 根据节点的资源可用性和应用程序的资源需求进行资源分配。
  • 它维护着一个资源队列,不同的应用程序可以被分配到不同的队列中,每个队列有一定的资源配额。
  • ApplicationMaster 向 ResourceManager 发送资源请求,ResourceManager 根据资源情况进行分配,并将分配的容器信息返回给 ApplicationMaster。

五、Yarn 与 MapReduce 的关系。

  • 在 Hadoop 2.0 及以后版本,MapReduce 运行在 Yarn 之上。
  • Yarn 为 MapReduce 作业提供资源管理和调度服务,MapReduce 的 ApplicationMaster 负责 MapReduce 任务的具体调度和执行。
  • MapReduce 作业通过 Yarn 来获取资源并执行任务,提高了集群资源的利用率和可扩展性。

六、Yarn 与 Hive 的关系。

  • Hive 可以在 Yarn 上运行查询任务。
  • Hive 客户端将查询提交给 Hive 驱动程序,驱动程序将查询转换为一系列的 MapReduce 任务(或其他执行引擎任务),然后这些任务在 Yarn 上申请资源并执行。
  • Yarn 为 Hive 任务提供资源分配和管理,确保任务能够在集群中高效执行。

七、Yarn 常见的配置参数有哪些?

  • yarn.nodemanager.resource.memory-mb:设置每个节点可用的物理内存总量。
  • yarn.scheduler.minimum-allocation-mb:每个容器请求的最小内存分配量。
  • yarn.scheduler.maximum-allocation-mb:每个容器请求的最大内存分配量。
  • yarn.nodemanager.vmem-pmem-ratio:虚拟内存与物理内存的比例。
  • yarn.scheduler.capacity.root.queues:定义资源队列及其配置。

八、如何优化 Yarn 性能?

  • 合理配置资源参数:根据集群硬件资源和应用程序需求,调整内存、CPU 等资源参数。
  • 调整资源队列配置:根据不同应用程序的优先级和资源需求,合理划分资源队列和设置资源配额。
  • 监控和分析性能指标:通过监控 Yarn 的资源使用情况、任务执行时间等指标,找出性能瓶颈并进行优化。
  • 应用程序优化:优化应用程序的代码和算法,减少资源消耗和提高执行效率。

九、Yarn 有哪些容错机制?

  • ResourceManager 容错:ResourceManager 可以通过配置实现高可用(HA),通常使用多个 ResourceManager 实例,通过 ZooKeeper 进行选举和协调。
  • NodeManager 容错:NodeManager 定期向 ResourceManager 汇报心跳和资源使用情况。如果 NodeManager 长时间未汇报心跳,ResourceManager 会认为该节点失效,并将该节点上的容器重新分配到其他节点。
  • ApplicationMaster 容错:ApplicationMaster 可以在失败后重新启动。ResourceManager 会在一定时间内保留应用程序的状态,当 ApplicationMaster 重新启动时,它可以从上次失败的地方继续执行。

十、Yarn 如何处理节点故障?

  • 当 NodeManager 出现故障时,ResourceManager 会将该节点上正在运行的容器标记为失败,并重新分配到其他健康节点上运行。
  • 如果是 ApplicationMaster 所在节点出现故障,ApplicationMaster 会在其他节点上重新启动,并从 ResourceManager 恢复应用程序的状态信息,继续执行任务。
相关推荐
大数据追光猿4 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
人类群星闪耀时5 小时前
物联网与大数据:揭秘万物互联的新纪元
大数据·物联网·struts
桃林春风一杯酒11 小时前
HADOOP_HOME and hadoop.home.dir are unset.
大数据·hadoop·分布式
桃木山人12 小时前
BigData File Viewer报错
大数据·java-ee·github·bigdata
B站计算机毕业设计超人12 小时前
计算机毕业设计Python+DeepSeek-R1高考推荐系统 高考分数线预测 大数据毕设(源码+LW文档+PPT+讲解)
大数据·python·机器学习·网络爬虫·课程设计·数据可视化·推荐算法
数造科技12 小时前
紧随“可信数据空间”政策风潮,数造科技正式加入开放数据空间联盟
大数据·人工智能·科技·安全·敏捷开发
逸Y 仙X15 小时前
Git常见命令--助力开发
java·大数据·git·java-ee·github·idea
caihuayuan416 小时前
PHP建立MySQL持久化连接(长连接)及mysql与mysqli扩展的区别
java·大数据·sql·spring
B站计算机毕业设计超人16 小时前
计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hadoop·爬虫·机器学习·课程设计·数据可视化·推荐算法
(; ̄ェ ̄)。17 小时前
在nodejs中使用ElasticSearch(二)核心概念,应用
大数据·elasticsearch·搜索引擎