网站首页 > 博客文章 正文
Apache Yarn(Yet Another Resource Negotiator)是Hadoop的一个资源管理平台,它负责集群资源的分配和调度。Yarn中的资源隔离机制主要是为了确保在多租户环境中,不同的应用程序能够公平、有效地共享集群资源,同时还要保证系统的稳定性和安全性。Yarn的资源隔离可以从几个方面来考虑:
- 资源分配器(Scheduler):
- Yarn有多种资源分配器,如CapacityScheduler和FairScheduler,它们都支持多租户环境。
- CapacityScheduler:按照队列来分配资源,每个队列都有一定的容量,保证了资源按照预设的容量比例分配。
- FairScheduler:动态地调整资源分配,以确保所有应用程序获得公平的资源份额。
- 资源隔离:
- CPU隔离:通过Cgroups(Control Groups)来控制CPU资源的使用,确保应用程序不会超出分配给它的CPU资源。
- 内存隔离:Yarn NodeManager会监控容器的内存使用情况,如果超出预设的限制,可能会触发OOM(Out of Memory)杀手终止过量使用内存的进程。
- 安全隔离:
- 使用Linux Container Executor(LCE)或Container-Managed Security(CMS)来为每个容器提供安全的运行环境。
- 通过Kerberos等安全机制进行用户身份的验证和授权。
- 磁盘隔离:
- 通过HDFS存储策略或者本地磁盘的配额管理来隔离磁盘资源。
- 网络隔离:
- 可以通过设置网络带宽限制来控制应用程序的网络资源使用。
Yarn通过这些机制确保了在一个大数据集群中,各种应用程序和作业能够合理地共享资源,避免资源的争夺导致的服务下降或者失败。同时,通过隔离机制,Yarn还能够保护系统不受恶意应用程序的影响。
如何使用配置实现资源隔离
在YARN中,实现资源隔离的配置主要集中在几个方面,包括对CPU、内存等资源的限制,以及安全性方面的配置。下面是一些关键的配置项,它们可以帮助实现资源隔离:
- CPU资源隔离:
- yarn.nodemanager.resource.cpu-vcores:定义NodeManager节点上可用的虚拟CPU核心数。
- yarn.nodemanager.linux-container-executor.cgroups.mount:启用Cgroups(Control Groups)以实现更细粒度的资源隔离和控制。
- yarn.nodemanager.linux-container-executor.cgroups.mount-path:指定Cgroups的挂载路径。
- 内存资源隔离:
- yarn.nodemanager.resource.memory-mb:定义NodeManager节点上可用的内存量(以MB为单位)。
- yarn.scheduler.minimum-allocation-mb:设置YARN应用程序可以请求的最小内存量。
- yarn.scheduler.maximum-allocation-mb:设置YARN应用程序可以请求的最大内存量。
- 安全隔离配置:
- yarn.nodemanager.linux-container-executor.group:设置运行容器的Linux用户组,用于安全隔离。
- yarn.nodemanager.container-executor.class:设置YARN使用的容器执行器类,例如使用org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor以使用Cgroups进行资源隔离。
- 磁盘和网络隔离:
- 虽然YARN本身不直接提供磁盘和网络隔离的配置项,但可以通过Linux系统级的配置(如磁盘配额、网络带宽限制等)来实现。
- 调度器配置:
- 对于CapacityScheduler,可以在capacity-scheduler.xml中配置不同队列的资源使用比例,实现资源的隔离和分配。
- 对于FairScheduler,可以在fair-scheduler.xml中配置,以确保各个应用程序公平地共享资源。
这些配置项可以在YARN的配置文件中设置,如yarn-site.xml、capacity-scheduler.xml和fair-scheduler.xml等。正确配置这些参数,可以有效地实现YARN集群中的资源隔离,保证集群资源的合理利用和应用程序的稳定运行。
猜你喜欢
- 2024-10-14 国庆期间别偷懒,大数据平台只差YARN了
- 2024-10-14 为什么我们从Yarn切换到pnpm(yarn设置淘宝镜像)
- 2024-10-14 flink的yarn模式部署(flink的三种部署方案)
- 2024-10-14 yarn的安装和使用(yarn安装教程)
- 2024-10-14 yarn 的安装和使用(yarn安装教程)
- 2024-10-14 操作学习-Spark on Yarn(spark on yarn执行流程)
- 2024-10-14 全面解析:Hadoop基础——YARN(hadoop yarn工作原理)
- 2024-10-14 Node简史及好书推荐(nodejs相关书籍)
- 2024-10-14 大数据之-Hadoop3.x_Yarn_常用命令---大数据之hadoop3.x_0147
- 2024-10-14 大数据系列文章之Yarn组件及其执行流程
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 357℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)