apache-spark - 首先,我可以定义比可用内核更多的执行程序吗?

标签 apache-spark hadoop pyspark

假设我共有4个核心,
如果我将执行者数量定义为8.,会发生什么情况。
我们可以在2个执行者之间共享一个核心吗?
执行者的核心数量可以是零头吗?
这种配置对性能有什么影响?

最佳答案

这是我在Spark独立模式下观察到的:
我系统的总核心为4
如果我使用spark.executor.cores = 2执行spark-shell命令
然后将创建2个执行者,每个执行者具有2个核心。
enter image description here
enter image description here
但是,如果我将执行程序的数量配置为多于可用内核,
这样一来,将只创建一个执行程序,其系统核心为max。
enter image description here
enter image description here
核心数永远不会是分数值。
如果在配置中分配分数值,最终将出现异常:
enter image description here
如果有任何错误,请随时编辑/更正该帖子。

关于apache-spark - 首先,我可以定义比可用内核更多的执行程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63960922/

相关文章:

json - 从Spark Scala中的序列文件中提取JSON记录

apache-spark - Spark RDD 的 take(1) 和 first() 的区别

python - 将 python 代码转换为 python Spark 代码

java - Spark on Java - 在所有工作人员上拥有静态对象的正确方法是什么

斯卡拉 Spark UDF ClassCastException : WrappedArray$ofRef cannot be cast to [Lscala. Tuple2

hadoop - 基于 2 个字段的滚动总计的 Hive 查询

hadoop - 我们如何将多个 hql 文件传递​​给 hive/beeline?

hadoop - 如何 "break"HBase

eclipse - hadoop 2 中的 hadoop jar 文件在哪里?

python - pyspark 中的命名累加器