2015-05-23 14 views
17

Mam kilka przypadków użycia do zastosowań zapłonowe Apache/skryptów, na ogół z poniższego formularza:Apache wdrażanie aplikacji Spark najlepsze praktyki

Ogólne ETL przypadek użycia - dokładniej przekształceniem rodziny kolumnowej Cassandra zawierające wiele zdarzeń (źródło zdarzeń think) w różnych zagregowanych rodzinach kolumn.

Przypadki użycia strumieniowego - Analiza w czasie rzeczywistym zdarzeń po ich dostarczeniu do systemu.

Dla (1), będę musiał okresowo uruchamiać aplikację Spark.

Dla (2), po prostu uruchom długo działający proces Spark Streaming podczas uruchamiania i pozwól mu odejść.

(Uwaga - używam Spark wolnostojący jako menedżer klastrów, więc nie przędzy lub Mesos)

próbuję dowiedzieć się, najczęstsze/najlepsze strategie wdrażania praktyk dla aplikacji zgłoszeniowej.

Dotychczas opcje widzę to:

  1. Wdrażanie mój program jako słoiku i uruchamiając różne zadania z iskrą-submit - co wydaje się być sposób zalecany w docs zapłonowych . Kilka myśli na temat tej strategii:

    • Jak uruchamiać/zatrzymywać zadania - wystarczy użyć prostych skryptów bash?
    • Jak zarządzać harmonogramem? - po prostu użyj crona?
    • jakąkolwiek sprężystość? (Np Who harmonogramy zadań do uruchomienia, jeśli serwer kierowca umiera?)
  2. Tworzenie osobnego webapp co program sterownika.

    • tworzy kontekst zapłonową programowo rozmawiać klastra zapłonowej
    • umożliwiając użytkownikom inauguracją zadań przez interfejs http
    • wykorzystaniem kwarcu (na przykład) do zarządzania Scheduling
    • przydałby klaster z Heca wybory za sprężystość
  3. serwer praca Spark (https://github.com/ooyala/spark-jobserver)

    • Nie sądzę, istnieje wiele korzyści nad (2) dla mnie, tak jak ja (jeszcze) nie mają wiele zespołów i projektów mówić do iskry, a wciąż potrzebują aplikacji rozmawiać z serwerem pracy anyway
    • brak planowania wybudowany w miarę widzę

Chciałbym zrozumieć ogólny konsensus WRT proste, ale solidne strategii wdrażania - nie udało się ustalić, jeden po trałowania sieć, jak dotąd.

Dziękuję bardzo!

Odpowiedz

6

Nawet jeśli nie używasz Mesos dla Spark, można rzucić okiem na

- Chronos oferując rozproszoną i odporne na uszkodzenia crona

- Marathon ramy Mesos dla długich uruchomionych aplikacji

Zauważ, że nie oznacza to, że musisz przenieść swoje iskrowe rozmieszczenie do mesos, np możesz po prostu użyć chronos, aby wywołać iskrzenie.

Mam nadzieję, że dobrze zrozumiałem Twój problem i to ci pomoże!

+0

Bardzo dziękuję, Chronous wydaje się robić to, co chcę, ale miałem nadzieję, że trzymam się z daleka od konieczności rozmieszczenia klastra Mesos (wolałbym zachować małą złożoność infrastruktury w przypadku niektórych prostych początkowych przypadków użycia Sparka). Będzie jednak bliżej - dzięki! – lucas1000001