首页 > 解决方案 > spark.executor.cores vs spark.executor.instance 我应该增加哪一个?

问题描述

为了并行化 Spark 作业,可以增加核心数量和执行器实例数量。这里的权衡是什么,应该如何选择两个配置的实际值?

标签: pyspark

解决方案


  • 增加编号的好处。核心数超过没有。executor 的优势与多线程优于多进程的优势相同。
  • 核心数增加数。每个执行程序的线程数和没有。执行者的数量将增加。Java 进程(即集群上的所有 Spark 执行程序)。
  • 如果您希望在同一个数据集/数据帧上并行执行多个操作,那么每个执行程序的核心数不增加
  • 但是,如果您希望以相对较少的并行度来处理大量数据集/数据帧,那么您可以在键列上对您的一天进行分区,Spark 将在分配给相应分区的执行程序上处理您的数据。

我建议您阅读Cloudera的这篇博文。

通过改变编号来为您的 PySpark 工作进行基准测试。执行人反对没有。执行器线程是为您的应用程序提供正确配置的最佳方式。


推荐阅读