Spark SQL 作业的 Spark 修复任务号

Posted

技术标签:

【中文标题】Spark SQL 作业的 Spark 修复任务号【英文标题】:Spark fix task number for Spark SQL jobs 【发布时间】:2016-08-09 13:13:05 【问题描述】:

我经常看到 Apache Spark 安排一系列阶段,其中涉及固定的 200 个任务。由于这种情况不断发生在许多不同的工作中,我猜这在某种程度上与 Spark 配置之一有关。任何建议该配置可能是什么?

【问题讨论】:

【参考方案1】:

200 是 shuffle 期间使用的默认分区数,由 spark.sql.shuffle.partitions 控制。它的值可以使用SQLContext.setConf在运行时设置:

sqlContext.setConf("spark.sql.shuffle.partitions", "42")

RuntimeConfig.set

spark.conf.set("spark.sql.shuffle.partitions", 42)

【讨论】:

谢谢,去试试。但是你建议 42 有什么原因吗?我正在考虑增加数量。 只是因为这是所有问题的答案 :) 说真的,尽管这取决于您的数据和设置,所以我只是使用了想到的第一个数字。 解决了这个问题。就我而言,我将其增加到 512。

以上是关于Spark SQL 作业的 Spark 修复任务号的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spark 作业服务器的 Spark SQL 作业中的错误“此上下文的作业类型无效”

Spark 学习总结

spark 任务运行原理

spark核心组件的介绍

Spark 学习总结

Spark核心作业调度和任务调度之DAGScheduler源码