大数据分布式计算引擎用虚拟CPU的核心原因?

2024-03-25 04:36

本文主要是介绍大数据分布式计算引擎用虚拟CPU的核心原因?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        两个核心原因:

        第一:为了屏蔽不同服务器之间的CPU算力差异。

        第二:为了增加集群可提交的任务数量以及提高单个CPU的使用效率。

        当我们做大数据开发用分布式计算引擎提交任务时,一般都会给每个提交的任务分配对应的内存和CPU资源。在给一个分布式任务比如spark分配CPU核心数量时,这个核心数其实指的是虚拟核心数。

        为什么是虚拟不是真实的核心数量呢?因为不同的服务器的计算能力是不同的,大数据集群是由多台服务器组合而成,在实际项目中这些服务器的数量可能会随着业务规模的不断扩大而持续的增加,就会引发别的问题,每个批次采购的服务器其型号和配置可能都是不一样的,可能导致不同的服务器之间其CPU的计算能力是不一样的;不同等级的CPU核心数以及每个核心的线程数也不一样,问题随之而来既然这些算力异构的CPU出现在了同一个集群中,那为了方便集中管理这些计算资源,让每一颗不同的CPU算力都能被充分和公平的调度,于是就想到用虚拟核心数来代替传统的物理核心数进行CPU资源的分配;比如有两颗算力不同的CPU他们的核心数或者总线程数是一样的,但是前者的算力是后者算力的两倍,那么在设置虚拟核心数量的时候前者就可以将物理核心数与虚拟核心数的配比设置为1:2,而对于后者物理核心数与虚拟核心数的配比设置为1:1,这样一来通过虚拟核心数的分配方式相同的虚拟核心数量就代表着相同的算力可以有效屏蔽不同CPU之间的算力差异,让算力不同的服务器之间尽可能的保证相同的计算负载。

        分布式计算引擎用虚拟核心数还可以让CPU资源能够得到有效的利用,因为对于集群来说其CPU的总核心数量是一定的,而每一个提交的分布式任务都会占用一定数量的CPU核心。当你提交的任务占用的总核心数量等于集群拥有的总核心数量之后就算你的集群CPU算力还有富余,你的分布式任务是没有办法再继续提交的,而为了让你的集群资源的到充分的利用一般都会将一个物理CPU核心虚拟成两个或者多个来增加集群可提交的任务数量以及提高单个CPU的使用效率。

这篇关于大数据分布式计算引擎用虚拟CPU的核心原因?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843850

相关文章

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S