Kaskadowanie (oprogramowanie)

Kaskadowe
Wersja stabilna
3.3.0 / 24 marca 2018 r . ; 4 lata temu ( 2018-03-24 )
Wersja podglądu
4.0-wip-120 / 27 marca 2021 ; 23 miesiące temu ( 2021-03-27 )
Magazyn github .com /Kaskadowanie /kaskadowanie
Napisane w Jawa
Licencja Licencja Apache v2
Strona internetowa www .kaskadowanie .org

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

Linki zewnętrzne