Java 以编程方式将spark应用程序提交到Thread

Java 以编程方式将spark应用程序提交到Thread,java,scala,hadoop,apache-spark,yarn,Java,Scala,Hadoop,Apache Spark,Yarn,我觉得能够以编程方式向Thread提交spark应用程序已经成为一个非常普遍的要求。但是,在ApacheSpark文档中没有关于它的参考资料。是否有可能,如果有,是否有一个直接的方法来实现它。请告知 : 正确的方法是将驱动程序应用程序转换为RPC服务器。这样,您只需启动一个SparkContext。传入的RPC请求都将重新使用现有的SparkContext 我相信,这些文件顺便提到了这一战略,但除此之外,这确实超出了Spark文档的范围 我最近使用了一个可嵌入、功能强大的HTTP服务器。这是微不

我觉得能够以编程方式向Thread提交spark应用程序已经成为一个非常普遍的要求。但是,在ApacheSpark文档中没有关于它的参考资料。是否有可能,如果有,是否有一个直接的方法来实现它。请告知


正确的方法是将驱动程序应用程序转换为RPC服务器。这样,您只需启动一个SparkContext。传入的RPC请求都将重新使用现有的SparkContext

我相信,这些文件顺便提到了这一战略,但除此之外,这确实超出了Spark文档的范围

我最近使用了一个可嵌入、功能强大的HTTP服务器。这是微不足道的


但是,选择您选择的RPC协议并进行测试。

我不这么认为。你想要一些东西,在那里你可以通过一个函数指针作为主函数传递一个自包含的程序?好吧,目前还不存在,但我可以进一步检查代码以进行验证。在做了很多工作后,我终于可以工作了。但它有一个致命的缺陷。。。调用SparkSubmit.main()将启动一个监视线程,并在作业完成之前不会返回,就像在执行shell时一样。这对于我的用例来说是无用的,我的用例是“解雇并忘记”成千上万的火花工作。我也有同样的问题。人们将Spark jobs作为一次性的计算任务来运行,SparkSubmit非常适合于此。但是,如果想要拥有更多的控制权,我们需要能够使用新的SparkContext(“纱线客户端”)并使用它。usecase的例子是一个web应用程序,它处理和可视化数据,并希望直接使用RDD的结果,并在会话中使用大量缓存。仅供参考。我在我的Java应用程序中使用SparkContext,效果非常好,只是我无法让它与Thread一起工作,而且我也没有办法用spark submit完成现在的工作。我还建议查找spark的调度逻辑,因为这是这种方法的一个非常重要的方面。这里有记录:
org.apache.spark.deploy.SparkSubmit.main(/*Submission args*/)