当前位置: 首页 > 知识库问答 >
问题:

如何使spark并发运行一个作业中的所有任务?

闻人志
2023-03-14

我有一个系统,其中REST API(Flask)使用spark-sumbit向正在运行的PySpark发送作业。

出于各种原因,我需要spark同时运行所有任务(即我需要设置执行器的数量=运行时的任务数量)。

这可能通过一项工作来实现吗?

共有1个答案

柯奕
2023-03-14

使用spark调度器池。下面是一个使用调度器池运行多个查询的示例(为了方便在这里复制,一直到本文的结尾),同样的逻辑也适用于DStreams:https://docs.databricks.com/spark/latest/structured-streaming/production.html

// Run streaming query1 in scheduler pool1
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool1")
df.writeStream.queryName("query1").format("parquet").start(path1)

// Run streaming query2 in scheduler pool2
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool2")
df.writeStream.queryName("query2").format("orc").start(path2)
 类似资料:
  • 一个spark有一个oracle查询。所以我必须并行运行多个作业,以便所有查询都将同时激发。 如何并行运行多个作业?

  • 问题内容: 它说,在Apache Spark文档中,“ 在每个Spark应用程序中,如果多个“作业”(Spark操作)是由不同的线程提交的,则它们可以同时运行 ”。有人可以为以下示例代码解释如何实现此并发吗? 这两个作业是独立的,必须同时运行。 谢谢。 问题答案: 尝试这样的事情:

  • 问题内容: 我将Groovy脚本作为Jenkins中Pipeline工作的一部分,如下所示: 由于将标记设置为,因此它并行执行多个其他自由式作业。但是,我希望所有作业完成后才能完成呼叫者作业。目前,Pipeline作业会触发所有作业并在几秒钟后自行完成,这不是我想要的,因为我无法跟踪总时间,而且我无法一次取消所有已触发的作业。 当并行完成所有作业时,如何纠正上述脚本以完成管道作业? 我试图将构建作

  • 我使用了以下格式的输入数据: 我已经使用以下代码段使用多线程将RDD保存为文本文件: 在本例中,我遇到了以下例外情况

  • 我试图运行火花作业,基本上加载数据在卡桑德拉表。但它也产生了以下错误。

  • 我正在亚马逊的EMR集群上同时运行3个Spark流进程。问题是这三个Spark流作业中的一个基于进行处理: 有没有办法在不更改代码的情况下解决这个问题?