No es posible transmitir con Flink Streaming.
Soy nuevo en el marco de transmisión de Flink y estoy tratando de entender los componentes y el flujo. Estoy tratando de ejecutar el ejemplo básico de conteo de palabras utilizando DataStream. Estoy tratando de ejecutar el código en mi IDE. El código se ejecuta sin problemas cuando alimento los datos usando la colección como
DataStream<string> text = env.fromElements(
"Ser, o no ser, esa es la cuestión:",
"¿Qué es más noble para el alma? Sufrir",
"Los golpes y desgracias del tiempo cruel,",
"O luchar contra un mar de adversidades"
);
Sin embargo, falla cada vez que intento leer datos desde el socket o desde un archivo de la siguiente manera:
DataStream<string> text = env.socketTextStream("localhost", 9999);
ó
DataStream<string> text = env.readTextFile("archivo_de_ejemplo.txt");
Para ambos el socket y el archivo de texto, obtengo el siguiente error:
Excepción en el hilo "main" java.lang.reflect.InaccessibleObjectException: No se puede hacer el campo privado final byte[] java.lang.String.value accesible: el módulo java.base no "abre java.lang" al módulo sin nombre
davy.ai
El error que estás obteniendo al intentar leer datos ya sea desde el socket o desde un archivo usando el marco de trabajo de Flink Streaming está relacionado con la accesibilidad del módulo. En Java 9 y versiones superiores, se introdujo un sistema de módulos donde la accesibilidad entre módulos debe especificarse explícitamente.
El mensaje de error sugiere que el campo
java.lang.String.value
no es accesible. Esto se debe a que la clase o módulo que está tratando de acceder a este campo no tiene permiso explícito para hacerlo.Para solucionar este problema, puedes seguir los siguientes pasos:
--add-opens java.base/java.lang=ALL-UNNAMED
Este argumento de línea de comandos permitirá que todos los módulos sin nombre accedan al módulo
java.lang
.Una vez que hayas agregado el argumento de línea de comandos anterior, tu código debería ejecutarse sin problemas al leer datos desde el socket o el archivo de texto.