2013-06-17 12 views
5

Projektuję prototypowy monitor czasu rzeczywistego do przetwarzania dość dużych ilości (> 30G/dzień) strumieniowych danych numerycznych. Chciałbym napisać to w Clojure, ponieważ język wydaje się dobrze pasować do systemu "Observer + State Machine", który prawdopodobnie skończy jako.Lamina kontra Storm

Dwoma głównymi kandydatami, których znalazłem do opracowania, są Lamina i Storm. Jest też Riemann i Pulse, ale ten pierwszy wydaje się bardziej kompletnym rozwiązaniem, niż ramą, a ja wolałbym nie angażować się jeszcze w ostateczny projekt; Repozytorium Pulse wygląda na mało nieopłaconego?

Co chciałbym wiedzieć; z jakimi przepływami danych i pracy są zoptymalizowane te dwa projekty? Burza wydaje się bardziej dojrzała, ale Lamina wydaje się bardziej kompozycyjna i "Clojureic" (moim tłem jest Python, więc mam tendencję do oceniania tego bardzo).

Co znalazłem od czytania on-line:

  • Burza wydaje się być Big Data (stream) skoncentrowany, rdzeń jest prosta Java z DSL Clojure. Wygląda na to, że pre = built handlers dla wielu istniejących źródeł danych.

  • Lamina jest bardziej lekkim, nadającym się do wielokrotnego użytku elementem, który pozwala Clojure na kodowanie do abstrakcji, co oznacza, że ​​może być reused as a base for other eventing systems. Źródła danych muszą być obsługiwane w kodzie.

  • Obie mają użyteczny zestaw funkcji agregacji/dzielenia/biblioteki obliczeniowej po wyjęciu z pudełka. Integracja z grafiką Laminy jest miłym akcentem.

Odpowiedz

4

Burza łączy zarządzanie klastrami oraz postępowania z nieudanych węzłów w przepływie, ponieważ został zaprojektowany jako swego rodzaju „jak Hadoop ale dla strumieniowego”, który z tego co rozumiem twoich wymagań wydaje się być bliżej do użytku walizka.

+0

Daje to wiele rzeczy w pakiecie, więc mam zamiar spróbować i zobaczyć, czy to przesada. Lamina, od mojego majsterkowania, wydaje się zbyt niska, choć bardzo opływowa i elegancka. Dzięki! – CLF

1

Lamina wydaje się być dobrym wyborem, ale wygląda na to, że całkowicie nie ma funkcji zabójcy w Storm - zarządzanie klastrami. Gromada Storm zajmie się większości brudnej pracy polegającej na dystrybucji obliczeń na klastrze węzłów, dzięki czemu możesz skupić się tylko na logice biznesowej, o ile dopasujesz ją do struktury Storm. Lamina, z tego, co widzę, stanowi dobry sposób na uporządkowanie twoich obliczeń, ale wtedy będziesz musiał zadbać o wszystkie szczegóły skalowania, jeśli to jest coś, czego potrzebujesz.

8

Burza prawdopodobnie nie jest złym wyborem, ale "ponad 30 GB dziennie" danych numerycznych nie jest dużymi danymi, to maleńkie dane. Każdy pół-nowoczesny komputer może z łatwością obsługiwać tak wiele danych w jednym węźle z blaszką. Może i tak zechcesz wybrać się z Storm, więc kiedy dostaniesz się do królestwa, w którym potrzebujesz więcej serwerów, możesz łatwo skalować, ale wyobrażam sobie, że istnieje początkowe tarcie, by ustawić Storma (i pewne ciągłe tarcia w utrzymywaniu klastra) , które zostaną zmarnowane, jeśli nigdy nie będziesz musiał skalować.