我正在开发一个包含以下组件的Web应用程序:
Django应用程序将创建“按需”火花作业(它们可以是并发作业,具体取决于使用该应用程序的用户数量)
我想知道是否有任何方法可以从Django中的python代码提交spark作业?我可以在django中整合pyspark吗?或者我可以直接调用YARN API来提交工作吗?
我知道我可以使用spark-submit脚本向集群提交作业,但我试图避免使用它。 (因为它必须是从代码执行的shell命令,并且执行起来不太安全)
非常感谢任何帮助。
非常感谢,
JG
答案 0 :(得分:2)
部分未经测试的答案:Django是一个Web框架,因此很难管理长时间的工作(超过30秒),这可能就是你的火花工作。
因此,您需要一个异步作业队列,例如芹菜。这有点痛苦(不是很糟糕但仍然如此),但我会建议你从那开始。
然后你会:
答案 1 :(得分:0)
github上有一个名为Ooyala的作业服务器的项目: https://github.com/ooyala/spark-jobserver
这允许您通过HTTP请求向YARN提交火花作业。
在Spark 1.4.0+中添加了支持以通过HTTP请求监视作业状态。