我一般以下形式的Apache星火应用程序/脚本一对夫妇的使用情况,:阿帕奇星火应用程序部署的最佳实践
一般ETL使用情况 - 更具体的是卡桑德拉列家族的转型包含许多事件(将事件采购视为各种聚合列家族)。
流媒体使用案例 - 事件到达系统时的实时分析。
对于(1),我需要定期启动Spark应用程序。
对于(2),只需在启动时启动长时间运行的Spark Streaming进程并让它启动。
(注意 - 我使用星火独立的集群管理器,所以没有纱线或mesos)
我试图找出为Spark应用中最常见/最佳实践部署策略。
到目前为止,我可以看到的选项:
部署我的程序作为一个罐子和运行的各种任务火花提交 - 这似乎是一路火花文档推荐。关于这种策略的一些想法:
- 你如何开始/停止任务 - 只使用简单的bash脚本?
- 调度如何管理? - 只需使用cron?
- 有什么韧性? (例如,是谁安排的工作如果司机服务器死机运行?)
创建一个单独的Web应用程序作为驱动程序。
- 产生火花上下文编程交谈的火花集群
- 允许用户通过使用Quartz HTTP接口
- 揭开序幕任务(例如)管理调度
- 可以使用集群饲养员选举弹性
星火作业服务器(https://github.com/ooyala/spark-jobserver)
- 对于我来说,我认为没有太大的好处,因为我还没有许多团队和项目与Spark交谈,并且仍然需要一些应用程序与作业服务器交谈
- 没有调度内置据我可以看到
我想了解的普遍共识WRT一个简单但强大的部署策略 - 我一直无法通过拖网确定一个网络,至今。
非常感谢!
非常感谢,Chronous似乎做了我想做的事情,但我希望远离部署Mesos集群(我宁愿将基础结构的复杂性保持在小一点,因为Spark初始用例很简单)。尽管如此,请仔细观察一下 - 谢谢! – lucas1000001