Logotipo de Zephyrnet

Introducción a Apache Oozie

Fecha:

Introducción

Este artículo será una guía profunda para principiantes en Apache Oozie. Apache Oozie es un sistema de programación de flujos de trabajo para administrar trabajos de Hadoop. Permite a los usuarios planificar y llevar a cabo flujos de trabajo de procesamiento de datos complejos mientras maneja varias tareas y operaciones en todo el ecosistema de Hadoop. Los usuarios de Oozie pueden describir las dependencias entre varios trabajos y actividades, designar la secuencia en la que deben ejecutarse y manejar problemas y reintentos. Admite muchas tecnologías relacionadas con Hadoop, incluidas Pig, Hive, Sqoop y Hadoop MapReduce. Oozie ofrece una API para interactuar con otras herramientas y sistemas y una interfaz basada en web para administrar y monitorear procesos. Apache Oozie es una herramienta eficaz para planificar y coordinar operaciones de datos importantes en Hadoop.

Fuente - Analytics Vidhya

Fuente: Analytics Vidhya

OBJETIVOS DE APRENDIZAJE:

En este artículo, usted:

  1. Comprender los conceptos básicos de Apache Oozie.
  2. ¿Cómo se creó Apache Oozie y su evolución a través del tiempo?
  3. ¿Cuál es el componente incluido en Apache Oozie?
  4. ¿Cuáles son sus características principales?
  5. Los componentes y el flujo de trabajo de Apache Oozie.

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Índice del contenido

Definición y descripción general

Una herramienta de programación de flujo de trabajo de código abierto, Apache Oozie ayuda a manejar y organizar las tareas de procesamiento de datos en toda la infraestructura basada en Hadoop.

Los usuarios pueden crear, planificar y controlar flujos de trabajo que contienen una serie coordinada de trabajos de Hadoop, scripts de Pig, búsquedas de Hive y otras operaciones. Oozie puede manejar dependencias de tareas, administrar mecanismos de reintento y admitir una variedad de tipos de flujo de trabajo, incluidos procesos simples y sofisticados.

En general, Oozie proporciona una plataforma flexible y adaptable para construir canalizaciones de datos en los sistemas Hadoop al mismo tiempo que facilita la gestión y programación de importantes procesos de procesamiento de datos.

Historia y Evolución de Oozie

Yahoo creó inicialmente Apache Oozie en 2008 como una herramienta para administrar de forma privada las operaciones de Hadoop. Más tarde, en 2011, estuvo disponible como una empresa de código abierto administrada por Apache Software Foundation.

Oozie ha tenido muchas actualizaciones y mejoras desde entonces para mejorar su rendimiento y funcionalidad. Por ejemplo, Oozie 3.2, lanzado en 2012, brindó capacidades adicionales como compatibilidad con acciones y subflujos de trabajo de Java y compatibilidad con Hadoop 2.x.

Para administrar y programar procesos masivos de procesamiento de datos, Oozie es un elemento fundamental ecosistema Hadoop componente de uso frecuente en entornos de producción. Su comunidad se ha expandido, con desarrolladores que contribuyen a su desarrollo y avances continuos.

Para ayudar a los usuarios a crear flujos de trabajo más complicados y manejar una gama más amplia de trabajos de procesamiento de datos, Oozie se ha integrado recientemente con otros productos del ecosistema Hadoop como Apache Spark y Apache Flink.

Componentes principales de Apache Oozie

