Spark 性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。

资源的分配在使用脚本提交 Spark 任务时进行指定,标准的 Spark 任务提交脚本如下所示:

bin/spark-submit \
--class com.zxl.spark.Analysis \
--master yarn
--deploy-mode cluster
--num-executors 80 \
--driver-memory 6g \
--executor-memory 6g \
--executor-cores 3 \
/usr/opt/modules/spark/jar/spark.jar \

可以进行分配的资源如表所示:
调节原则:尽量将任务分配的资源调节到可以使用的资源的最大限度。对于具体资源的分配,我们分别讨论 Spark 的两种 Cluster 运行模式:

  • 第一种是 Spark Standalone 模式,你在提交任务前,一定知道或者可以从运维部门获取
    到你可以使用的资源情况,在编写 submit 脚本的时候,就根据可用的资源情况进行资
    源的分配,比如说集群有 15 台机器,每台机器为 8G 内存,2 个 CPU core,那么就指
    定 15 个 Executor,每个 Executor 分配 8G 内存,2 个 CPU core。
  • 第二种是 Spark On Yarn 模式,由于 Yarn 使用资源队列进行资源的分配和调度,在编写
    submit 脚本的时候,就根据 Spark 作业要提交到的资源队列,进行资源的分配,比如资
    源队列有 400G 内存,100 个 CPU core,那么指定 50 个 Executor,每个 Executor 分配
    8G 内存,2 个 CPU core。
    对各项资源进行了调节后,得到的性能提升会有如下表现:
    补充:生产环境 Spark submit 脚本配置
bin/spark-submit \
--class com.zxl.spark.WordCount \
--master yarn\
--deploy-mode cluster\
--num-executors 80 \
--driver-memory 6g \
--executor-memory 6g \
--executor-cores 3 \
--queue root.default \
--conf spark.yarn.executor.memoryOverhead=2048 \
--conf spark.core.connection.ack.wait.timeout=300 \
/usr/local/spark/spark.jar

参数配置参考值:

➢ --num-executors:50~100
➢ --driver-memory:1G~5G
➢ --executor-memory:6G~10G
➢ --executor-cores:3
➢ --master:实际生产环境一定使用 yarn

Spark常规性能调优一:最优资源配置相关推荐

  1. Spark常规性能调优三:并行度调节

    Spark 作业中的并行度指各个 stage 的 task 的数量. 如果并行度设置不合理而导致并行度过低,会导致资源的极大浪费,例如,20 个 Executor,每个 Executor 分配 3 个 ...

  2. Spark常规性能调优二:RDD 优化

    RDD 复用 在对 RDD 进行算子时,要避免相同的算子和计算逻辑之下对 RDD 进行重复的计算 对上图中的 RDD 计算架构进行修改,得到如下图所示的优化结果: RDD 持久化 在 Spark 中, ...

  3. Spark 性能常规性能调优广播大变量_大数据培训

    常规性能调优四:广播大变量 默认情况下,task中的算子中如果使用了外部的变量,每个task都会获取一份变量的复本,这就造成了内存的极大消耗.一方面,如果后续对RDD进行持久化,可能就无法将RDD数据 ...

  4. Apache Spark Jobs 性能调优(二)

    Apache Spark Jobs 性能调优(二) 调试资源分配 调试并发 压缩你的数据结构 数据格式 在这篇文章中,首先完成在 Part I 中提到的一些东西.作者将尽量覆盖到影响 Spark 程序 ...

  5. Apache Spark Jobs 性能调优(一)

    Apache Spark Jobs 性能调优(一) Spark 是如何执行程序的 选择正确的 Operator 什么时候不发生 Shuffle 什么情况下 Shuffle 越多越好 二次排序 结论 当 ...

  6. Spark的性能调优

    下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的. 基本概念和原则 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起: 每一台 ...

  7. Spark开发性能调优

    Spark开发性能调优 标签(空格分隔): Spark –Write By Vin 1. 分配资源调优 Spark性能调优的王道就是分配资源,即增加和分配更多的资源对性能速度的提升是显而易见的,基本上 ...

  8. Apache Spark Jobs 性能调优

    当你开始编写 Apache Spark 代码或者浏览公开的 API 的时候,你会遇到各种各样术语,比如transformation,action,RDD(resilient distributed d ...

  9. Spark+Alluxio性能调优十大技巧

    戳蓝字"CSDN云计算"关注我们哦! 由于统一访问对象存储(如S3)和HDFS数据的场景的出现和普及,Apache Spark结合Alluxio的大数据栈越来越受欢迎.此外,越来越 ...

最新文章

  1. java动态打jar包_java动态加载jar包
  2. 异常记录(CPU产生的异常和软件模拟产生的异常)
  3. java 好用的工具类
  4. 贫穷中透着零基础的单人制作游戏手册之二:做游戏不光靠创意
  5. (转)Spring Boot(十八):使用 Spring Boot 集成 FastDFS
  6. freemarker 数组转字符串_TypeScript 实战算法系列(一):实现数组栈与对象栈
  7. 移动硬盘主分区格式化后,逻辑分区找不到的解决方法
  8. Oracle数据库的学习
  9. 鼠标宏设置到鼠标左键,重置回去!
  10. rainmeter皮肤编写教程
  11. Invalid MEX-file '/xxx/lk.mexa64': /xxx/anaconda3/lib/./libharfbuzz.so.0: undefined symbol: FT_Done_
  12. JAVA根据开始时间和结束时间获取天数
  13. android答辩问题,安卓毕业设计答辩(流程、准备、模板及注意事项)
  14. 《如何正确评估自己的工作能力》--马薇薇
  15. Android 实现 遮罩动画效果
  16. 映射报错怎么解决 Ambiguous mapping. Cannot map ‘basicPersonStreamDataController‘ method
  17. 推荐个东西,GPGPU开发
  18. JS中的DOM与BOM
  19. 老嘤学习笔记 python异常处理
  20. 基于laravel免费开源CMS推荐

热门文章

  1. MySQL 笔记2 -- MySQL 基础
  2. AI成为世界互联网大会重要议题 第四范式AutoML登上央视
  3. 工业用微型计算机(18)-指令系统(13)
  4. mxnet基础到提高(4)-- Dense层基础
  5. 【深度学习】使用深度学习进行手语识别
  6. 【机器学习】27 个机器学习、数学、Python 速查表
  7. 目标检测的“尽头”竟是语言建模?Hinton团队提出Pix2Seq:性能优于DETR
  8. 从Deepwalk到Node2vec
  9. 推荐系统里的那些坑儿
  10. 推荐算法炼丹笔记:序列化推荐系统