Directorio de artículos
02: revisión de la programación del flujo de tareas
-
Objetivo : revisar los requisitos y herramientas comunes para la programación del flujo de tareas.
-
camino
- paso 1: requisitos
- paso 2: herramientas comunes
-
implementar
-
necesidad
-
La misma línea de negocio, con diferentes requisitos, se realizará mediante múltiples programas. Los requisitos de estos múltiples programas se combinan para formar un flujo de trabajo o flujo de tareas.
-
Operación automatizada del flujo de tareas basado en el flujo de trabajo.
-
Requisito 1: ejecución de tareas basada en el tiempo
- job1 y job2 se ejecutan automáticamente después de las 0:00 todos los días
-
Requisito 2: ejecución de tareas basada en dependencias en ejecución
- job3 debe esperar a que job1 se ejecute correctamente antes de poder ejecutarse
- job5 debe esperar a que tanto job3 como job4 se ejecuten correctamente antes de poder ejecutarse
-
tipo de programación
- Programación de tiempos : operación de programación basada en una regla de tiempo determinada
- Programación de flujo de trabajo
- Programación dependiente : programación y ejecución en función de determinadas dependencias.
- Dependencias de programas en un flujo de trabajo.
- Programación de tiempos : operación de programación basada en una regla de tiempo determinada
-
-
herramienta común
-
Oozie: Desarrollado por Cloudera, tiene funciones potentes y se basa en MR para lograr la distribución. Es muy conveniente integrar el desarrollo y el uso de Hue.
-
Desarrollo tradicional: archivo xml
<workflow> <start to="action1"> </start> <action name='action1'> <shell> </shell> <ok to='action2'> <kill to='killAction'> </action> <action name='action2'> <shell> </shell> <ok to='action3'> <kill to='killAction'> </action> …… </workflow>
-
En desarrollo: Hue edita DAG de forma independiente a través de una interfaz gráfica
-
Escenario: plataforma de big data CDH
-
-
Azkaban: desarrollado por LinkedIn, con una interfaz amigable, soporte completo para complementos, distribución independiente y se puede desarrollar usando propiedades o JSON.
-
Desarrolle el archivo de propiedades y comprímalo en un archivo zip.
name='appname2' type=command dependencies=appname1 comman='sh xxxx.sh'
-
Subir a la interfaz web
-
Escenario: plataforma Apache
-
-
AirFlow: desarrollado por Airbnb, distribución independiente, desarrollo e interacción del lenguaje Python, escenarios de aplicación más ricos
-
Desarrollar archivos Python
# step1:导包 # step2:函数调用
-
Enviar para ejecutar
-
Escenario: toda la plataforma de datos se desarrolla en base a Python
-
-
DolphinScheduler: I + D de Analysys, producto nacional de código abierto, alta confiabilidad, alta expansión, fácil de usar
-
-
-
-
resumen
- Revisar los requisitos y herramientas comunes para la programación del flujo de tareas.
03: Introducción al flujo de aire
-
Objetivo : Comprender las características funcionales y los escenarios de aplicación de AirFlow.
-
camino
- paso 1: fondo
- paso 2: diseño
- paso 3: función
- paso 4: características
- paso 5: aplicación
-
implementar
- origen
- En 2014, Airbnb creó un sistema de programación de flujo de trabajo: Airflow, que se utiliza para completar el procesamiento ETL complejo en su negocio. Desde la limpieza hasta el empalme, solo necesita configurar un conjunto de diagramas de flujo de aire.
- En 2016, fue de código abierto para la Fundación Apache.
- En 2019 se convirtió en un proyecto de primer nivel de la Fundación Apache: http://airflow.apache.org/.
- Diseño : aproveche la portabilidad y versatilidad de Python para crear rápidamente una plataforma de programación de flujo de tareas.
- Función : implementar programación de dependencia y programación de tiempo basada en Python
- características
- Programación de tareas distribuidas: permite ejecutar una tarea de flujo de trabajo simultáneamente en varios trabajadores
- Dependencias de tareas DAG: cree dependencias de tareas en un gráfico acíclico dirigido
- Atomicidad de la tarea: cada tarea en el flujo de trabajo se puede reintentar atómicamente, y una falla de tarea en un determinado enlace de un flujo de trabajo se puede reintentar automática o manualmente.
- Autopersonalización: puede crear cualquier tarea o herramienta de procesamiento que necesite programar en función del código.
- Ventajas: buena flexibilidad
- Desventajas: desarrollo complejo
- solicitud
- Uso recomendado del sistema según los antecedentes del desarrollo de Python.
- origen
-
resumen
- Comprender las características y escenarios de aplicación de AirFlow
04: Comienza la implementación de AirFlow
-
Objetivo : comprender la implementación y gestión de la herramienta AirFlow
-
camino
- Paso 1: instalar e implementar
- paso 2: iniciar la prueba
- paso 3: cerrar
-
implementar
-
Instalación e implementación
- Autoinstalación: "Consulte el Apéndice 1"
- Abandonar la instalación: restaure la instantánea de la máquina virtual a "Instalación de AirFlow completa"
-
iniciar prueba
-
Eliminar registros: hazlo después del segundo inicio
rm -f /root/airflow/airflow-*
-
Inicie Redis: cola de mensajes:
- Tareas de Redis no pendientes de nohub, /opt/redis-4.0.9/src/redis-server
- Cargue el archivo de configuración de Redis, /opt/redis-4.0.9/src/redis.conf
- output.log es el archivo de registro de almacenamiento
- El 2 en 2>&1 representa el registro de errores, se redirige al registro correcto y se coloca en output.log; de lo contrario, el registro de errores se imprimirá en la línea de comando de Linux.
- &Entre bastidores
nohup /opt/redis-4.0.9/src/redis-server /opt/redis-4.0.9/src/redis.conf > output.log 2>&1 & ps -ef | grep redis
-
Iniciar flujo de aire
# 以后台进程方式,启动服务 airflow webserver -D airflow scheduler -D airflow celery flower -D airflow celery worker -D
-
puerto de red de prueba
-
Interfaz de usuario web de flujo de aire:
node1:8085
-
Nombre de usuario Contraseña: administrador
-
Interfaz de usuario web de apio:
node1:5555
-
-
-
-
-
resumen
- Comprender la implementación y administración de la herramienta AirFlow