spark常用参数调优

news2024/9/8 23:56:30

目录

  • 1.set spark.grouping.sets.reference.hive=true;
  • 2.set spark.locality.wait.rack=0s
  • 3.set spark.locality.wait=0s;
  • 4.set spark.executor.memoryOverhead =2G;
  • 5.set spark.sql.shuffle.partitions =1000;
  • 6.set spark.shuffle.file.buffer =256k
  • 7. set spark.reducer.maxSizeInFlight =96M

1.set spark.grouping.sets.reference.hive=true;

在Spark中,设置spark.grouping.sets.reference.hive参数为true可以启用Hive引用的分组集功能。这个参数的作用是使Spark使用Hive的引用实现来处理GROUPING SETS语法。GROUPING SETS语法用于在GROUP BY子句中指定多个聚合级别,以便一次性计算多个聚合结果。启用这个参数可以让Spark使用Hive引用实现来执行这些操作,以确保与Hive兼容性。

2.set spark.locality.wait.rack=0s

在Spark中,spark.locality.wait.rack参数用于设置在任务启动之前等待数据本地性(locality)的时间阈值。数据本地性是指任务所需的数据是否已经在任务执行节点的本地存储介质上。在集群中,数据本地性可以分为PROCESS_LOCAL(数据在任务执行节点的内存中)、NODE_LOCAL(数据在任务执行节点的磁盘中)和RACK_LOCAL(数据在任务执行节点的同一机架上)。

通过设置spark.locality.wait.rack参数为0s,表示任务不会等待数据在同一机架上的本地性。这意味着Spark任务将不会等待数据在同一机架上可用,而会立即启动。这可能会提高任务的启动速度,但也可能导致更多的数据远程读取,因此需要根据具体情况进行权衡。

3.set spark.locality.wait=0s;

在Spark中,spark.locality.wait参数用于设置任务启动之前等待数据本地性的时间阈值。数据本地性是指任务所需的数据是否已经在任务执行节点的本地存储介质上。在集群中,数据本地性可以分为PROCESS_LOCAL(数据在任务执行节点的内存中)、NODE_LOCAL(数据在任务执行节点的磁盘中)、RACK_LOCAL(数据在任务执行节点的同一机架上)和ANY(任意位置)。

通过设置spark.locality.wait参数为0s,表示任务不会等待数据在任何本地性级别上可用,而会立即启动。这可能会提高任务的启动速度,但也可能导致更多的数据远程读取,因此需要根据具体情况进行权衡。

4.set spark.executor.memoryOverhead =2G;

在Spark中,spark.executor.memoryOverhead参数用于设置每个Executor的内存使用的额外空间。这个额外的空间用于Executor的内部结构和外部过程,例如任务执行和数据结构缓存。设置这个参数可以确保Executor有足够的内存用于执行任务和管理数据,同时避免内存溢出的情况发生。

5.set spark.sql.shuffle.partitions =1000;

在Spark中,spark.sql.shuffle.partitions参数用于设置在执行shuffle操作(例如group by或者join)时产生的分区数量。通过设置这个参数,可以控制shuffle操作的并行度,从而影响任务的性能和资源利用。

在Reduce阶段,RDD的聚合会触发shuffle操作,聚合后的RDD的partition数目跟具体操作有关,RDD在计算的时候,每个分区都会起一个task,所以rdd的分区数目决定了总的task数目。申请的计算节点(Executor)数目和每个计算节点核数,决定了你同一时刻可以并行执行的task。

比如:RDD有100个分区,那么计算的时候就会生成100个task,设置task间并行的参数是conf spark.sql.shuffle.partitions=100,你的资源配置为10个计算节点,(执行器excutor) --num-executors 10 默认为2一般设置在50-100之间,每个2个核,executor-cores 2 一般 2~4 为宜。同一时刻可以并行的task数目为20,计算这个RDD就需要5个轮次。Task被执行的并发度 = Executor数目 * 每个Executor核数(=core总个数)。

6.set spark.shuffle.file.buffer =256k

在Spark中,spark.shuffle.file.buffer参数用于设置在执行shuffle操作时用于缓冲数据的大小。该参数指定了每个shuffle输出文件的缓冲区大小,以字节为单位。默认为32k;

7. set spark.reducer.maxSizeInFlight =96M

在Spark中,spark.reducer.maxSizeInFlight参数用于设置每个任务从每个map任务获取的最大数据量。这个参数可以帮助控制reduce任务从map任务获取数据的速度,从而避免在网络传输过程中发生内存溢出或网络拥塞等问题。默认48M;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信创系统上的数据加密和防泄露该如何对应?

随着信息技术的快速发展和数字化转型的深入推进,关于信创加密和信创防泄露的信息安全问题日益凸显。特别是在国家战略层面,推动自主可控的信息技术体系建设成为重中之重。深信达信创沙盒作为一款基于国产操作系统(如麒麟、统信等)…

Hugo 部署与自动更新(Git)

文章目录 Nginx部署Hugonginx.confhugo.conf Hugo自动更新Hugo自动更新流程添加访问令牌添加web hookrust实现自动更新接口 Nginx部署Hugo nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;even…

大模型系统学习路线

随着技术的进步,大模型如OpenAI的GPT-4和Sora、Google的BERT和Gemini等已经展现出了惊人的能力-从理解和生成自然语言到创造逼真的图像及视频。所以掌握大模型的知识和技能变得越来越重要。 下面是学习大模型的一些建议,供大家参考。 必备基础知识 **…

爬虫实战-掌上高考网实战

1.确定需求:爬取什么数据爬取大学名称 2.找到数据源地址数据在哪个链接中https://api.zjzw.cn/web/api/?keyword&page1&province_id&ranktype&request_type1&size20&top_school_id[3703,2461,659,3117,597,1724]&type&uriapidata/…

