Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark任务的数量是否可以大于executor core?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark Spark任务的数量是否可以大于executor core?

Apache spark Spark任务的数量是否可以大于executor core?,apache-spark,pyspark,Apache Spark,Pyspark,当spark任务的数量大于executor core时会发生什么情况?Spark是如何处理这种情况的?我想问题有点离题了。你问的不太可能。为什么? 有了大量数据,您将有许多分区,您可以重新分区 假设您有10000个分区,相当于10000个任务 执行器(核心)将有效地为分区服务一个任务(1:1映射),完成后继续执行下一个任务,直到阶段中的所有任务完成,然后下一个任务将开始(如果在计划/DAG中) 在大多数地方(对于你的应用程序),你很可能不会有10000个executor核心的集群,但有些网站确

当spark任务的数量大于executor core时会发生什么情况?Spark是如何处理这种情况的?我想问题有点离题了。你问的不太可能。为什么?

  • 有了大量数据,您将有许多分区,您可以重新分区
  • 假设您有10000个分区,相当于10000个任务
  • 执行器(核心)将有效地为分区服务一个任务(1:1映射),完成后继续执行下一个任务,直到阶段中的所有任务完成,然后下一个任务将开始(如果在计划/DAG中)
  • 在大多数地方(对于你的应用程序),你很可能不会有10000个executor核心的集群,但有些网站确实有

  • 如果分配的核心数超过需要的数量,那么它们将保持空闲状态,不可供其他人使用。但通过动态资源分配,可以放弃执行者。我已经与纱线和火花独立工作,这是如何与K8我不知道

  • 转换改变了您在资源方面的需求。例如,order by可能会导致分区减少,从而导致空闲


    • 是的,这种情况可能发生。在这种情况下,一些磁芯将处于空闲状态。可能发生这种情况的场景:

      • 使用多个分区调用
        coalesce
        repartition
      • 使用默认数量的
        spark.sql.shuffle.partitions
        (=200) 您有200多个可用的内核。这将是我们的一个问题 联接、排序和聚合。在这种情况下,您可能需要增加
        spark.sql.shuffle.partitions
      请注意,即使您有足够的任务,其中一些(或大部分)任务也可能是空的。如果存在较大的数据倾斜,或者执行类似于
      groupBy()
      Window
      的操作而没有
      partitionBy
      ,则可能会发生这种情况。在这种情况下,空分区将立即完成,将大多数内核变为空闲状态与此相关吗


      无论如何,你可以检查一下。在“调优资源分配”一节中,解释了spark应用程序可以通过启用动态分配属性来请求执行器。设置集群属性也很重要,例如num executors、executor cores、executor memory。。。因此,spark请求适合您的资源经理提供的资源。

      executor core的数量?我问的是一个场景:executor core的数量>我将添加的任务总数。您是否可以根据此站点上的协议接受答案?