我一般以下形式的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