Principios básicos de Oozie
Introducción a Oozie
Oozie es un motor de flujo de trabajo de código abierto que se utiliza para programar y coordinar trabajos de Hadoop.
Arquitectura
El motor de Oozie es una aplicación web integrada en Tomcat por defecto. Oozie usa bases de datos de PostgreSQL.
Oozie proporciona una consola web basada en Ext, a través de la cual los usuarios pueden ver y supervisar los flujos de trabajo de Oozie. Oozie proporciona una API de servicio web REST externa para que el cliente Oozie controle los flujos de trabajo (como iniciar y detener operaciones), y organizar y ejecutar tareas de MapReduce de Hadoop. Para obtener más información, consulte Figura 1.
Tabla 1 describe las funciones de cada módulo mostrado en Figura 1.
Nombre de la conexión |
Descripción |
---|---|
Console |
Permite a los usuarios ver y supervisar los flujos de trabajo de Oozie. |
Client |
Controla los flujos de trabajo, incluidos los flujos de trabajo de envío, inicio, ejecución, plantación y restauración, a través de API. |
SDK |
Es la abreviatura de kit de desarrollo de software. Un SDK es un conjunto de herramientas de desarrollo utilizadas por los ingenieros de software para establecer aplicaciones para paquetes de software particulares, marcos de software, plataformas de hardware y sistemas operativos. |
Database |
Base de datos de PostgreSQL |
WebApp (Oozie) |
Funciona como el servidor de Oozie. Se puede implementar en un contenedor Tomcat integrado o externo. La información registrada por WebApp (Oozie), incluidos logs se almacena en la base de datos de PostgreSQL. |
Tomcat |
Un servidor de aplicaciones de web de código abierto gratuito |
Hadoop components |
Componentes subyacentes, como MapReduce y Hive, que ejecutan los flujos de trabajo orquestados por Oozie. |
Principio
Oozie es un servidor de motor de flujo de trabajo que ejecuta flujos de trabajo de MapReduce. También es una aplicación web Java que se ejecuta en un contenedor Tomcat.
Los flujos de trabajo de Oozie se construyen usando Hadoop Process Definition Language (HPDL). HPDL es un lenguaje definido por XML, similar a JBoss jBPM Process Definition Language (jPDL). Un flujo de trabajo de Oozie consiste en el nodo de control y el nodo de acción.
- Control Node controla la orquestación del flujo de trabajo, como start, end, error, decision, fork y join.
- Un flujo de trabajo de Oozie contiene varios nodos de acción, como MapReduce y Java.
Todos los nodos de acción se implementan y se ejecutan en modo Direct Acyclic Graph (DAG). Por lo tanto, los nodos de acción se ejecutan en dirección. Es decir, el siguiente nodo de acción sólo puede ejecutarse cuando finaliza la ejecución del anterior nodo de acción. Cuando finaliza un nodo de acción, el servidor remoto vuelve a invocar a la interfaz de Oozie. A continuación, Oozie ejecuta el siguiente nodo de acción del flujo de trabajo de la misma manera hasta que se ejecuten todos los nodos de acción (se cuentan los errores de ejecución).
Los flujos de trabajo de Oozie proporcionan varios tipos de nodos de acción, como MapReduce sistemas de archivos distribuidos de Hadoop (HDFS), Secure Shell (SSH), Java y subflujos de Oozie, para soportar una amplia gama de requisitos empresariales.