Apache spark 如何从web应用程序中利用spark群集?
很多人都问过这个问题,但除了链接和参考资料外,没有明确的答案,而且大多数都不是最近才有的。问题是:Apache spark 如何从web应用程序中利用spark群集?,apache-spark,Apache Spark,很多人都问过这个问题,但除了链接和参考资料外,没有明确的答案,而且大多数都不是最近才有的。问题是: 我有一个web应用程序需要利用spark群集来运行spark sql查询。我的理解是提交作业脚本是异步的,因此在这里不起作用。如何在这样的设置中利用spark?我是否可以像在自包含的spark应用程序中那样在web应用程序中编写代码,即创建上下文、设置主URL并执行我需要执行的操作?这在web应用程序中有效吗?如果是,那么何时需要提供REST API的作业服务器来提交作业?用于启动Spark应用程
我有一个web应用程序需要利用spark群集来运行spark sql查询。我的理解是提交作业脚本是异步的,因此在这里不起作用。如何在这样的设置中利用spark?我是否可以像在自包含的spark应用程序中那样在web应用程序中编写代码,即创建上下文、设置主URL并执行我需要执行的操作?这在web应用程序中有效吗?如果是,那么何时需要提供REST API的作业服务器来提交作业?用于启动Spark应用程序的库。 此库允许应用程序以编程方式启动Spark。该库只有一个入口点——SparkLauncher类 要启动Spark应用程序,只需实例化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();
}
}
参考资料:
我认为选项将是
- 通过像Livy这样的RESTAPI(Livy是一个新的开源Spark rest) 用于从提交Spark作业并与之交互的服务器 或者spark服务器(RESTAPI)-查看它们如何连接到 使用内核以交互方式激发-
- 通过jdbc(通过Thrift jdbc/ODBC服务器运行)
- 通过ssh提交作业并等待纱线状态(这将 连接到集群并通过纱线进行火花提交 给您一个应用程序ID,您可以跟踪应用程序 带纱线应用状态命令的状态)