常见的架构知识

简介: 默认情况下,各个节点的负载不均衡(任务数目不同),有的节点很多任务在跑,有的没有任务,怎样让各个节点任务数目尽可能均衡呢?

(1) 默认情况下,各个节点的负载不均衡(任务数目不同),有的节点很多任务在跑,有的没有任务,怎样让各个节点任务数目尽可能均衡呢?

答: 默认情况下,资源调度器处于批调度模式下,即一个心跳会尽可能多的分配任务,这样,优先发送心跳过来的节点将会把任务领光(前提:任务数目远小于集群可以同时运行的任务数量),为了避免该情况发生,可以按照以下说明配置参数:

如果采用的是fair scheduler,可在yarn-site.xml中,将参数yarn.scheduler.fair.max.assign设置为1(默认是-1,)

如果采用的是capacity scheduler(默认调度器),则不能配置,目前该调度器不带负载均衡之类的功能。

当然,从hadoop集群利用率角度看,该问题不算问题,因为一般情况下,用户任务数目要远远大于集群的并发处理能力的,也就是说,通常情况下,集群时刻处于忙碌状态,没有节点一直空闲着。

(2)某个节点上任务数目太多,资源利用率太高,怎么控制一个节点上的任务数目?

答:一个节点上运行的任务数目主要由两个因素决定,一个是NodeManager可使用的资源总量,一个是单个任务的资源需求量,比如一个NodeManager上可用资源为8 GB内存,8 cpu,单个任务资源需求量为1 GB内存,1cpu,则该节点最多运行8个任务。

NodeManager上可用资源是由管理员在配置文件yarn-site.xml中配置的,相关参数如下:

yarn.nodemanager.resource.memory-mb:总的可用物理内存量,默认是8096

yarn.nodemanager.resource.cpu-vcores:总的可用CPU数目,默认是8

对于MapReduce而言,每个作业的任务资源量可通过以下参数设置:

mapreduce.map.memory.mb:物理内存量,默认是1024

mapreduce.map.cpu.vcores:CPU数目,默认是1

注:以上这些配置属性的详细介绍可参考文章:Hadoop YARN配置参数剖析(1)—RM与NM相关参数。

默认情况,各个调度器只会对内存资源进行调度,不会考虑CPU资源,你需要在调度器配置文件中进行相关设置,具体可参考文章:Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数和Hadoop YARN配置参数剖析(5)—Capacity Scheduler相关参数。

(3)如何设置单个任务占用的内存量和CPU数目?

答:对于MapReduce而言,每个作业的任务资源量可通过以下参数设置:

mapreduce.map.memory.mb:物理内存量,默认是1024

mapreduce.map.cpu.vcores:CPU数目,默认是1

需要注意的是,默认情况,各个调度器只会对内存资源进行调度,不会考虑CPU资源,你需要在调度器配置文件中进行相关设置。
(4) 用户给任务设置的内存量为1000MB,为何最终分配的内存却是1024MB?

答:为了易于管理资源和调度资源,Hadoop YARN内置了资源规整化算法,它规定了最小可申请资源量、最大可申请资源量和资源规整化因子,如果应用程序申请的资源量小于最小可申请资源量,则YARN会将其大小改为最小可申请量,也就是说,应用程序获得资源不会小于自己申请的资源,但也不一定相等;如果应用程序申请的资源量大于最大可申请资源量,则会抛出异常,无法申请成功;规整化因子是用来规整化应用程序资源的,应用程序申请的资源如果不是该因子的整数倍,则将被修改为最小的整数倍对应的值,公式为ceil(a/b)*b,其中a是应用程序申请的资源,b为规整化因子。

以上介绍的参数需在yarn-site.xml中设置,相关参数如下:

yarn.scheduler.minimum-allocation-mb:最小可申请内存量,默认是1024

yarn.scheduler.minimum-allocation-vcores:最小可申请CPU数,默认是1

yarn.scheduler.maximum-allocation-mb:最大可申请内存量,默认是8096

yarn.scheduler.maximum-allocation-vcores:最大可申请CPU数,默认是4

对于规整化因子,不同调度器不同,具体如下:

FIFO和Capacity Scheduler,规整化因子等于最小可申请资源量,不可单独配置。

Fair Scheduler:规整化因子通过参数yarn.scheduler.increment-allocation-mb和yarn.scheduler.increment-allocation-vcores设置,默认是1024和1。