【NPU 系列专栏 2.6 -- - NVIDIA Xavier SoC】

文章目录 NVIDIA Xavier SoCXavier 主要组件Xavier SoC 的型号Xavier SoC 的算力Xavier AGXXavier NXXavier 应用场景自动驾驶机器人物联网(IoT)医疗设备NPU 对比SummaryNVIDIA Xavier SoC 英伟达 Xavier SoC 是英伟达推出的一款高性能系统级芯片,专门为人工智能(AI)和自…

c# - - - ASP.NET Core 网页样式丢失,样式不对

c# - - - ASP.NET Core 网页样式丢失,样式不对 问题 正常样式是这样的。 修改项目名后,样式就变成这样了。底部的内容跑到中间了。 解决 重新生成解决方案,然后发布网站。 原因: 修改项目名之前的 div 上有个这个自定义属…

Mysql开启远程控制简化版,亲测有效

首先关闭防火墙 改表法 打开上图的CMD,输入密码进入,然后输入一下指令 1.use mysql; 2.update user set host % where user root;//更新root用户的权限,允许任何主机连接 3.FLUSH PRIVILEGES;//刷新权限,使更改生效 具体参考…

详解 @RequestHeader 注解在 Spring Boot 中的使用

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

JS+H5在线文心AI聊天(第三方接口)

源码在最后面 调用的不是文心官方接口 可以正常聊天 有打字动画 效果图 源代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…

文献笔记|综述|A Survey of Large Language Models (前3章)

A Survey of Large Language Models 题目&#xff1a;大语言模型综述 作者&#xff1a;Wayne Xin Zhao, Kun Zhou, Junyi Li et al. 来源&#xff1a;arXiv 单位&#xff1a;中国人民大学高瓴人工智能学院、中国人民大学信息学院 关键词&#xff1a;Large Language Models; Eme…

如何快速获取全网精准客流?揭秘不为人知的5大运营策略!

有同行所在的地方&#xff0c;就一定拥有咱们需要的客户。客户看的是结果&#xff0c;搜索的是问题&#xff0c;寻找的是答案。 如果没有付费流量&#xff0c;单纯靠搞免费流量&#xff0c;很多大厂的运营也会变得一文不值。一个牛逼的运营&#xff0c;不仅是会做付费流量&…

【Vue2】3-使用Vue脚手架

目录 初始化脚手架 说明 具体步骤 模板项目的结构 关于不同版本的Vue vue.config.js配置文件 ref属性 配置项props mixin&#xff08;混入&#xff09; 插件 scoped样式 总结TodoList案例 webStorage&#xff08;浏览器本地存储&#xff09; TodoList本地存储 组…

pp 5 报废 分派 替代

报废&#xff1a; 装配报废是关于成品的&#xff0c;会在生产订单自动增加数量&#xff0c;对组件有影响 但是在组件上面设置报废是不是影响成品物料的 注意&#xff1a;成品报废和组件报废数量会进行叠加的 但是物料主数据和bom同时设置报废率&#xff0c;不会叠加&#xff0…

python画蜡烛图

Claude3 Opus 在Python中&#xff0c;您可以使用各种绘图库来绘制蜡烛图&#xff0c;例如Matplotlib和Plotly。这里我以Matplotlib库为例&#xff0c;演示如何使用Python绘制蜡烛图。 首先&#xff0c;您需要安装并导入Matplotlib库。您可以使用以下命令来安装Matplotlib&…

字符串专题

1. 2. 3. 4.CtrlAltV自动生成左侧&#xff1b; 5.拼接字符串 6. 7.金额转换之CtrlAltT猛猛包裹 package 字符串; import java.util.Scanner; public class MoneyReverse {public static void main(String[] args) {//1.键盘录入一个金额Scanner sc new Scanner(System.in);i…

有关链表的oj题

203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;给出一个新的指针newnode来接收&#xff0c;cur遍历原truct ListNode* head&#xff0c;tail来接收 cur->val!val的值&#xff0c;最后返回newnode。 struct ListNode* removeElements(struct Li…

Transformer--编码器和解码器(包含掩码张量,注意力机制,多头注意力机制)

1.编码器介绍 2.掩码张量 2.1掩码张量介绍 2.2掩码张量的作用 2.3生成掩码张量的代码分 2.4掩码张量可视化 3.注意力机制 3.1什么是注意力机制 3.2注意力机制的作用 3.3计算规则以及代码分析 4.多头注意力机制 &#xff08;了解&#xff09; 4.1多头注意里机制的概念…

Web基础、apache和nginx的知识及服务搭建

一、Web基础概念和常识 Web&#xff1a;为用户提供的⼀种在互联网上浏览信息的服务&#xff0c;Web 服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联网服务&#xff0c;这些服务包括信息浏览服务&#xff0c;以及各种交互式服务&#xff0c;包括聊…

微服务--配置管理

现在依然还有几个问题需要解决&#xff1a; 网关路由在配置文件中写死了&#xff0c;如果变更必须重启微服务 某些业务配置在配置文件中写死了&#xff0c;每次修改都要重启服务 每个微服务都有很多重复的配置&#xff0c;维护成本高 这些问题都可以通过统一的配置管理器服…

DRAM组件级故障预测模型,如何提升系统可靠性?-2

一、DRAM原理与可靠性 在深入探讨DRAM系统的可靠性问题前&#xff0c;我们需要明确几个基本概念。首先&#xff0c;故障指的是可能导致系统错误的物理缺陷&#xff0c;而错误则是系统实际状态与期望状态之间的差异。故障可分为暂时性故障和永久性故障&#xff1a;前者由外部因…