Java 如何使用SqlContext并行提交多个spark查询
我想在spark集群中并行运行多个spark SQL,这样我就可以利用完整的资源。我正在使用Java 如何使用SqlContext并行提交多个spark查询,java,scala,apache-spark,apache-spark-sql,Java,Scala,Apache Spark,Apache Spark Sql,我想在spark集群中并行运行多个spark SQL,这样我就可以利用完整的资源。我正在使用sqlContext.sql(查询) 编辑 我看到一些示例代码,如下所示 val parallelism = 10 val executor = Executors.newFixedThreadPool(parallelism) val ec: ExecutionContext = ExecutionContext.fromExecutor(executor) val tasks: Seq[String]
sqlContext.sql(查询)
编辑
我看到一些示例代码,如下所示
val parallelism = 10
val executor = Executors.newFixedThreadPool(parallelism)
val ec: ExecutionContext = ExecutionContext.fromExecutor(executor)
val tasks: Seq[String] = ???
val results: Seq[Future[Int]] = tasks.map(query => {
Future{
//spark stuff here
0
}(ec)
})
val allDone: Future[Seq[Int]] = Future.sequence(results)
//wait for results
Await.result(allDone, scala.concurrent.duration.Duration.Inf)
executor.shutdown //otherwise jvm will probably not exit
据我所知,ExecutionContext计算机器中的可用内核(使用ForkJoinPool)并相应地进行并行处理。
但是,如果我们考虑除了单个机器之外的火花簇,又如何保证整个集群资源的利用率?
例如:如果我有一个10节点集群,每个集群有4个核心,那么上面的代码如何保证40个核心得到利用。感谢您的帮助。但这个问题没有答案。还有一个示例代码会更有用。给你:哇,这非常有用。非常感谢。将尝试相同的方法。:)如果你搜索,你会发现一堆其他类似的问题,有些可能有更好的答案。例如,有。我的搜索技能现在还不是一流的:)