Wprowadzenie do Spark Streaming
Strumieniowe przesyłanie danych Apache Spark jest jednym z podstawowych składników Apache Spark, który jest narzędziem do przetwarzania danych w czasie rzeczywistym, które jest używane do przesyłania strumieniowego danych w czasie rzeczywistym, w przeciwieństwie do tradycyjnych zadań wsadowych Hadoop, które były używane zamiast nich do uruchamiania zadań wsadowych strumieniowego przesyłania danych w czasie rzeczywistym. Wykorzystuje on funkcję szybkiego planowania rdzenia Spark w celu wykonania szybkiej analizy strumieniowania iskier, która zasadniczo obejmuje przyjmowanie danych w postaci mikro- i mini-partii w celu przeprowadzenia transformacji RDD na tych zestawach danych w określonym okresie okna. Strumieniowe przesyłanie Apache Spark ma zużywać wiele strumieni upstream, tym samym uzupełniając potok, taki jak Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, gniazda TCP / IP, Twitter itp. Strukturalne zestawy danych, które są dostępne w Spark 2. Wersje x + są używane do przesyłania strumieniowego.
Jak działa Streaming Spark?
- W przypadku przesyłania strumieniowego Spark strumienie danych są podzielone na ustalone partie zwane również DStreams, które są wewnętrznie ustaloną sekwencją liczby RDD. RDD są zatem przetwarzane przy użyciu Spark API, a zwracane wyniki są zatem partiami. Dyskretne operacje strumieniowe, które są transformacjami stanowymi lub bezstanowymi, obejmują także operacje wyjściowe, wejściowe operacje DStream oraz odbiorniki. Te Dstreamy są podstawowym poziomem abstrakcji zapewnianym przez streaming Apache Spark, który jest ciągłym strumieniem RDD Spark.
- Zapewnia również możliwość zastosowania odporności na uszkodzenia dla Dstreams całkiem podobnych do RDD, o ile kopia danych jest dostępna, a zatem dowolny stan można ponownie obliczyć lub przywrócić do stanu pierwotnego, korzystając z wykresu liniowego Spark na zestaw RDD. Należy tutaj rozważyć, że Dstreams służy do tłumaczenia podstawowych operacji na ich podstawowym zestawie RDD. Te transformacje oparte na RDD są wykonywane i obliczane przez silnik Spark. Operacje Dstream służą do zapewnienia podstawowego poziomu szczegółowości i zapewnienia deweloperowi wysokiego poziomu interfejsu API do celów programistycznych.
Zalety przesyłania strumieniowego Spark
Istnieje wiele powodów, dla których korzystanie ze strumieniowania Spark jest dodatkową zaletą. Omówimy niektóre z nich w naszym poście tutaj.
- Ujednolicenie obciążeń strumieniowych, wsadowych i interaktywnych: zestawy danych można łatwo zintegrować i stosować z dowolnym obciążeniem, które nigdy nie było łatwym zadaniem w systemach ciągłych, a zatem służy to jako jeden silnik.
- Zaawansowany poziom analiz wraz z uczeniem maszynowym i zapytaniami SQL: W przypadku złożonych obciążeń zawsze wymaga to ciągłego uczenia się, a także zaktualizowanych modeli danych. Najlepsze w tym komponencie Spark jest łatwość integracji z MLib lub inną dedykowaną biblioteką uczenia maszynowego.
- Szybka awaria, a także odzyskiwanie dla marudera: Odzyskiwanie po awarii i odporność na awarie to jedna z podstawowych podstawowych funkcji dostępnych w streamingu Spark.
- Równoważenie obciążenia: Wąskie gardła często powstają pomiędzy systemami z powodu nierównomiernych obciążeń i równoważeń, które są wykonywane, dlatego też konieczne staje się zrównoważenie obciążenia równomiernie, co jest automatycznie obsługiwane przez ten komponent Spark.
- Wydajność: Ze względu na technikę obliczeń w pamięci, która wykorzystuje pamięć wewnętrzną bardziej niż zewnętrzny dysk twardy, wydajność Spark jest bardzo dobra i wydajna w porównaniu z innymi systemami Hadoop.
Spark Streaming Operations
1) Operacje transformacji strumieniowania Spark: w ten sam sposób, w jaki dane są transformowane z zestawu RDD, tutaj również dane są transformowane z DStreams i oferuje wiele transformacji, które są dostępne w normalnych Spark RDD. Niektórzy z nich są:
- Map (): Służy do zwracania nowej formy Dstream, gdy każdy element jest przekazywany przez funkcję.
Na przykład data.map (line => (line, line.count)) - flatMap (): Ten jest podobny do mapy, ale każdy element jest mapowany na 0 lub więcej mapowanych jednostek.
Przykład, data.flatMap (linie => linie.split (”„)) - filter (): Ten służy do zwrócenia nowego zestawu Dstream przez zwrócenie rekordów, które są filtrowane na nasz użytek.
Przykład, filtr (wartość => wartość == ”iskra”) - Union (): Służy do zwracania nowego zestawu Dstream, który składa się z danych połączonych z wejściowych Dstreams i innych Dstreams.
Przykład: Dstream1.union (Dstream2) .union (Dstream3)
2) Zaktualizuj stan według operacji klucza
Pozwala to zachować dowolny stan, nawet jeśli jest on stale aktualizowany o nowe informacje. Będziesz musiał zdefiniować stan, który może być dowolnego typu i zdefiniować funkcję aktualizacji stanu, co oznacza określenie stanu przy użyciu poprzedniego stanu, a także wykorzystanie nowych wartości ze strumienia wejściowego. W każdym systemie wsadowym iskra zastosuje tę samą funkcję aktualizacji stanu dla wszystkich dominujących kluczy.
Przykład:
funkcja aktualizacji def (NV, RC):
jeśli RC jest Brak:
RC = 0
zwracana suma (NV, RC) #Nv to nowe wartości, a RC jest zliczany
Wniosek
Strumieniowanie iskrowe jest jednym z najbardziej wydajnych systemów do budowy potoku typu rzeczywistego strumieniowania, dlatego służy do przezwyciężenia wszystkich problemów napotykanych przy użyciu tradycyjnych systemów i metod. W związku z tym wszyscy programiści, którzy uczą się, jak dostać się do komponentu strumieniowania iskier, stawiają na najodpowiedniejszy pojedynczy punkt struktury, który można wykorzystać do zaspokojenia wszystkich potrzeb rozwojowych. Dlatego możemy śmiało powiedzieć, że jego użycie zwiększa produktywność i wydajność w projektach i firmach, które próbują lub oczekują na wykorzystanie ekosystemu dużych zbiorów danych. Mam nadzieję, że podoba Ci się nasz artykuł. Sprawdzaj kolejne artykuły.
Polecane artykuły
To jest przewodnik po Spark Streaming. Tutaj omawiamy wprowadzenie do Spark Streaming, jego działanie wraz z zaletami i przykładami. Możesz także przejrzeć nasze inne powiązane artykuły -
- Co to jest Hadoop Streaming?
- Polecenia Spark
- Samouczki na temat instalacji Spark
- Różnica między Hadoop a Spark
- Spark DataFrame | Zalety
- Top 6 komponentów Spark