【Spark Operator】核数设置Cores/Cores Limit/Cores Request,你搞清楚没有?

2023-11-13

我们先看下 Spark 3.0 官方文档,关于几个 Core 的参数的解读。

spark.driver.cores
spark.kubernetes.driver.request.cores
spark.kubernetes.driver.limit.cores
spark.executor.cores
spark.kubernetes.executor.request.cores
spark.kubernetes.executor.limit.cores

此图为k8s模式的request/limit.cores
此图是spark的通用配置core

如果看 on k8s 部分的源码,你会发现 spark.kubernetes.driver.request.cores 没有设置,spark.driver.cores 是会作为其替补值注入的。所以最重要的参数是 spark.driver.coresspark.kubernetes.driver.limit.cores
在这里插入图片描述
但是如果你 spark.kubernetes.driver.request.cores=4 也填了,spark.driver.cores=1 也填了,那么实际上这个 Driver Pod 和 Driver 进程分别是见到几个 core 呢?
笔者测试过,如果安装上述方式填入的话,Driver Pod 的 Driver 容器依然是以4个 cores 的资源量创建的,不信可以进入容器 ls /proc/cpuinfo 查看一下。但是 Driver 进程其实只会认为只有1个 core,原因很简单,这个 spark.driver.core 跟 on Yarn/Standalone/Local 模式是一样的,那些集群模式都没有 spark.kubernetes.driver.request.cores 这些参数,所以当然也只看 spark.driver.cores 了,给 Driver 进程分配的核数就只有1个,当然了,Executor 的 Cores 参数也是一样的。
需要提醒的是,Spark Operator,也需要填好几个 Core 的参数,而且这是在 CRD 的 Validation 有做校验的。所以正常安装 Spark Operator,至少是需要填 corescoreLimit 的,但是如果 core 没填,Validation 是会给加个默认的最小值1的,所以这里一定要注意,不要以为 Spark Application 填了 coreLimitcoreRequets 就够了,如果 core 没填,会给塞一个 spark.driver.cores=1 进去 SparkConf 的。
就是这个default方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关于填 spark.driver.coresspark.kubernetes.driver.request/limit.cores,还可以通过 SparkUI 的 Enviroment Tab 去确认,到底设置对了没有,另外,还可以通过 task 的并行度来查看,比如说 Executor 申请了4个核,如果发现并行度只有1,也就是所有 task 是串行执行的,就有必要检查一下 spark.executor.cores 的设置了。
在这里插入图片描述
串行的 task
这才是真正的并行
如果这几个 core 的参数没有设置正确,最大的问题就是资源 cpu 利用率了,容器申请了 4 个核,实际上只用到了1个核o(╯□╰)o。像下图这样的利用率才是正常的。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Spark Operator】核数设置Cores/Cores Limit/Cores Request,你搞清楚没有? 的相关文章

