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.

La presentación de la tarea Flink arroja una excepción java.nio.file.NoSuchFileException, aunque el archivo realmente existe.

Intenté enviar una tarea de Flink que ya estaba empaquetada en un archivo JAR. Básicamente, consume un tema de Kafka protegido por autenticación SASL, por lo que requiere un archivo .jks, que ya los incluyo en el JAR y los leo en el código de la siguiente manera:

try(InputStream resourceStream = loader.getResourceAsStream(configFile)){
    properties.load(resourceStream);
    properties.setProperty("ssl.truststore.location",
        loader.getResource(properties.getProperty("ssl.truststore.location")).toURI().getPath());
}
catch(Exception e){
    System.out.println("Error al cargar la configuración");
}

Intenté enviar la tarea en dos servidores independientes (con especificaciones de máquina virtual diferentes) con el objetivo de realizar pruebas. Un servidor se ejecuta correctamente, pero el otro muestra una java.nio.file.NoSuchFileException, indicando que no se encuentra mi archivo .jks. ¿Alguien puede señalar cuál podría ser el problema posible?

Aquí, Flink está desplegado en un clúster independiente con la siguiente versión:
– Versión de Flink: 1.14.0
– Versión de Java: 11.0.13

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la ubicación del archivo .jks que no se encuentra en el segundo servidor. El fragmento de código proporcionado lee la ubicación del archivo .jks desde un archivo de configuración y establece la ubicación utilizando el método setProperty.

    Las posibles razones del error NoSuchFileException son:

    1. La ubicación del archivo .jks especificada en el archivo de configuración es incorrecta en el segundo servidor.
    2. El archivo no está disponible en el segundo servidor.
    3. La ruta del archivo .jks es incorrecta en el segundo servidor.

    Para solucionar el problema, puedes verificar:

    1. Verificar la ubicación y la ruta del archivo .jks en el segundo servidor.
    2. Comprobar si el archivo .jks está presente en el segundo servidor.
    3. Asegurarse de que el archivo tenga los permisos necesarios para ser accesible por el trabajo de Flink.
    4. Verificar que el archivo de configuración utilizado en ambos servidores sea el mismo y tenga la ubicación correcta del archivo .jks especificada.
    5. Considerar copiar el archivo .jks a una ubicación común accesible por ambos servidores para facilitar su uso.

    Después de corregir la ubicación del archivo .jks, puedes volver a ejecutar el trabajo en el segundo servidor.

Comments are closed.