Ayudando al Internet industrial de las cosas y al dominio de servicios de Big Data industrial: introducción de AirFlow [31]

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.

        imagen-20210117143520344

      • 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.
    • 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

    imagen-20211005105421215

    • 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.
  • 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
        

        imagen-20211015102148871

      • Iniciar flujo de aire

        # 以后台进程方式,启动服务
        airflow webserver -D
        airflow scheduler -D
        airflow celery flower -D
        airflow celery worker -D
        

        imagen-20211015102430125

        • 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

Supongo que te gusta

Origin blog.csdn.net/xianyu120/article/details/132204164
Recomendado
Clasificación