随机推荐

  • python数据分析与可视化——第五章实训

    1 导入模块 import pandas as pd import numpy as np 2 获取数据 fdata pd read excel F 专业课程作业 python时空数据分析与可视化 tips mod xls fdata he
  • 安卓APP_ 布局(6) —— ConstrainLayout约束布局(重要)

    摘自 安卓APP 布局 6 ConstrainLayout约束布局 重要 作者 丶PURSUING 发布时间 2021 04 12 10 49 42 网址 https blog csdn net weixin 44742824 articl
  • B站粉丝数显示器代码解析学习

    代码来源B站 会飞的阿卡林https www bilibili com video BV14W41167tY 学习使用ESP8266的WIFI无线连接 在这里可以了解到SPI协议在Arduino中的使用 后来也使用ESP8266做了其他项目
  • 交换机与路由器技术-36-端口镜像

    目录 一 端口镜像 1 1 概述 1 2 目的 1 3 功能 1 4 端口镜像应用场景 1 4 1 本地端口镜像 SPAN 1 4 2 远程端口镜像 RSPAN 1 5 配置本地端口 1 6 配置远程端口镜像 RSPAN 一 端口镜像 1
  • Rabbitmq和kafka有什么区别?

    RabbitMQ和Kafka都是流行的消息队列系统 它们都可以用于构建分布式系统中的消息传递机制 虽然它们都可以用于相似的场景 但它们之间仍然存在一些重要的区别 一 数据处理方式不同 RabbitMQ是一个传统的AMQP消息队列 它使用队列
  • Java语言实现通讯录,联系人信息存在数据库里

    通讯录管理 问题描述 编写一个简单的通讯录管理程序 通讯录中需要存储姓名 地址 电话号码 邮政编码四项 还可以存储Email 家庭电话等信息 基本要求 程序应提供的基本管理功能有 1 添加 即增加一个人的记录到通信录中 2 显示 即在屏幕上
  • postman 将返回值设置为环境变量

    代码如下 var jsonData JSON parse responseBody pm globals set token jsonData data token
  • win2012 管理用户账号点滴

    1 c windows system32 config SAM 存储本地用户账号 2 cmd gt set 可以查看很多信息 包括logon server 3 创建一般服务账号的时候 要选择 密码永不过期 4 cmd gt net user
  • 【数据结构】线性表的顺序存储结构

    线性表 由n n 0 个数据元素 结点 a1 a2 an组成的有限序列 其中数据元素的个数n定义为表的长度 当n 0时称为空表 常常将非空的线性表 n gt 0 记作 a1 a2 an 这里的数据元素ai 1 i n 只是一个抽象的符号 其
  • DNS & bind详解

    文章目录 1 DNS基础知识 1 1 DNS的出现及演化 1 2 什么是DNS 1 3 域的分类 1 4 主机名 域名 FQDN 1 5 DNS解析流程 1 6 DNS分类 1 7 资源记录 2 DNS安装配置 2 1 安装DNS 2 2
  • 《C++ Primer》学习笔记(十六):模板与泛型编程

    C Primer 学习笔记 十六 模板与泛型编程 定义模板 函数模板 类模板 模板参数 控制实例化 模板实参推断 类型转换与模板类型参数 尾置返回类型与类型转换 模板实参推断和引用 转发 可变参数模板 模板特例化 定义模板 函数模板 tem
  • 简单记录我的第一个云服务器:华为云服务器

    一直想买个服务器用来瞎鼓捣 或者说把之前的一些乱七八糟的小项目部署到服务器给自己的 object 看 但是我也很无奈昂 一个菜鸡 临近毕业了说来就来 于是就买了个华为云服务器 毕竟在某地培训很是无聊 服务器如下 因为用的是linux系统 需
  • 越来越火的Serverless(无服务器计算),到底是个啥?

    今天这篇文章 我们来聊一个云计算领域的热门概念 Serverless 到底什么是Serverless 英语好的童鞋 可能一眼就看出来了 Serverless是由Server和less两个词根组成的词 从字面上理解 就是 无服务器 行业通常所
  • 【C++】类与类之间的 5 种关系

    文章目录 前沿 1 继承关系 2 关联关系 3 聚合关系 4 组合关系 5 依赖关系 6 比较五种关系 前沿 该文章就是简要的总结一下面向对象的 类与类之间的关系 熟悉类与类之间的关系 能够帮助我们更好的设计出合理的类 1 继承关系 继承关
  • Python进阶-----面向对象3.0(面对对象三大特征之---封装)

    目录 前言 什么是封装 Python私有化封装 习题 前言 上一期是讲解Python中类的私有属性和方法 其实很好理解 我给一个类中的部分属性进行加密拒绝访问 上一期链接Python进阶 面向对象2 0 特有属性和方法与私有属性和方法 Py
  • VirtualBox安装Ubuntu(20.10桌面版)教程

    由于学校的课程需要 需要安装一个Linux系统 根据电脑配置 8G运存 250G硬盘剩余 最终选择了使用虚拟机 VirtualBox 免费开源 上安装Linux系统 Ubuntu 使用最多 BUG少 界面简洁 的方案 根据需求 我将安装过程
  • DDoS攻击及防御技术综述

    DDoS攻击及防御技术综述 本文内容为论文转载 摘 要 分布式拒绝服务攻击 Distributed Denial of Service DDoS 是互联网上有严重威胁的攻击方式之一 难以完全对其进行防御 介绍DDoS攻击的技术原理 在此基础
  • 如何在CSDN中发布博客

    1 首先打开CSDN官网 进行注册然后登录 登录以后看到的界面如下 2 进入会员中心右边有个创作中心点进去 看到界面如下 3 在上界面中 可以单击 发布 直接写博客 如下所示 4 也可以单击 Markdown编辑器 或者 富文本编辑器 进入
  • react入门(六)——组合组件

    什么是组合组件 大家都知道我们在做项目的时候不可能只有一个组件或两个组件 是由很多个组件组合使用的 而且每个组件之间或多或少的有些关系 我把这些组件就称作组合组件 例如我们想要实现以下效果 分析 拆分为静态组件 我们可以将他拆分为三个组件
  • 【Spark Operator】核数设置Cores/Cores Limit/Cores Request,你搞清楚没有?

    我们先看下 Spark 3 0 官方文档 关于几个 Core 的参数的解读 spark driver cores spark kubernetes driver request cores spark kubernetes driver l