Apache spark spark中的分区数和并发任务数是如何计算的
我有一个使用Spark 1.0.1的集群,它有4个节点(每个节点有16个核心) 我有一个已经重新分区的RDD,所以它有200个分区(希望增加并行性) 当我在这个RDD上进行转换(如filter)时,我似乎无法在一个时间点获得超过64个任务(我在4个节点上的内核总数)。所谓任务,我指的是出现在应用程序Spark UI下的任务数。我尝试显式地将spark.default.parallelism设置为128(希望可以同时运行128个任务),并在正在运行的应用程序的应用程序UI中验证了这一点,但没有效果。对于“过滤器”,这可能会被忽略,默认值是可用的磁芯总数Apache spark spark中的分区数和并发任务数是如何计算的,apache-spark,Apache Spark,我有一个使用Spark 1.0.1的集群,它有4个节点(每个节点有16个核心) 我有一个已经重新分区的RDD,所以它有200个分区(希望增加并行性) 当我在这个RDD上进行转换(如filter)时,我似乎无法在一个时间点获得超过64个任务(我在4个节点上的内核总数)。所谓任务,我指的是出现在应用程序Spark UI下的任务数。我尝试显式地将spark.default.parallelism设置为128(希望可以同时运行128个任务),并在正在运行的应用程序的应用程序UI中验证了这一点,但没有效果
我对Spark还比较陌生,所以我可能只是缺少或误解了一些基本的东西。任何帮助都将不胜感激。这是正确的行为。每个“核心”一次只能执行一个任务,每个任务对应一个分区。如果集群只有64个核心,那么一次最多只能运行64个任务 您可以在每个节点上运行多个worker以获得更多的执行器。这将为集群中提供更多的核心。但是,无论您有多少个内核,每个内核一次只运行一个任务 您可以在下面的线程中看到更多详细信息