El administrador de flujo de trabajo de Oozie y los coordinadores de Oozie son los dos componentes principales de administración de flujo de trabajo de Apache Oozie.

  • El administrador de flujo de trabajo de Oozie administra y ejecuta flujos de trabajo y secuencias de acciones que deben realizarse en un orden específico. El lenguaje de definición de flujo de trabajo (WDL), un lenguaje basado en el lenguaje de marcado extensible (XML), define los flujos de trabajo. La WDL describe el orden en que se deben llevar a cabo las actividades, los datos de entrada y salida requeridos por cada acción y sus interdependencias. Además de administrar las dependencias entre acciones y manejar errores, Workflow Manager analiza la WDL y lleva a cabo los pasos en el orden predeterminado.
  • Coordinadores de Oozie son responsables de organizar y supervisar los flujos de trabajo repetitivos. El lenguaje de aplicación del coordinador (CAL), un lenguaje basado en XML, define los coordinadores. Los coordinadores describen un cronograma para ejecutar flujos de trabajo, la entrada de datos para cada instancia del flujo de trabajo y las dependencias entre los casos del proceso. El Coordinador opera periódicamente y genera instancias de flujo de trabajo por el plan y los datos suministrados.

Workflow Manager y los coordinadores trabajan juntos para crear un sistema sólido para controlar y llevar a cabo flujos de trabajo complicados en entornos Hadoop. Con un API RESTful para el control programático, Oozie ofrece una interfaz gráfica de usuario basada en web para administrar flujos de trabajo y coordinadores.

oozie apache

Fuente: cloudduggu

Características clave de Oozie

Apache Oozie es una poderosa herramienta para administrar y programar actividades significativas de procesamiento de datos debido a sus muchas características esenciales. Estas características incluyen, entre otras:

  • Oozie permite a los usuarios crear, organizar y llevar a cabo colecciones de flujos de trabajo de tareas o acciones.
  • Oozie admite la programación de procesos repetitivos mediante coordinadores, lo que permite a los usuarios proporcionar un cronograma de cuándo se ejecutarán los flujos de trabajo.
  • Oozie admite la gestión de dependencias entre tareas y flujos de trabajo, lo que garantiza que las actividades se ejecuten en el orden adecuado y que los flujos de trabajo se completen correctamente.
  • Oozie se basa en una arquitectura modular y extensible que permite a los usuarios personalizar y ampliar sus funciones.
  • Oozie es altamente escalable y está diseñado para tareas de procesamiento de datos a gran escala en entornos informáticos distribuidos.
  • Oozie ofrece una interfaz gráfica de usuario basada en la web y una API RESTful para controlar y monitorear flujos de trabajo y coordinadores.
  • La integración de Oozie con otras tecnologías del ecosistema de Hadoop como Pig, Hive y MapReduce hace posible la creación de canalizaciones de procesamiento de datos complejas.
  • Oozie proporciona una herramienta completa de gestión y programación para las operaciones de procesamiento de datos masivos de los entornos de Hadoop.
oozie apache

Fuente: Proyecto pro

Componentes de Oozie

Apache Oozie es una poderosa herramienta para administrar y programar actividades significativas de procesamiento de datos debido a sus muchas características esenciales. Estas características incluyen, entre otras:

  • Gestión de flujo de trabajo: Oozie permite a los usuarios crear, organizar y llevar a cabo colecciones de flujos de trabajo de tareas o acciones.
  • Oozie admite la programación de procesos repetitivos mediante coordinadores, lo que permite a los usuarios proporcionar un cronograma de cuándo se ejecutarán los flujos de trabajo.
  • Gestión de dependencias: Oozie admite la gestión de dependencias entre tareas y flujos de trabajo, lo que garantiza que las actividades se ejecuten en el orden adecuado y que los flujos de trabajo se completen correctamente.
  • Arquitectura Extensible: Oozie se basa en una arquitectura modular y extensible que permite a los usuarios personalizar y ampliar sus funciones.
  • Escalabilidad: Oozie es altamente escalable y está diseñado para tareas de procesamiento de datos a gran escala en entornos informáticos distribuidos.
  • Seguimiento y Gestión: Oozie ofrece una interfaz gráfica de usuario basada en la web y una API RESTful para controlar y monitorear flujos de trabajo y coordinadores.
  • Integración con el ecosistema Hadoop: Es posible crear canales de procesamiento de datos complejos a través de la integración de Oozie con otras tecnologías del ecosistema Hadoop como Cerdo, Colmenay MapReduce.

