当前位置:网站首页>【yarn】CDP集群 Yarn配置capacity调度器批量分配
【yarn】CDP集群 Yarn配置capacity调度器批量分配
2022-07-06 09:15:00 【kiraraLou】
一、前言
最近要升级 CDH
集群成 CDP
集群,CDH
集群中 Yarn
服务默认使用的是 fair
调度器,CDP
集群使用的是 capacity
调度器,我们之前淌过 调度器因为批量分配设置不合理,导致任务集中分配到了某几台节点,使集群资源负载极度不均衡。
为了避免同样的问题出现在 CDP
集群上,我们提前进行调研。看看使用 调度器会不会也有集中分配的现象。但是调研过程中,出现了一些不和预期的现象,等待后续跟进。
二、CDH集中分配
前面介绍过,CDH 5.8-Hadoop2.6.0
版本后,针对公平调度
,有如下几个配置,来针对任务类型(小任务)加快分配的优化。
配置名 | 解释 |
---|---|
yarn.scheduler.fair.max.assign | 最大分配数:如果 assignmultiple 为 true 且 dynamic.max.assign 为 false,则一个心跳中可以分配的最大容器数。 |
yarn.scheduler.fair.assignmultiple | 分配多个:是否允许在一个心跳中分配多个容器。 |
yarn.scheduler.fair.dynamic.max.assign | 如果assignmultiple为真,是否动态确定一个心跳可以分配的资源量。开启后,节点上大约一半的未分配资源会在一次心跳中分配给容器。默认为真。 |
通过合理的配置,我们就可以即使用集中分配的方式,又不会扩大集群负载差异。
CDH
集群如何配置这里不展开介绍。
三、CDP集中分配
CDP 集群中已经使用容量调度
来作为默认的调度器,通过查阅官方和Cloudera 文件,发现 调度也是有通过心跳为 NodeManager
分配多个容器。相关配置如下:
配置名 | 解释 |
---|---|
yarn.scheduler.capacity.per-node-heartbeat.multiple-assignments-enabled | 是否允许在一个 NodeManager 心跳中分配多个容器。默认为真。 |
yarn.scheduler.capacity.per-node-heartbeat.maximum-container-assignments | 如果multiple-assignments-enabled 为 true ,则在一个 NodeManager 心跳中可以分配的最大容器数量。默认为 -1,不设置限制。 |
yarn.scheduler.capacity.per-node-heartbeat.maximum-offswitch-assignments | 如果multiple-assignments-enabled 为 true ,则在一个 NodeManager 心跳中可以分配的最大 off-switch 容器数量。默认为 1,表示一个心跳中只允许一个关闭开关分配。 |
如何配置
在
Cloudera Manager
中,选择集群 >YARN 队列管理器 UI 服务
。在
YARN
队列管理器窗口中,单击调度程序配置选项卡。在“调度程序配置”窗口中
选中
Enable Multiple Assignments Per Heartbeat
复选框以允许在一个NodeManager
心跳中分配多个容器配置以下
NodeManager
心跳属性:
Maximum Container Assignments Per Heartbeat
: 在一个NodeManager
心跳中可以分配的最大容器数。将此值设置为 -1 将禁用此限制。Maximum Off-Switch Assignments Per Heartbeat
: 可以在一个NodeManager
心跳中分配的关闭开关容器的最大数量。
三、总结
capacity
调度器也有类似fair
调度器的心跳批量分配配置。- CDP 集群
capacity
调度器默认开启了批量分配,并且分配数量为 100,这个值需要调小。 - 目前测试下来,发现配置好像没有生效,这个需要后续联系专家跟进下。
参考
https://docs.cloudera.com/cdp-private-cloud-base/7.1.7/yarn-allocate-resources/topics/yarn-set-user-limits.html
https://docs.cloudera.com/cdp-private-cloud-base/7.1.7/yarn-allocate-resources/topics/yarn-configure-nm-heartbeat.html
https://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html#Reviewing_the_configuration_of_the_CapacityScheduler
边栏推荐
- Codeforces Round #771 (Div. 2)
- PHP - whether the setting error displays -php xxx When PHP executes, there is no code exception prompt
- 报错解决 —— io.UnsupportedOperation: can‘t do nonzero end-relative seeks
- neo4j安装教程
- In the era of DFI dividends, can TGP become a new benchmark for future DFI?
- 天梯赛练习集题解LV1(all)
- Solve the problem of installing failed building wheel for pilot
- How to configure flymcu (STM32 serial port download software) is shown in super detail
- Codeforces Round #753 (Div. 3)
- Django running error: error loading mysqldb module solution
猜你喜欢
[download app for free]ineukernel OCR image data recognition and acquisition principle and product application
基于apache-jena的知识问答
QT creator specifies dependencies
Why can't I use the @test annotation after introducing JUnit
Knowledge Q & A based on Apache Jena
vs2019 第一个MFC应用程序
About string immutability
Reading BMP file with C language
QT creator design user interface
One click extraction of tables in PDF
随机推荐
Basic use of redis
Are you monitored by the company for sending resumes and logging in to job search websites? Deeply convinced that the product of "behavior awareness system ba" has not been retrieved on the official w
01项目需求分析 (点餐系统)
[Blue Bridge Cup 2017 preliminary] buns make up
[AGC009D]Uninity
L2-006 树的遍历 (25 分)
Knowledge Q & A based on Apache Jena
打开浏览器的同时会在主页外同时打开芒果TV,抖音等网站
AcWing 1294. Cherry Blossom explanation
PHP - whether the setting error displays -php xxx When PHP executes, there is no code exception prompt
Ansible practical series I_ introduction
QT creator create button
人脸识别 face_recognition
[NPUCTF2020]ReadlezPHP
Record a problem of raspberry pie DNS resolution failure
Software testing - interview question sharing
[蓝桥杯2017初赛]方格分割
Codeforces Round #771 (Div. 2)
Codeforces Round #771 (Div. 2)
Vs2019 use wizard to generate an MFC Application