Apache Storm - wprowadzenie
Co to jest Apache Storm?
Apache Storm to rozproszony system przetwarzania dużych zbiorów danych w czasie rzeczywistym. Storm jest zaprojektowany do przetwarzania ogromnych ilości danych w odpornej na błędy i poziomej skalowalnej metodzie. Jest to platforma do przesyłania strumieniowego danych, która zapewnia najwyższe wskaźniki pozyskiwania. Chociaż Storm jest bezstanowy, zarządza środowiskiem rozproszonym i stanem klastra za pośrednictwem Apache ZooKeeper. Jest to proste i można równolegle wykonywać wszelkiego rodzaju manipulacje na danych w czasie rzeczywistym.
Apache Storm nadal jest liderem w dziedzinie analizy danych w czasie rzeczywistym. Storm jest łatwy w konfiguracji, obsłudze i gwarantuje, że każda wiadomość zostanie przynajmniej raz przetworzona w topologii.
Apache Storm vs Hadoop
Zasadniczo platformy Hadoop i Storm są używane do analizowania dużych zbiorów danych. Oba uzupełniają się i różnią w niektórych aspektach. Apache Storm wykonuje wszystkie operacje z wyjątkiem trwałości, podczas gdy Hadoop jest dobry we wszystkim, ale opóźnia się w obliczeniach w czasie rzeczywistym. W poniższej tabeli porównano atrybuty Storm i Hadoop.
Burza | Hadoop |
---|---|
Przetwarzanie strumienia w czasie rzeczywistym | Przetwarzanie wsadowe |
Bezpaństwowcy | Stanowy |
Architektura Master / Slave z koordynacją opartą na ZooKeeper. Węzeł główny nosi nazwęnimbus i niewolnicy supervisors. | Architektura master-slave z / bez koordynacji opartej na ZooKeeper. Węzeł główny tojob tracker a węzeł slave to task tracker. |
Proces przesyłania strumieniowego Storm może uzyskać dostęp do dziesiątek tysięcy wiadomości na sekundę w klastrze. | Rozproszony system plików Hadoop (HDFS) wykorzystuje strukturę MapReduce do przetwarzania ogromnych ilości danych, które zajmują minuty lub godziny. |
Topologia Storm działa do momentu wyłączenia przez użytkownika lub nieoczekiwanej, nieodwracalnej awarii. | Zadania MapReduce są wykonywane w kolejności i ostatecznie kończone. |
Both are distributed and fault-tolerant | |
Jeśli nimbus / nadzorca umrze, ponowne uruchomienie sprawia, że będzie kontynuowane od miejsca, w którym zostało zatrzymane, więc nic nie zostanie naruszone. | Jeśli JobTracker umrze, wszystkie uruchomione zadania zostaną utracone. |
Przypadki użycia Apache Storm
Apache Storm jest bardzo znany z przetwarzania dużych strumieni danych w czasie rzeczywistym. Z tego powodu większość firm używa Storm jako integralnej części swojego systemu. Oto niektóre godne uwagi przykłady -
Twitter- Twitter korzysta z Apache Storm w zakresie „produktów Analytics dla wydawców”. „Produkty analityczne wydawcy” przetwarzają każdy tweet i kliknięcie na platformie Twitter. Apache Storm jest głęboko zintegrowany z infrastrukturą Twittera.
NaviSite- NaviSite używa Storm do monitorowania / audytu dzienników zdarzeń. Wszystkie dzienniki wygenerowane w systemie przejdą przez burzę. Storm porówna wiadomość ze skonfigurowanym zestawem wyrażeń regularnych i jeśli znajdzie dopasowanie, ta konkretna wiadomość zostanie zapisana w bazie danych.
Wego- Wego to wyszukiwarka metasearch zlokalizowana w Singapurze. Dane dotyczące podróży pochodzą z wielu źródeł na całym świecie w różnym czasie. Storm pomaga Wego przeszukiwać dane w czasie rzeczywistym, rozwiązuje problemy z współbieżnością i znajduje najlepsze dopasowanie dla użytkownika końcowego.
Korzyści Apache Storm
Oto lista korzyści, które oferuje Apache Storm -
Storm jest oprogramowaniem open source, solidnym i przyjaznym dla użytkownika. Może znaleźć zastosowanie zarówno w małych firmach, jak i dużych korporacjach.
Storm jest odporny na błędy, elastyczny, niezawodny i obsługuje każdy język programowania.
Umożliwia przetwarzanie strumieniowe w czasie rzeczywistym.
Storm jest niewiarygodnie szybki, ponieważ ma ogromną moc przetwarzania danych.
Storm może utrzymać wydajność nawet przy rosnącym obciążeniu, liniowo dodając zasoby. Jest wysoce skalowalny.
Storm przeprowadza odświeżanie danych i kompleksową odpowiedź w ciągu kilku sekund lub minut, w zależności od problemu. Ma bardzo małe opóźnienie.
Storm ma inteligencję operacyjną.
Storm zapewnia gwarantowane przetwarzanie danych, nawet jeśli którykolwiek z podłączonych węzłów w klastrze umrze lub wiadomości zostaną utracone.