【发布时间】:2018-12-06 19:17:40
【问题描述】:
我在 Spark 的驱动程序节点上运行 4 个并行线程,它们执行相同的操作但使用不同的数据。 Spark 确实并行执行所有提交的作业,直到有一个连接点。此时,连接操作按顺序完成。 这是 SparkUI 显示的内容:
有什么办法可以让连接并行运行吗?
更新:
我用来启动进程的命令是:
spark-submit
--master local[16]
--class ...
--driver-memory 11G
--conf spark.default.parallelism=4
--conf spark.sql.shuffle.partitions=4
我只使用 4 个分区,因为我处理的数据非常小 (2-3MB)。
目前我正在本地模式下进行测试。
对于生产,我将使用 EMR 集群。
【问题讨论】:
-
您好,欢迎来到 SO,也许可以创建 tour 并确保阅读 How to Ask。您可以通过添加minimal reproducible example 来改进您的问题
-
你是如何在集群中启动这个作业的?向我们展示您正在使用的命令。我的猜测是,由于连接操作需要对数据进行混洗,因此没有足够的资源来同时执行多个作业。
-
嗨#MBillau,我添加了启动命令。
标签: apache-spark apache-spark-sql apache-spark-dataset