gpt4 book ai didi

java - 如何在 REST Web 服务的上下文中调用 spark 作业?

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:05 28 4
gpt4 key购买 nike

我想在我的 restful 网络服务中运行 Spark SQL 查询,那么如何通过 Jersey 上下文运行 Spark 上下文?我需要将我的 Spark SQL 请求传递给集群,然后通过 REST API 将结果返回给用户。但是在 Spark 文档中,如果不将 jar 文件提交到集群(主/从),则无法在 java 代码中运行 Spark SQL 查询。

最佳答案

如果您使用的 Spark 版本 > 1.4,那么您可以使用 SparkLauncher运行您的应用程序。

import org.apache.spark.launcher.SparkLauncher;

public class MyLauncher {
public static void main(String[] args) throws Exception {
Process spark = new SparkLauncher()
.setAppResource("/my/app.jar")
.setMainClass("my.spark.app.Main")
.setMaster("local")
.setConf(SparkLauncher.DRIVER_MEMORY, "2g")
.launch();
spark.waitFor();
}
}

为了让它工作,您应该给它一个 jar 文件。既然你想运行 SparkSQL 查询,那么你可以将它打包在一个 jar 文件中,或者你可以让一个 jar 获取你想要执行的查询作为参数。

需要注意的是,每次要执行查询时都必须启动和停止 SparkContext。如果您不介意等待它,那很好。但如果时间很紧,那么我会建议编写一个单独的服务,使 spark 上下文始终处于运行状态,并且您的应用程序会调用它。

关于java - 如何在 REST Web 服务的上下文中调用 spark 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887101/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com