热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

yarn怎么查看有多个job在跑_Yarn常见问题

1.ResourceManagerHA方案架构图和之前介绍过的HDFSNameNode高可用实现类似,Yarn的ResourceManagerHA采用的也是基于共享内
964c5e8c6b8daea1e6b7a6ca87d20a6e.png

1. ResourceManager HA 方案

架构图

409540875d90ba2f62868d5532892ee2.png

和之前介绍过的 HDFS NameNode 高可用实现类似,Yarn 的 ResourceManager HA 采用的也是基于共享内存的主备方案,只不过 Yarn 的共享内存是 Zookeeper。由于 ResourceManager 不会保存已经分配的 ApplicationMaster 的资源信息和每个 NodeManager 的资源使用情况,所以它的 HA 实现是比较轻量级的。

与 NameNode HA 的区别

  1. NN HA 中,DN 会同时向 Active NN 和 Standby NN发送心跳;RM HA 中,NM 只会向 Active RM 发送心跳。
  2. RM HA 的选举机制内建在 RM 里(EmbeddedElectorService类),而 NN HA 是用单独的 zkfc 进程进行选举的。

2. Yarn 提交任务执行流程

80164835863bc5170b9bfd7abbd5070d.png
  1. 用户向 Yarn 提交程序,ResourceManager 接收到客户端请求
  2. ResourceManager 分配第一个 Container,并选择一个 NodeManager,要求它在这个 Container 下启动 ApplicationMaster
  3. ApplicationMaster 启动后,向 ResourceManager 发起注册请求
  4. ApplicationMaster 向 ResourceManager申请资源
  5. 取得资源后,根据资源,向相关的 NodeManager 通信,要求其启动程序
  6. NodeManager(多个)启动任务
  7. NodeManager 不断汇报任务状态和进展给 ApplicationMaster
  8. 当任务全部完成时,ApplicationMaster 向 ResourceManager 汇报任务完成,并注销自己

3. Yarn 的资源隔离方式?

  • 对于内存,可以采用进程监控或者 Cgroups 的方案。
  • 对于 CPU,采用 Cgroups 方案。

4. 如何支持多用户的资源调度?

  1. 在一个物理集群上虚拟多个 Hadoop 集群
    这些集群各自拥有全套独立的 Hadoop 服务,典型代表是 HOD 调度器(仅在 Hadoop 1.0 中提供,Haddop 2.0 开始不再包含)。
  2. 扩展 Hadoop 调度器,支持多个队列多个用户
    可以允许管理员按照需求对用户或者应用程序进行分组,并为不同的分组分配不同的资源量,同时通过添加各种约束来防止单个用户或应用程序独占资源。

Hadoop 2.0 之后 Yarn 采用的就是多队列方式

5. 资源保证机制?

  1. 增量资源分配
    当应用程序申请的资源暂时无法保证时,优先为其预留一个节点上的资源直到累积释放的空闲资源满足需求为止。
  2. 一次性资源分配
    当应用程序申请的资源暂时无法保证时,暂时放弃当前资源直到出现一个节点的剩余资源能够一次性满足需求为止。

前者会造成资源浪费,后者会产生饿死现象即可能一直等下去,Yarn 采用的是增量资源分配机制

6. 什么时候会发生资源抢占?

每个队列会设置最小资源量和最大资源量,为了提高资源利用率资源调度器会将负载比较轻的队列 A 的资源暂时分配给负载中的队列 B,这个时候 A 的最小资源量可能没有满足,如果此时 A 突然收到新提交的应用需求申请资源时,可能就需要从 B 中抢回属于 A 的那部分资源。

7. 资源调度器的分类?

资源调度器关注的是如何将节点上空闲的资源分配给应用程序。

FIFO

hadoop 1.x 使用的默认调度器就是 FIFO,FIFO采用队列方式将一个一个job任务按照时间先后顺序进行服务。

Capacity Scheduler

hadoop 2.x 使用的默认调度器是 Capacity Scheduler,主要特点是可以为每个队列设置资源最低保证和资源使用上限,而所有提交到该队列的应用程序共享这些资源。

Fair Scheduler

Facebook 开发的,主要特点是可以为每个队列单独设置调度策略(当前支持 FIFO、Fair、DRF 三个策略)

Capacity Scheduler 和 Fair Scheduler 的区别(来自董西成《Hadoop技术内幕》)

f49b6e1622351bbcd29013c2aba063e7.png

附最大最小公平算法:

首先假定用户集合有 n 个用户,1 到 n,他们对资源的需求已经排序完毕,满足 s1

  1. 将资源 S/n 分配给需求最小的用户1,这很可能已经超出了用户1的需求;
  2. 将超出的部分回收,再次将 (S-s1) / (n-1) 的资源分配给用户2,依次次重复上述过程,直到某一次分给该用户的资源不满足该用户的需求;
  3. 假定当分配到第 k 个用户时,分配到的资源不能达到该用户的需求,那么就将剩下的资源,平均分配给未获得资源的所有用户,至此,分配任务结束。

本文首发于公众号“数据Man”,欢迎关注!

ed828677d4cff50f7bf294ca8437553d.png
数据Man



推荐阅读
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • Zookeeper作为Apache Hadoop生态系统中的一个重要组件,主要致力于解决分布式应用中的常见数据管理难题。它提供了统一的命名服务、状态同步服务以及集群管理功能,有效提升了分布式系统的可靠性和可维护性。此外,Zookeeper还支持配置管理和临时节点管理,进一步增强了其在复杂分布式环境中的应用价值。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 1、概述hdfs文件系统主要设计为了存储大文件的文件系统;如果有个TB级别的文件,我们该怎么存储呢?分布式文件系统未出现的时候࿰ ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • Apache Hadoop HDFS QJournalProtocol 中 getJournalCTime 方法的应用与代码实例分析 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 前期Linux环境准备1.修改Linux主机名2.修改IP3.修改主机名和IP的映射关系4.关闭防火墙5.ssh免登陆6.安装JDK,配置环境变量等集群规划主机 IP安装软件运行进 ... [详细]
  • Hudi是一种数据湖的存储格式,在Hadoop文件系统之上提供了更新数据和删除数据的能力以及流式消费变化数据的能力。应用场景近实时数据摄取Hudi支持插入、更新和删除数据的能力。您 ... [详细]
author-avatar
鉴湖侠ph
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有