2015-05-23 91 views
17

我一般以下形式的Apache星火應用程序/腳本一對夫婦的使用情況,:阿帕奇星火應用程序部署的最佳實踐

一般ETL使用情況 - 更具體的是卡桑德拉列家族的轉型包含許多事件(將事件採購視爲各種聚合列家族)。

流媒體使用案例 - 事件到達系統時的實時分析。

對於(1),我需要定期啓動Spark應用程序。

對於(2),只需在啓動時啓動長時間運行的Spark Streaming進程並讓它啓動。

(注意 - 我使用星火獨立的集羣管理器,所以沒有紗線或mesos)

我試圖找出爲Spark應用中最常見/最佳實踐部署策略。

到目前爲止,我可以看到的選項:

  1. 部署我的程序作爲一個罐子和運行的各種任務火花提交 - 這似乎是一路火花文檔推薦。關於這種策略的一些想法:

    • 你如何開始/停止任務 - 只使用簡單的bash腳本?
    • 調度如何管理? - 只需使用cron?
    • 有什麼韌性? (例如,是誰安排的工作如果司機服務器死機運行?)
  2. 創建一個單獨的Web應用程序作爲驅動程序。

    • 產生火花上下文編程交談的火花集羣
    • 允許用戶通過使用Quartz HTTP接口
    • 揭開序幕任務(例如)管理調度
    • 可以使用集羣飼養員選舉彈性
  3. 星火作業服務器https://github.com/ooyala/spark-jobserver

    • 對於我來說,我認爲沒有太大的好處,因爲我還沒有許多團隊和項目與Spark交談,並且仍然需要一些應用程序與作業服務器交談
    • 沒有調度內置據我可以看到

我想了解的普遍共識WRT一個簡單但強大的部署策略 - 我一直無法通過拖網確定一個網絡,至今。

非常感謝!

回答

6

即使你不使用Mesos的火花,你可以看看

- Chronos提供分佈式和容錯的cron

- Marathon長期運行的應用程序

一個Mesos框架請注意,這並不意味着您必須將spark部署移至mesos,例如你可以使用chronos觸發spark -submit。

我希望我能正確理解你的問題,這可以幫助你一點點!

+0

非常感謝,Chronous似乎做了我想做的事情,但我希望遠離部署Mesos集羣(我寧願將基礎結構的複雜性保持在小一點,因爲Spark初始用例很簡單)。儘管如此,請仔細觀察一下 - 謝謝! – lucas1000001