Kaskadowanie (oprogramowanie)
Wersja stabilna | 3.3.0 / 24 marca 2018 r
|
---|---|
Wersja podglądu | 4.0-wip-120 / 27 marca 2021
|
Magazyn | |
Napisane w | Jawa |
Licencja | Licencja Apache v2 |
Strona internetowa |
Kaskadowanie to warstwa abstrakcji oprogramowania dla Apache Hadoop i Apache Flink . Kaskadowanie służy do tworzenia i wykonywania złożonych przepływów pracy przetwarzania danych w klastrze Hadoop przy użyciu dowolnego języka opartego na JVM ( Java , JRuby , Clojure itp.), ukrywając podstawową złożoność zadań MapReduce . Jest open source i dostępny na licencji Apache . Wsparcie komercyjne jest dostępne od Driven, Inc.
Cascading został pierwotnie napisany przez Chrisa Wensela, który później założył Concurrent, Inc, który został przemianowany na Driven. Społeczność aktywnie rozwija kaskadowanie [ potrzebne źródło ] i dostępnych jest wiele modułów dodatkowych.
Architektura
Aby korzystać z kaskadowania, należy również zainstalować Apache Hadoop, a plik .jar zadania Hadoop musi zawierać pliki .jar kaskadowania. Kaskadowanie składa się z interfejsu API przetwarzania danych, interfejsu API integracji, narzędzia do planowania procesów i narzędzia do planowania procesów.
Kaskadowanie wykorzystuje skalowalność platformy Hadoop, ale oddziela standardowe operacje przetwarzania danych od podstawowej mapy i ogranicza liczbę zadań. [ potrzebne lepsze źródło ] Deweloperzy używają kaskadowania do tworzenia pliku .jar opisującego wymagane procesy. Jest zgodny z paradygmatem „źródło-potok-ujście”, w którym dane są przechwytywane ze źródeł, podąża za „potokami” wielokrotnego użytku, które wykonują procesy analizy danych, w których wyniki są przechowywane w plikach wyjściowych lub „ujściach”. Potoki są tworzone niezależnie od danych, które będą przetwarzać. Po powiązaniu ze źródłami danych i ujściami nazywa się to „przepływem”. Przepływy te można pogrupować w „kaskadę”, a program planujący procesy zapewni, że dany przepływ nie zostanie wykonany, dopóki wszystkie jego zależności nie zostaną spełnione. Rury i przepływy mogą być ponownie wykorzystywane i zmieniane w kolejności w celu obsługi różnych potrzeb biznesowych.
Deweloperzy piszą kod w języku opartym na JVM i nie muszą uczyć się MapReduce. Powstały program można przetestować regresywnie i zintegrować z aplikacjami zewnętrznymi, tak jak każdą inną aplikację Java.
Kaskadowanie jest najczęściej używane do kierowania reklam, analizy plików dziennika, bioinformatyki, uczenia maszynowego, analiz predykcyjnych , eksploracji treści internetowych oraz aplikacji wyodrębniania, przekształcania i ładowania (ETL).
Zastosowania kaskadowania
Cascading został wymieniony jako jeden z pięciu najpotężniejszych projektów Hadoop przez SD Times w 2011 r., [ niewiarygodne źródło? ] jako duży projekt open source związany z bioinformatyką [ niewiarygodne źródło? ] i jest zawarty w Hadoop: A Definitive Guide autorstwa Toma White'a. Projekt był również cytowany w prezentacjach, materiałach konferencyjnych i spotkaniach grup użytkowników Hadoop jako przydatne narzędzie do pracy z Hadoop i Apache Spark
- MultiTool w Amazon Web Services został opracowany przy użyciu kaskadowania.
- LogAnalyzer dla Amazon CloudFront został opracowany przy użyciu kaskadowania.
- BackType - platforma do analityki społecznościowej
- Etsy — rynek
- FlightCaster - przewidywanie opóźnień lotów
- Ion Flux - analiza danych sekwencji DNA
- RapLeaf - systemy personalizacji i rekomendacji
- Razorfish - reklama cyfrowa
Języki specyficzne dla domeny oparte na kaskadzie
- PyCascading – przez Twittera, dostępny na GitHubie
- Cascading.jruby - opracowany przez Gregoire Marabout, dostępny na GitHub
- Cascalog - autorstwa Nathana Marza, dostępny na GitHubie
- Scalding — interfejs API Scali do kaskadowania. Ułatwia przejście kodu Cascading/Scalding do platformy Spark. Przez Twitter, dostępne na GitHub