我有几个Apache Spark应用程序/脚本的用例,通常采用以下形式:
一般ETL用例 - 更具体地说,将包含许多事件(想想事件源)的Cassandra列族转换为各种聚合列族。
流式使用案例 - 事件到达系统时的实时分析。
对于(1),我需要定期启动Spark应用程序。
对于(2),只需在启动时启动长时间运行的Spark Streaming进程,然后继续运行。
(注意 - 我使用Spark Standalone作为集群管理器,因此没有纱线或介子)
我试图找出Spark应用程序的最常见/最佳实践部署策略。
到目前为止,我能看到的选项是:
将我的程序部署为jar ,并使用spark-submit运行各种任务 - 这似乎是spark文档中推荐的方式。关于这个策略的一些想法:
创建单独的webapp 作为驱动程序。
Spark作业服务器(https://github.com/ooyala/spark-jobserver)
我想了解一个普遍的共识,那就是一个简单而强大的部署策略 - 到目前为止,我还无法通过网络搜索确定一个。
非常感谢!