Znaczenie Apache Flink w przetwarzaniu danych strumieniowych

Autor: Roger Morrison
Data Utworzenia: 19 Wrzesień 2021
Data Aktualizacji: 10 Móc 2024
Anonim
Streaming Concepts & Introduction to Flink Series - What is Stream Processing & Apache Flink
Wideo: Streaming Concepts & Introduction to Flink Series - What is Stream Processing & Apache Flink

Zawartość


Źródło: Madmaxer / Dreamstime.com

Na wynos:

Apache Flink to narzędzie do przetwarzania danych, które może obsługiwać zarówno dane wsadowe, jak i dane strumieniowe, zapewniając użytkownikom elastyczność i wszechstronność.

Strumieniowe przetwarzanie danych to nowy obszar. Oznacza to przetwarzanie danych niemal natychmiast (z bardzo małym opóźnieniem) po ich wygenerowaniu. Do tej pory większość przetwarzania danych opierała się na systemach wsadowych, w których przetwarzanie, analiza i podejmowanie decyzji były procesem opóźnionym. Teraz, gdy nowe technologie i platformy ewoluują, organizacje stopniowo przechodzą na podejście oparte na strumieniu zamiast starych systemów opartych na partii. Apache Flink to projekt typu open source do przetwarzania strumieniowego danych. Pomaga organizacjom w przeprowadzaniu analiz w czasie rzeczywistym i podejmowaniu decyzji w odpowiednim czasie.

Co to jest Apache Flink?

Apache Flink można zdefiniować jako platformę typu open source zdolną do przetwarzania rozproszonego strumienia i przetwarzania wsadowego. Rdzeniem Apache Flink jest silnik przesyłania strumieniowego danych, który obsługuje komunikację, dystrybucję i odporność na uszkodzenia w przetwarzaniu danych strumienia rozproszonego. Apache Flink to jedyna platforma hybrydowa do obsługi przetwarzania wsadowego i strumieniowego. Obsługuje różne przypadki użycia oparte na przetwarzaniu w czasie rzeczywistym, projektach uczenia maszynowego, przetwarzaniu wsadowym, analizie grafów i innych.


Flink składa się z następujących komponentów do tworzenia rzeczywistych aplikacji, a także wspierania uczenia maszynowego i możliwości przetwarzania wykresów:

  • DataSet API - pomaga statycznym danym osadzonym w Pythonie, Scali i Javie
  • DataStream API - Pomaga niezwiązanym strumieniom w Pythonie, Javie i Scali
  • Tabela API - język podobny do SQL, którego można używać w Scali i Javie

Apache miga podstawowe zasady

Rzućmy okiem na podstawowe zasady, na których zbudowany jest Apache Flink:

  1. Rozważ wszystko jako strumienie, w tym partie. Strumień jest zawsze dostępny, ponieważ bazowa koncepcja i wykonanie są wykonywane na tej podstawie.
  2. Napisz aplikację jako język programowania, a następnie wykonaj ją jako bazę danych.
  3. Skoncentruj się na funkcjach przyjaznych dla użytkownika, takich jak usuwanie ręcznego strojenia, usuwanie koncepcji wykonywania fizycznego itp.
  4. Pozwól minimalnej konfiguracji na wdrożenie rozwiązania.
  5. Obsługuje różne systemy plików i wdrożenia.
  6. Integruj ze starszymi aplikacjami Big Data.
  7. Natywna obsługa partii, strumienia w czasie rzeczywistym, uczenia maszynowego, przetwarzania wykresów itp.

Dlaczego Apache Flink jest inny

Apache Flink to platforma typu open source do przetwarzania strumieniowego i wsadowego. Ma następujące funkcje, które odróżniają go od innych podobnych platform:


  • Wysoka wydajność i niskie opóźnienia - środowisko uruchomieniowe Apache Flink zapewnia wysoką przepustowość i bardzo małe opóźnienia. Można to osiągnąć, wykonując minimalne zmiany konfiguracji.
  • Obsługa stanu niestandardowego - systemy przetwarzania strumieniowego zawsze utrzymują stan swoich obliczeń. Flink ma bardzo wydajny mechanizm wskazywania kontrolnego, który wymusza stan podczas obliczeń.
  • Kontrola przepływu - Kontrola przepływu jest integralną częścią każdego systemu przetwarzania strumienia. Flink ma wbudowany naturalny system kontroli przepływu. Pomaga w skutecznej kontroli przepływu w przypadku długo działających operatorów.
  • Odporność na uszkodzenia - Flink ma skuteczny mechanizm odporności na uszkodzenia oparty na rozproszonych migawkach. Mechanizm ten jest bardzo lekki, o dużej konsystencji i wysokiej przepustowości.
  • Pojedynczy środowisko wykonawcze - Apache Flink zapewnia pojedyncze środowisko wykonawcze do przetwarzania strumieniowego i wsadowego. Tak więc ta sama implementacja systemu wykonawczego może obejmować wszystkie typy aplikacji.
  • Wydajne zarządzanie pamięcią - Apache Flink ma własny system zarządzania pamięcią w JVM. Skalowalność aplikacji jest więc łatwa w obsłudze poza pamięcią główną przy mniejszym obciążeniu.
  • Obliczenia iteracyjne - Flink zapewnia wbudowane dedykowane wsparcie dla obliczeń iteracyjnych, takich jak przetwarzanie grafów i uczenie maszynowe.
  • Optymalizacja programu - Flink ma wbudowany optymalizator, który może automatycznie optymalizować złożone operacje.

