一、spark原理

参考:

Hive on Spark调优_窗外的屋檐-CSDN博客_spark.executor.instancesSpark资源参数调优参数_TURING.DT-CSDN博客_spark 资源参数

1、Job——对应action算子:

包含很多task的并行计算,可以认为是Spark RDD 里面的action,每个action的计算会生成一个job。

用户提交的Job会提交给DAGScheduler,Job会被分解成Stage和Task。

2、Stage——对应Shuffle过程:

一个Job会被拆分为多组Task,每组任务被称为一个Stage就像Map Stage, Reduce Stage。

Stage的划分在RDD的论文中有详细的介绍,简单的说是以shuffle和result这两种类型来划分。在Spark中有两类task,一类是shuffleMapTask,一类是resultTask,第一类task的输出是shuffle所需数据【Map阶段】,第二类task的输出是result【Reduce阶段】,stage的划分也以此为依据,shuffle之前的所有变换是一个stage,shuffle之后的操作是另一个stage。

3、Task——对应一个rdd有多少个partition:

即 stage 下的一个任务执行单元,一般来说,一个 rdd 有多少个 partition,就会有多少个 task,因为每一个 task 只是处理一个 partition 上的数据.

4、Executor:

Executor是一个执行Task的容器,应用程序运行的监控和执行容器

二、常见错误和解决方法

org.apache.spark.SparkException: Could not execute broadcast in 1500 secs. You can increase the timeout for broadcasts via spark.sql.broadcastTimeout or spark.sql.broadcastMaxRetries or disable broadcast join by setting spark.sql.autoBroadcastJoinThreshold to -1

它的主要职责是:

  1、初始化程序要执行的上下文SparkEnv,解决应用程序需要运行时的jar包的依赖,加载类。

  2、同时还有一个ExecutorBackend向cluster manager汇报当前的任务状态,这一方面有点类似hadoop的tasktracker和task。

总结:

Spark application的运行单元是task,资源分配单元是executor。task数的多少是和RDD的分区数相关的,整个application的并行度是 Executor数 * Task

二、参数调优

1、必调参数

num-executors/spark.executor.instances

executor-memory/spark.executor.memory

executor-cores/spark.executor.cores

2、优化参数

driver-memory:使用collect算子将RDD的数据全部拉取到Driver上进行处理,那么Driver的内存就要足够大,否则就会出现OMM内存溢出;

spark.default.parallelism:num-executors * executor-cores的2~3倍较为合适;

该参数用于设置每个stage的默认task数量。

3、spark.driver.maxResultSize

collect操作,shuffle操作的时候要调大此参数

三、一些概念

spark-session

spark-context

四、常见错误

1、Job aborted due to stage failure: Total size of serialized results of 3979 tasks (1024.2 MB) is bigger than spark.driver.maxResultSize (1024.0 MB)

锁定了是spark.driver.maxResultSize引起的,该参数控制worker送回driver的数据大小,一旦操过该限制,driver会终止执行。所以,我加大了该参数,结果执行成功。

spark原理参数调优相关推荐

  1. spark 资源参数调优

    资源参数调优 了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了.所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源使 ...

  2. spark重要参数调优建议:spark.default.parallelism设置每个stage默认的task数量

    spark.default.parallelism 参数说明:该参数用于设置每个stage的默认task数量.这个参数极为重要,如果不设置可能会直接影响你的Spark作业性能. 参数调优建议:Spar ...

  3. Spark原理与调优

    Spark core 作业提交流程 1. client运行脚本提交命令. 2. SparkSubmit实例化SparkSubmitArguments进行参数解析. 3. SparkSubmit实例化Y ...

  4. Spark Submit提交及参数调优

    https://www.cnblogs.com/LHWorldBlog/p/8414342.html https://www.cnblogs.com/haoyy/p/6893943.html spar ...

  5. 由美团技术文章整理---spark性能优化基础篇--开发调优与资源参数调优

    文章地址1:Spark性能优化指南--基础篇 - 美团技术团队 文章地址2:Spark性能优化指南--高级篇 - 美团技术团队 目录 一.关于性能优化基础篇--开发调优 1.避免创建重复RDD (1) ...

  6. Spark系列之Spark的资源调优

    title: Spark系列 第十一章 Spark的资源调优 11.1 概述 ​ 在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在sparksubmit命令中 ...

  7. HBase原理 | HBase Compaction介绍与参数调优

    我们知道,数据达到HBase服务端会写WAL-写Memstore,然后定期或满足一定条件时刷写磁盘生成一个HFile文件,随着时间推移生成的HFile会越来越多,将会影响HBase查询性能,同时会对H ...

  8. hive sql 报错后继续执行_Hive优化之Spark执行引擎参数调优(二)

    Hive是大数据领域常用的组件之一,主要是大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的的一个点,因此掌握一些Hive调优是必不可少的一项技能.影响Hive效率的主要有数据 ...

  9. 粒子群算法原理|python实现|参数调优

    粒子群算法是比较有名的群体智能算法之一,其他群体智能算法还包括蚁群算法.鱼群算法.人工蜂群算法等.今天学习一下粒子群算法. 文章目录 算法原理(Inspiration) 优化过程 python实现 参 ...

最新文章

  1. C语言中二维指针,C语言中怎样区分一维指针和二维指针?
  2. iOS-UIImageView的总结
  3. 使用Spring boot,Thymeleaf,AngularJS从零开始构建新的Web应用程序–第3部分
  4. 转]从一个男人关注的事情上 可以看出他的修养和抱负
  5. hp打印机没有右键扫描_安装HP打印机报错 0x000006be解决方法,图文操作步骤详解...
  6. 8音度dsp调音教程_以速腾为例,对比加高品质DSP功放前后音响效果
  7. eNSP教程 —— 物理机如何使用web登录到防火墙
  8. Git——Gitlab服务单机构建
  9. CISSP考试认证心得
  10. 如何应对硬盘无法识别通电异响等那些七七八八的物理故障
  11. *rock ,scissors ,paperpku 2339
  12. IC学习笔记9——多比特信号的跨时钟域处理方法之“MUX/DMUX同步器”
  13. 哪里可以在线观看《人再囧途之泰囧》
  14. Microsoft 提供的 USB 驱动程序
  15. Python——通过while、for、if—else完成一个地铁乘车消费计算器
  16. Linux怎么进入根目录查看文件
  17. (淘宝无限适配)移动手机端rem布局详解(转载非原创)
  18. 浏览器无法访问hdfs界面问题
  19. 模拟小信号调理电路(智能车电磁组)
  20. Star miscellaneous

热门文章

  1. 树莓派安装系统详细步骤
  2. 已经发车的票还能取出来吗_网上买的火车票在火车开车后还能取出票吗?
  3. JS 链判断运算符(?.)
  4. 第五章 决策树——学习笔记
  5. Vue2.0开发之——Vue基础用法-事件绑定$event(20)
  6. 从键盘输入一些字符,逐个把它们写到指定的文件,直到输入一个@为止。 示例1: 请输入文件名: out.txt 请输入字符串: Python is open.@ 执行代码后,out.txt文
  7. 快过年了,搞笑开启过年模式
  8. 一个dsp最小系统至少要有_F2812DSP的最小系统设计
  9. 一文教会你风格迁移CycleGAN从入门到高阶再到最终成功魔改(附成功魔改代码)
  10. nvme固态必须uefi启动吗_听说这招能在3秒内启动Windows10,很多高手都这么做,你知道吗?...