Zawartość
- Co to jest Apache Flink?
- Apache miga podstawowe zasady
- Dlaczego Apache Flink jest inny
- Czy Apache Flink Hadoop jest zależny?
- Bez błędów, bez stresu - Twój przewodnik krok po kroku do tworzenia oprogramowania zmieniającego życie bez niszczenia życia
- Alternatywa dla Hadoop MapReduce
- Czym są narzędzia Apache Flinks?
- Platforma Big Data Analytics czwartej generacji
- Wniosek
Ź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:
- Rozważ wszystko jako strumienie, w tym partie. Strumień jest zawsze dostępny, ponieważ bazowa koncepcja i wykonanie są wykonywane na tej podstawie.
- Napisz aplikację jako język programowania, a następnie wykonaj ją jako bazę danych.
- Skoncentruj się na funkcjach przyjaznych dla użytkownika, takich jak usuwanie ręcznego strojenia, usuwanie koncepcji wykonywania fizycznego itp.
- Pozwól minimalnej konfiguracji na wdrożenie rozwiązania.
- Obsługuje różne systemy plików i wdrożenia.
- Integruj ze starszymi aplikacjami Big Data.
- 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ą.