Apache spark Spark任务的数量是否可以大于executor core?
当spark任务的数量大于executor core时会发生什么情况?Spark是如何处理这种情况的?我想问题有点离题了。你问的不太可能。为什么?Apache spark Spark任务的数量是否可以大于executor core?,apache-spark,pyspark,Apache Spark,Pyspark,当spark任务的数量大于executor core时会发生什么情况?Spark是如何处理这种情况的?我想问题有点离题了。你问的不太可能。为什么? 有了大量数据,您将有许多分区,您可以重新分区 假设您有10000个分区,相当于10000个任务 执行器(核心)将有效地为分区服务一个任务(1:1映射),完成后继续执行下一个任务,直到阶段中的所有任务完成,然后下一个任务将开始(如果在计划/DAG中) 在大多数地方(对于你的应用程序),你很可能不会有10000个executor核心的集群,但有些网站确
- 有了大量数据,您将有许多分区,您可以重新分区
- 假设您有10000个分区,相当于10000个任务
- 执行器(核心)将有效地为分区服务一个任务(1:1映射),完成后继续执行下一个任务,直到阶段中的所有任务完成,然后下一个任务将开始(如果在计划/DAG中)
- 在大多数地方(对于你的应用程序),你很可能不会有10000个executor核心的集群,但有些网站确实有
- 如果分配的核心数超过需要的数量,那么它们将保持空闲状态,不可供其他人使用。但通过动态资源分配,可以放弃执行者。我已经与纱线和火花独立工作,这是如何与K8我不知道
- 转换改变了您在资源方面的需求。例如,order by可能会导致分区减少,从而导致空闲
- 使用多个分区调用
或coalesce
repartition
- 使用默认数量的
(=200) 您有200多个可用的内核。这将是我们的一个问题 联接、排序和聚合。在这种情况下,您可能需要增加spark.sql.shuffle.partitions
spark.sql.shuffle.partitions
- 是的,这种情况可能发生。在这种情况下,一些磁芯将处于空闲状态。可能发生这种情况的场景:
groupBy()
或Window
的操作而没有partitionBy
,则可能会发生这种情况。在这种情况下,空分区将立即完成,将大多数内核变为空闲状态与此相关吗
无论如何,你可以检查一下。在“调优资源分配”一节中,解释了spark应用程序可以通过启用动态分配属性来请求执行器。设置集群属性也很重要,例如num executors、executor cores、executor memory。。。因此,spark请求适合您的资源经理提供的资源。executor core的数量?我问的是一个场景:executor core的数量>我将添加的任务总数。您是否可以根据此站点上的协议接受答案?