Apache Flink ma również dwie biblioteki specyficzne dla domeny:

  • FlinkML - służy do projektów uczenia maszynowego.
  • Gelly - służy do projektów przetwarzania grafów.

Czy Apache Flink Hadoop jest zależny?

Analiza danych w czasie rzeczywistym odbywa się w oparciu o dane przesyłane strumieniowo (które przepływają w sposób ciągły podczas generowania). Apache Flink to system przetwarzania danych, który jest również alternatywą dla komponentu Hadoops MapReduce. Ma swój własny czas działania i może działać niezależnie od ekosystemu Hadoop. Flink może działać bez instalacji Hadoop, ale może przetwarzać dane przechowywane w rozproszonym systemie plików Hadoop (HDFS). Flink ma wbudowane biblioteki wsparcia dla HDFS, więc większość użytkowników Hadoop może używać Flink razem z HDFS. Flink może również uzyskać dostęp do menedżera zasobów nowej generacji Hadoops, YARN (Yet Another Resource Negotiator). Flink domyślnie dołącza również biblioteki obsługujące Hadoop. (Aby dowiedzieć się więcej o YARN, zobacz Jakie są zalety frameworka Hadoop 2.0 (YARN)?)

Apache Flink to więc osobny system wraz z własnym środowiskiem wykonawczym, ale można go również zintegrować z Hadoop do przechowywania danych i przetwarzania strumieniowego.

Bez błędów, bez stresu - Twój przewodnik krok po kroku do tworzenia oprogramowania zmieniającego życie bez niszczenia życia

Nie możesz poprawić swoich umiejętności programistycznych, gdy nikt nie dba o jakość oprogramowania.

Alternatywa dla Hadoop MapReduce

Apache Flink jest uważany za alternatywę dla Hadoop MapReduce. Flink oferuje cykliczne dane, których brakuje w MapReduce. Flink oferuje interfejsy API, które są łatwiejsze do wdrożenia w porównaniu z interfejsami API MapReduce. Obsługuje przetwarzanie w pamięci, które jest znacznie szybsze. Flink może również współpracować z innymi systemami plików wraz z HDFS. Flink może analizować dane strumienia w czasie rzeczywistym wraz z przetwarzaniem wykresów i wykorzystaniem algorytmów uczenia maszynowego. Rozszerza również model MapReduce o nowe operatory, takie jak łączenie, krzyżowanie i łączenie. Flink oferuje mniejsze opóźnienia, dokładnie jedną gwarancję przetwarzania i wyższą przepustowość. Flink jest również uważany za alternatywę dla Spark i Storm. (Aby dowiedzieć się więcej o Spark, zobacz Jak Apache Spark pomaga w szybkim rozwoju aplikacji).

Czym są narzędzia Apache Flinks?

Apache Flink ma następujące przydatne narzędzia:

  • Interfejs wiersza poleceń (CLI) - jest to interfejs wiersza poleceń do obsługi narzędzi Flinks bezpośrednio z wiersza polecenia.
  • Menedżer zadań - jest to interfejs zarządzania do śledzenia zadań, statusu, awarii itp.
  • Job Client - Jest to w zasadzie interfejs klienta do przesyłania, wykonywania, debugowania i sprawdzania zadań.
  • Zeppelin - jest to interaktywna internetowa platforma obliczeniowa wraz z narzędziami do wizualizacji i analizami.
  • Interactive Scala Shell / REPL - służy do interaktywnych zapytań.

Platforma Big Data Analytics czwartej generacji

Apache Flink jest znany jako platforma analityczna big data czwartej generacji. Silnik analityczny pierwszej generacji zajmuje się zadaniami wsadowymi i MapReduce. Silnik drugiej generacji zarządza przetwarzaniem wsadowym i interaktywnym. Trzeci jest nieco bardziej zaawansowany, ponieważ dotyczy istniejącego przetwarzania wraz z przetwarzaniem prawie iteracyjnym w czasie rzeczywistym. Teraz pojawia się najnowsza, platforma czwartej generacji, która zajmuje się strumieniowaniem w czasie rzeczywistym i natywnym przetwarzaniem iteracyjnym wraz z istniejącymi procesami.

Wniosek

Apache Flink to nowy podmiot w świecie analiz przetwarzania strumieniowego. Wciąż jest to platforma rozwijająca się i ulepszana o nowe funkcje. Z pewnością stanie się jeszcze bardziej wydajny w nadchodzących latach. Chociaż jest porównywany z różnymi funkcjami modeli Hadoop i MapReduce, w rzeczywistości jest to równoległa platforma do przetwarzania danych strumieniowych z ulepszonymi funkcjami. Z czasem z pewnością zyska większą akceptację w świecie analitycznym i zapewni lepszy wgląd organizacjom, które z niego korzystają.