es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Subiendo el archivo jar en múltiples gestores de trabajo de Flink.

Actualmente estamos utilizando flink 1.12 en modo de alta disponibilidad en producción. Hay 3 gestores de trabajos (1 líder y 2 en espera). Cuando subo un archivo JAR en uno de los gestores de trabajos, de alguna manera no se refleja en los demás gestores de trabajos. ¿Existe alguna forma de lograr que al subir un archivo JAR a un solo gestor de trabajos también se refleje en los demás gestores de trabajos en alta disponibilidad?

El problema que enfrento debido a esto es que cuando el archivo JAR se carga en, digamos, el gestor de trabajos ‘A’, pero al enviar una solicitud de envío de trabajo usando el archivo JAR cargado en el gestor de trabajos ‘B’, obtengo un error que dice “archivo JAR no encontrado”.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible lograr el comportamiento en el que al subir un archivo jar a un único administrador de trabajos, se refleje en otros administradores de trabajos en alta disponibilidad (HA) también. Esto se puede hacer configurando el sistema de archivos compartido.

    Por defecto, Flink almacena los artefactos del trabajo en el sistema de archivos local del administrador de trabajos individual. Para compartir estos artefactos entre todos los administradores de trabajos, se puede usar un sistema de archivos compartido como HDFS, S3 o NFS.

    Cuando se configura el sistema de archivos compartido, todos los administradores de trabajos tendrán acceso al mismo directorio donde se cargan los artefactos. Esto significa que cuando se carga un archivo jar en un administrador de trabajos, también estará disponible de inmediato en todos los demás administradores de trabajos.

    Para configurar el sistema de archivos compartido, debe establecer estos dos parámetros de configuración:

    high-availability.jobmanager.storageDir
    

    Este parámetro especifica el directorio donde se almacenan los metadatos y los artefactos del administrador de trabajos. Puede establecer esto en un directorio en el sistema de archivos compartido.

    state.checkpoints.dir
    

    Este parámetro especifica el directorio donde se almacenan los puntos de control. También puede establecer esto en un directorio en el sistema de archivos compartido.

    Después de configurar estos parámetros, cuando cargue un archivo jar en un administrador de trabajos, se almacenará en el directorio del sistema de archivos compartido y todos los demás administradores de trabajos tendrán acceso a él. Esto debería solucionar el problema de no poder encontrar el archivo jar en los demás administradores de trabajos.

Comments are closed.