Capa de abstracción de software para Apache Hadoop y Apache Flink
Cascading es una capa de abstracción de software para Apache Hadoop y Apache Flink . Cascading se utiliza para crear y ejecutar flujos de trabajo de procesamiento de datos complejos en un clúster Hadoop utilizando cualquier lenguaje basado en JVM ( Java , JRuby , Clojure , etc.), ocultando la complejidad subyacente de los trabajos de MapReduce . Es de código abierto y está disponible bajo la licencia Apache . Driven, Inc. ofrece soporte comercial [4].
El creador original de Cascading fue Chris Wensel, quien más tarde fundó Concurrent, Inc., que pasó a llamarse Driven. [5] Cascading está siendo desarrollado activamente por la comunidad [ cita requerida ] y hay varios módulos complementarios disponibles. [6]
Arquitectura
Para utilizar Cascading, también debe estar instalado Apache Hadoop y el archivo .jar del trabajo de Hadoop debe contener los archivos .jar de Cascading. Cascading consta de una API de procesamiento de datos, una API de integración, un planificador de procesos y un programador de procesos.
El uso de cascadas aprovecha la escalabilidad de Hadoop, pero abstrae las operaciones de procesamiento de datos estándar del mapa subyacente y reduce las tareas. [7] [ Se necesita una mejor fuente ] Los desarrolladores usan cascadas para crear un archivo .jar que describe los procesos requeridos. Sigue un paradigma de "fuente-tubería-sumidero", donde los datos se capturan de las fuentes, siguen "tuberías" reutilizables que realizan procesos de análisis de datos, donde los resultados se almacenan en archivos de salida o "sumideros". Las tuberías se crean independientemente de los datos que procesarán. Una vez vinculados a las fuentes y sumideros de datos, se denomina "flujo". Estos flujos se pueden agrupar en una "cascada", y el programador de procesos garantizará que un flujo determinado no se ejecute hasta que se satisfagan todas sus dependencias. Las tuberías y los flujos se pueden reutilizar y reordenar para satisfacer diferentes necesidades comerciales. [8]
Los desarrolladores escriben el código en un lenguaje basado en JVM y no necesitan aprender MapReduce. El programa resultante puede someterse a pruebas de regresión e integrarse con aplicaciones externas como cualquier otra aplicación Java. [9]
La conexión en cascada se utiliza con mayor frecuencia para la segmentación de anuncios, el análisis de archivos de registro, la bioinformática, el aprendizaje automático, el análisis predictivo , la minería de contenido web y las aplicaciones de extracción, transformación y carga (ETL). [5]
Usos de la conexión en cascada
En 2011, SD Times citó a Cascading como uno de los cinco proyectos Hadoop más potentes [10] [ ¿fuente poco fiable? ], como un importante proyecto de código abierto relevante para la bioinformática [11] [ ¿fuente poco fiable? ] y está incluido en Hadoop: A Definitive Guide, de Tom White. [12] El proyecto también ha sido citado en presentaciones, actas de conferencias y reuniones de grupos de usuarios de Hadoop como una herramienta útil para trabajar con Hadoop [13] [14 ] [15] [16] y con Apache Spark [17].
- MultiTool en Amazon Web Services se desarrolló utilizando Cascading. [18]
- LogAnalyzer para Amazon CloudFront se desarrolló utilizando Cascading. [19]
- BackType [20] - plataforma de análisis social
- Etsy [7] - mercado
- FlightCaster [21] - predicción de retrasos en los vuelos
- Flujo de iones [22] : análisis de datos de secuencias de ADN
- RapLeaf [23] - sistemas de personalización y recomendación
- Razorfish [24] - publicidad digital
Lenguajes específicos de dominio creados en cascada
- PyCascading [25] - por Twitter, disponible en GitHub
- Cascading.jruby [26] - desarrollado por Gregoire Marabout, disponible en GitHub
- Cascalog [27] - creado por Nathan Marz, disponible en GitHub
- Scalding [28] - Una API de Scala para cascada. Facilita la transición de código en cascada/escaldado a Spark. Por Twitter, disponible en GitHub
Referencias
- ^ "Lanzamientos · En cascada/en cascada". github.com . Consultado el 29 de marzo de 2021 .
- ^ "Lanzamientos · cwensel/cascading". github.com . Consultado el 29 de marzo de 2021 .
- ^ "cascading/LICENSE.txt en 3.3 · Cascading/cascading". github.com . Consultado el 29 de marzo de 2021 .
- ^ "Cascada y Impulsado | Soporte". Impulsado .
- ^ ab "Integrate.io: una plataforma para respaldar todo su recorrido de datos". Integrate.io .
- ^ "Módulos en cascada". Archivado desde el original el 11 de agosto de 2011. Consultado el 22 de agosto de 2011 .
- ^ ab Publicación de blog de Etsy que describe su uso de Cascading con Hadoop
- ^ "Guía del usuario en cascada" (PDF) . Archivado desde el original (PDF) el 6 de febrero de 2011.
- ^ "Gestión del rendimiento de aplicaciones Hadoop: características de DRIVEN". Driven .
- ^ Handy, Alex (1 de junio de 2011). "Los cinco proyectos Hadoop más potentes". SD Times . Consultado el 26 de octubre de 2013 .
- ^ Taylor, Ronald (21 de diciembre de 2010). "Una descripción general del marco Hadoop/MapReduce/HBase y sus aplicaciones actuales en bioinformática". BioMed Central . Springer Science+Business Media . Consultado el 26 de octubre de 2013 .
- ^ White, Tom (24 de septiembre de 2010). Hadoop: la guía definitiva. "O'Reilly Media, Inc." ISBN 9781449396893– a través de Google Books.
- ^ "Introducción a Hadoop". www.slideshare.net .
- ^ "Julio Guijarro, Steve Loughran y Paolo Castagna, "Hadoop and beyond", HP Labs, Bristol, Reino Unido, 2008" (PDF) . Archivado desde el original (PDF) el 2011-10-01 . Consultado el 2011-08-22 .
- ^ "Presentación de Flightcaster Hadoop". www.slideshare.net .
- ^ "NoSQL, Hadoop, en cascada, junio de 2010". www.slideshare.net .
- ^ "Uso de cascada para crear aplicaciones centradas en datos en Spark". Spark Summit 2014. 2014-05-07 . Consultado el 2016-03-25 .
- ^ "Cascading.Multitool en AWS".
- ^ "Artículos de AWS". Amazon Web Services, Inc.
- ^ Blog BackType Archivado el 25 de agosto de 2011 en Wayback Machine.
- ^ "VueloCaster".
- ^ "Flujo de iones". Archivado desde el original el 23 de octubre de 2011.
- ^ Blog de RapLeaf Archivado el 1 de febrero de 2011 en Wayback Machine.
- ^ "Estudio de caso de Razorfish". Amazon Web Services, Inc.
- ^ "PyCascading ya no recibe mantenimiento". GitHub . 17 de septiembre de 2021.
- ^ "Cascading.JRuby". 8 de agosto de 2018 – vía GitHub.
- ^ "Cascalog". 23 de junio de 2023 – vía GitHub.
- ^ "Escaldado". 22 de junio de 2023 – vía GitHub.
Enlaces externos