运行 不同并行度的 Spark 作业
Run a Spark job for different parallelism degrees
我想比较不同并行度下 Spark 作业的运行时间,以便分析增加并行度是否更快。问题是我认为我可以通过在创建 Spark 会话时更改以下内容来做到这一点:
val spark = SparkSession.builder
.master(master)
.appName(name)
.config(conf)
.config("spark.default.parallelism", number_of_partitions) // this is the value I change
但我已经为 number_of_partitions = 256
试用了我的应用程序,运行时间仅比 number_of_partitions = 1
快 1 分钟!而且我认为这不可能......当并行度为 1 时,我预计会有很大的运行时间。当然 number_of_partitions = 1
在分布式环境中没有意义,但我得到的几乎相同number_of_partitions = 16, 32, 64
.
时的运行时间
有什么想法吗?
MLLib 建立在 DataFrame API 之上。这里的并行度由 parameters 控制,例如 spark.files.maxPartitionBytes
和 spark.sql.shuffle.partitions
.
(spark.default.parallelism
用于在使用RDD时控制并行度API).
我想比较不同并行度下 Spark 作业的运行时间,以便分析增加并行度是否更快。问题是我认为我可以通过在创建 Spark 会话时更改以下内容来做到这一点:
val spark = SparkSession.builder
.master(master)
.appName(name)
.config(conf)
.config("spark.default.parallelism", number_of_partitions) // this is the value I change
但我已经为 number_of_partitions = 256
试用了我的应用程序,运行时间仅比 number_of_partitions = 1
快 1 分钟!而且我认为这不可能......当并行度为 1 时,我预计会有很大的运行时间。当然 number_of_partitions = 1
在分布式环境中没有意义,但我得到的几乎相同number_of_partitions = 16, 32, 64
.
有什么想法吗?
MLLib 建立在 DataFrame API 之上。这里的并行度由 parameters 控制,例如 spark.files.maxPartitionBytes
和 spark.sql.shuffle.partitions
.
(spark.default.parallelism
用于在使用RDD时控制并行度API).