通过以上介绍可知,应用程序申请到资源量可能大于资源申请的资源量,比如YARN的最小可申请资源内存量为1024,规整因子是1024,如果一个应用程序申请1500内存,则会得到2048内存,如果规整因子是512,则得到1536内存。

(5)我们使用的是Fairscheduler,配置了多个队列,当用户提交一个作业,指定的队列不存在时,Fair Scheduler会自动创建一个新队列而不是报错(比如报错:队列XXX不存在),如何避免这种情况发生?

答:在yarn-site.xml中设置yarn.scheduler.fair.allow-undeclared-pools,将它的值配置为false(默认是true)。

目录
相关文章
|
1月前
|
数据采集 自然语言处理 监控
2026年企业有哪些agent应用场景?Agent在客服与营销中的落地场景应用
2026年,企业Agent深度落地客服与营销场景:Quick Audience实现全域用户识别与智能旅程编排;Quick Service支持多层级意图理解与情感化服务;Quick BI提供自然语言分析与实时决策辅助;Dataphin夯实数据治理底座。五大能力闭环协同,驱动人机共智升级。(239字)
|
存储 网络安全
vscode连接远程阿里云服务器
vscode连接远程阿里云服务器
|
3月前
|
人工智能 API 数据处理
【最新】OpenClaw阿里云/本地部署保姆级教程+Skills集成+百炼API配置+常见问题解答
2026年3月,OpenClaw(小龙虾AI)的Skills生态已突破1.3万个,涵盖办公自动化、数据处理、联网搜索、AI绘画、定时任务等全场景,成为OpenClaw从“单纯对话”升级为“全能工具”的核心支撑。很多用户部署完OpenClaw后,发现本体只能简单聊天,无法实现自动化办公、数据处理等实用功能,核心原因就是没有正确集成Skills——就像智能手机只装了系统,没装任何应用,无法发挥真正价值。
1640 15
|
4月前
|
人工智能 运维 数据可视化
2026年阿里云计算巢新手零基础部署OpenClaw(Clawdbot)保姆级教程
2026年,AI自动化代理技术迎来全民普及,OpenClaw(原Clawdbot、曾用名Moltbot)凭借“开源可控、自然语言驱动、插件化扩展”的核心特性,成为个人办公提效、轻量团队数字化转型的首选工具。它彻底打破传统AI“只对话不执行”的局限,通过标准化Skills(技能)生态,让AI具备网页自动化、邮件管理、代码开发、数据处理等具象化操作能力,真正实现“输入指令、全程自动化落地”的核心价值,被用户亲切称为“7×24小时不下班的AI数字员工”。
724 3
|
4月前
|
人工智能 监控 搜索推荐
阿里云万小智建站使用教程:对话式AI建站,直接说需求,10分钟网站上线!
阿里云万小智是对话式AI建站工具,用户只需口述需求,10分钟即可完成网站搭建。教程涵盖四大阶段:域名备案(1–20工作日)、AI模板设计、一键发布上线、SEO推广与流量监控,全程零代码操作,新手友好。
896 5
|
12月前
|
存储 弹性计算 运维
阿里云经济型e与通用算力型u1实例有何不同?性能、场景、价格对比与选型参考
在我们选择阿里云服务器实例规格时,经济型e实例和通用算力型u1实例因高性价比与广泛的适用性,深受个人开发者以及中小企业的喜爱。这两款实例不仅在价格上极具竞争力,而且在性能、稳定性以及适用场景方面也各有长处。它们之间究竟存在怎样的区别?在性能表现和适用场景上又有哪些不同?我们又该如何做出选择呢?本文会详细解读这两款实例的性能特点、适用场景、价格优势,以供大家参考。
|
6月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过生命线、控制焦点和消息等元素,直观展现系统动态协作过程,强调交互的时间顺序与并发行为,常用于分析和设计系统逻辑。
|
6月前
|
供应链 监控 安全
区块链BaaS应用:利用阿里云平台快速发行和管理数字资产
阿里云区块链服务(BaaS)助力企业高效构建数字资产平台,支持多链部署、智能合约开发与全生命周期管理。涵盖发行、交易、清算及审计追溯,适用于数字藏品、积分通证、供应链金融等场景,提供安全合规、弹性可扩展的一站式解决方案。
|
8月前
|
Linux iOS开发 计算机视觉
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
591 0
|
传感器 人工智能 自然语言处理
人工智能数据
人工智能数据
997 1