如何在Apache Spark上运行RPC服务器?

3
我想知道是否可以使用Apache Spark进行以下设置:
分布式数据库 <-> | 常驻后端 <---> 前端 | 服务器 | ___________________ Spark
我希望能够在后端利用Spark的MLlib和Spark Streaming,并利用Spark的速度进行后端计算(统计,机器学习)。
Spark的架构似乎需要一次提交一个编译代码的JAR文件进行计算。然而,由于整个设置是为多用户Web应用程序和外部API而设计的,因此通过RPC与前端通信的长时间运行的后端服务器似乎更加直观。
这是否可能,在没有太多黑客攻击的情况下?似乎Spark Streaming的性质需要有一个常驻服务器。 JavaStreamingContext#awaitTermination() 是尝试实现这种应用程序的唯一方法吗?
我看到我尝试做的一个可能的问题,即使是可能的,也是解决建立连接的后端的问题。
非常感谢!
1个回答

7
我意识到最初我标记为“半路出家”的Spark JobServer 实际上是解决问题的方案。(如果有更多或更简单的解决方案,请也一并发布。)
Spark JobServer将Spark封装起来,并以RESTful的方式通过HTTP与外部世界通信。它提供了一个命令来上传带有某些编译计算代码的Jar文件,以及一个单独的命令来执行任何已上传的Jar文件,同时提供输入。
因此,解决我的问题的方法是启动Spark JobServer,上传我想要系统执行的计算的Jars,并从前端发出HTTP RPC请求,要求JobServer在Spark上启动适当的Jars。
详细信息请参见JobServer README

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接