Cascading es una capa de abstracción de software para Apache Hadoop y Apache Flink . Se utiliza para crear y ejecutar flujos de trabajo complejos de procesamiento de datos en un clúster de Hadoop mediante cualquier lenguaje basado en JVM ( Java , JRuby , Clojure , etc.), ocultando la complejidad subyacente de los trabajos MapReduce . Es de código abierto y está disponible bajo la licencia Apache . Driven, Inc. ofrece soporte comercial [ 4 ].
Cascading fue creado originalmente por Chris Wensel, quien más tarde fundó Concurrent, Inc., que posteriormente cambió su nombre a Driven. [ 5 ] Cascading está siendo desarrollado activamente por la comunidad y existen varios módulos adicionales disponibles. [ 6 ]
Arquitectura
Para usar 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.
Cascading aprovecha la escalabilidad de Hadoop, pero abstrae las operaciones estándar de procesamiento de datos de las tareas subyacentes de mapeo y reducción. [ 7 ] Los desarrolladores utilizan Cascading para crear un archivo .jar que describe los procesos necesarios. Sigue un paradigma de "origen-tubería-sumidero", donde los datos se capturan desde las fuentes, siguen "tuberías" reutilizables que realizan procesos de análisis de datos, y los resultados se almacenan en archivos de salida o "sumideros". Las tuberías se crean independientemente de los datos que procesarán. Una vez vinculadas a las fuentes y sumideros de datos, se denominan "flujos". Estos flujos se pueden agrupar en una "cascada", y el planificador de procesos se asegurará de 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 empresariales. [ 8 ]
Los desarrolladores escriben el código en un lenguaje basado en JVM y no necesitan aprender MapReduce. El programa resultante se puede someter a pruebas de regresión e integrar con aplicaciones externas como cualquier otra aplicación Java. [ 9 ]
El procesamiento 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 cascada
Cascading fue citado como uno de los cinco proyectos Hadoop más potentes por SD Times en 2011, [ 10 ] como un importante proyecto de código abierto relevante para la bioinformática [ 11 ] 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 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 construidos sobre cascada
- PyCascading [ 25 ] - por Twitter, disponible en GitHub
- Cascading.jruby [ 26 ] - desarrollado por Gregoire Marabout, disponible en GitHub
- Cascalog [ 27 ] - escrito por Nathan Marz , disponible en GitHub
- Scalding [ 28 ] - Una API de Scala para Cascading. Facilita la transición de código Cascading/Scalding a Spark. Por Twitter, disponible en GitHub.
Referencias
- ↑ "Releases · Cascading/cascading" . github.com . Consultado el 29 de marzo de 2021 .
- ↑ "Versiones · 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 .
- ↑ "Soporte en cascada e impulsado " . Impulsado .
- 1 2 "Integrate.io - Una plataforma para respaldar todo su recorrido de datos" . Integrate.io .
- ↑ "Módulos en cascada" . Archivado del original el 11 de agosto de 2011. Consultado el 22 de agosto de 2011 .
- 1 2 Entrada de blog de Etsy que describe su uso de Cascading con Hadoop
- ↑ "Guía del usuario de Cascading" (PDF) . Archivado del 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 visión general del marco Hadoop/MapReduce/HBase y sus aplicaciones actuales en bioinformática" . BioMed Central . Springer Science+Business Media . Recuperado el 26 de octubre de 2013 .
- ↑ White, Tom (24 de septiembre de 2010). Hadoop: La guía definitiva . O'Reilly Media, Inc. ISBN 9781449396893– vía Google Libros.
- ↑ "Primeros pasos con Hadoop" . www.slideshare.net .
- ↑ "Julio Guijarro, Steve Loughran y Paolo Castagna, "Hadoop y más allá", HP Labs, Bristol, Reino Unido, 2008" (PDF) . Archivado del original (PDF) el 1 de octubre de 2011. Consultado el 22 de agosto de 2011 .
- ↑ "Presentación de Flightcaster sobre Hadoop" . www.slideshare.net .
- ↑ "NoSQL, Hadoop, Cascading Junio 2010" . www.slideshare.net .
- ↑ "Uso de cascada para crear aplicaciones centradas en datos en Spark" . Spark Summit 2014. 7 de mayo de 2014. Consultado el 25 de marzo de 2016 .
- ↑ "Cascading.Multitool en AWS" .
- ↑ "Artículos de AWS" . Amazon Web Services, Inc.
- ↑ Blog de BackType Archivado el 25 de agosto de 2011 en Wayback Machine
- ↑ "FlightCaster" .
- ↑ "Flujo de iones" . Archivado del 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.
- ↑ "Scalding" . 22 de junio de 2023 – vía GitHub.
Enlaces externos
- Sitio web oficial
- Software libre programado en Java.
- Software de sistema gratuito
- Infraestructura en la nube
- Apache Hadoop
- Software que utiliza la licencia Apache.