工作常用之Spark调优一
Posted 码农Maynor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作常用之Spark调优一相关的知识,希望对你有一定的参考价值。
第 1 章 Explain 查看执行计划 Spark 3.0 大版本发布, Spark SQL 的优化占比将近 50% 。 Spark SQL 取代 Spark Core ,成 为新一代的引擎内核,所有其他子框架如 Mllib 、 Streaming 和 Graph ,都可以共享 Spark SQL 的性能优化,都能从 Spark 社区对于 Spark SQL 的投入中受益。 要优化 SparkSQL 应用时,一定是要了解 SparkSQL 执行计划的。发现 SQL 执行慢的根 本原因,才能知道应该在哪儿进行优化,是调整 SQL 的编写方式、还是用 Hint 、还是调参, 而不是把优化方案拿来试一遍。 1.1 准备测试用表和数据 1 、上传 3 个 log 到 hdfs 新建的 sparkdata 路径 2 、 hive 中创建 sparktuning 数据库 3 、执行 spark-submit --master yarn --deploy-mode client --driver-memory 1g --num executors 3 --executor-cores 2 --executor-memory 4g --class com.atguigu.sparktuning.utils. InitUtil spark-tuning-1.0-SNAPSHOT-jar with-dependencies.jar 1.2 基本语法 .explain( mode="xxx" ) 从 3.0 开始, explain 方法有一个新的参数 mode ,该参数可以指定执行计划展示格式: ➢ explain(mode="simple") :只展示物理执行计划。 ➢ explain(mode="extended") :展示物理执行计划和逻辑执行计划。 ➢ explain(mode="codegen") :展示要 Codegen 生成的可执行 Java 代码。 ➢ explain(mode="cost") :展示优化后的逻辑执行计划以及相关的统计。 ➢ explain(mode="formatted") :以分隔的方式输出,它会输出更易读的物理执行计划, 并展示每个节点的详细信息。 1.3 执行计划处理流程![](https://image.cha138.com/20220914/06c1ab99f1ad4a62bbc4f66ec125656e.jpg)
核心的执行过程一共有 5 个步骤:
![](https://image.cha138.com/20220914/4f0a7290268d4fba882a94f99d3b5900.jpg)
spark-submit --master yarn --deploy-mode client --driver-memory 1g --num
executors 3 --executor-cores 2 --executor-memory 4g --class
com.atguigu.sparktuning.explain.ExplainDemo spark-tuning-1.0-SNAPSHOT
jar-with-dependencies.jar
以上是关于工作常用之Spark调优一的主要内容,如果未能解决你的问题,请参考以下文章