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
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:Para solucionar el problema, puedes verificar:
Después de corregir la ubicación del archivo .jks, puedes volver a ejecutar el trabajo en el segundo servidor.