Oozie proporciona una herramienta completa de gestión y programación para las operaciones de procesamiento de datos masivos de los entornos de Hadoop.

Flujo de trabajo de Oozie: Creación y diseño de un flujo de trabajo simple

Para crear y diseñar un flujo de trabajo simple en Oozie, siga estos pasos:

  • Establecer el flujo de trabajo: El flujo de trabajo debe crearse primero con el lenguaje de definición de flujo de trabajo (WDL). La WDL describe el orden en que se deben llevar a cabo las actividades, los datos de entrada y salida requeridos por cada acción y sus interdependencias.

Aquí hay un ejemplo de un WDL simple que realiza un conteo de palabras en un archivo de texto:

<workflow-app xmlns="uri:oozie:workflow:0.5" name="word-count"> <start to="word-count-action"/> <action name="word-count-action"> <map-reduce> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <configuration> <property> <name>mapred.mapper.class</name> <value>org.apache.hadoop.mapred.lib.IdentityMapper</value> </property> <property> <name>mapred.reducer.class</name> <value>org.apache.hadoop.mapred.lib.IdentityReducer</value> </property> <property> <name>mapred.input.dir</name> <value>/user/hadoop/input</value> </property> <property> <name>mapred.output.dir</name> <value>/user/hadoop/output</value> </property> </configuration> </map-reduce> <ok to="end"/> <error to="fail"/> </action> <kill name="fail"> <message>Workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <end name="end"/>
</workflow-app>
#import csv#import csv
  • Defina las actividades: Proporcione las acciones que se llevarán a cabo durante el flujo de trabajo en la WDL. Oozie admite varios tipos de acciones, incluidas acciones Java personalizadas, trabajos de Hadoop MapReduce, scripts de Pig y consultas de Hive.

En el ejemplo anterior de WDL, la acción es un trabajo de MapReduce que cuenta las palabras en un archivo de texto.

  • Configure el flujo de trabajo: En la WDL, configure el flujo de trabajo especificando los datos de entrada y salida para cada acción y cualquier otro parámetro de configuración requerido por la acción.

En el WDL de ejemplo anterior, los datos de entrada para el trabajo de MapReduce son un archivo de texto ubicado en /user/Hadoop/input, y los datos de salida se escriben en /user/Hadoop/output.

  • Una vez que se haya definido la WDL, envíela a Oozie mediante la consola web o la CLI de Oozie.
  • Envíe el flujo de trabajo en Utilice la CLI de Oozie o el portal en línea para enviar el flujo de trabajo a Oozie.

Conclusión

Para concluir, Apache Oozie es una herramienta esencial para organizar y llevar a cabo operaciones complejas en Hadoop. Muchas empresas utilizan Apache Oozie como herramienta principal. Los usuarios pueden planificar y coordinar diferentes tareas y procesos de Hadoop con Oozie, especificando sus dependencias y prioridades de ejecución. Esto permite un procesamiento y análisis de datos efectivos al tiempo que proporciona funciones de control y manejo de errores. Oozie ofrece una interfaz web fácil de usar, compatibilidad con muchas tecnologías relacionadas con Hadoop y API de integración de herramientas y sistemas simples. En última instancia, Oozie ayuda a las empresas a administrar y coordinar sus flujos de trabajo de big data de manera más efectiva, aumentando la producción, el procesamiento de datos y la efectividad del análisis.

oozie apache

Fuente: Enlyft

Puntos clave

  • Inicialmente, hemos visto la definición y la descripción general.
  • Historia y evolución de Oozie y comprensión de su administrador y coordinadores de flujo de trabajo
  • Y sus características clave de Oozie
  • Por fin, vimos los componentes y el flujo de trabajo de Oozie.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

punto_img

Información más reciente

punto_img