Configuración del Entorno de Desarrollo Scala con Flink en IntelliJ IDEA 2024

Para establecer un entorno de desarrollo Scala con Apache Flink en IntelliJ IDEA 2024, se requiere una configuración específica de versiones y plugins. El entorno base incluye IntelliJ IDEA 2024.1 (Ultimate Edition), JDK11 (como Zulu JDK11), Scala 2.12.19, y Flink 1.19.1. A continuación, se detalla el procedimiento paso a paso.

Preparación del Entorno

Comience creando un proyecto Java en IntelliJ IDEA. Luego, instale el plugin de Scala desde el Marketplace en Ajustes > Plugins y reinicie el IDE. Después, configure el SDK de Scala en Estructura del Proyecto > Bibliotecas Globales. Agregue Scala SDK 2.12.19 mediante descarga, y luego añada una versión adicional como Scala SDK 2.13.14 para compatibilidad.

Configuración del Proyecto

Modifique el archivo pom.xml de Maven para incluir las dependencias de Flink y las propiedades del proyecto. Asegúrese de que la versión de Scala coincida con la requerida por Flink.

<properties>
    <java.version>17</java.version>
    <encoding>UTF-8</encoding>
    <flink.release>1.19.1</flink.release>
    <scala.binary.version>2.12</scala.binary.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-scala_${scala.binary.version}</artifactId>
        <version>${flink.release}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
        <version>${flink.release}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-clients</artifactId>
        <version>${flink.release}</version>
    </dependency>
</dependencies>

En la estructura del proyecto, cree una carpeta src/main/scala y márquela como Raíz de Fuentes. Luego, implemente una aplicación de ejemplo para verificar la configuración.

Implementación de Código de Ejemplo

Desarrolle un objeto Scala para un conteo de palabras simple usando Flink Streaming. Ajuste la lógica y los nombres de variables para reducir la similitud con ejemplos comunes.

package com.ejemplo.flink

import org.apache.flink.streaming.api.scala.{StreamExecutionEnvironment, _}

object WordCountApp {
  def main(args: Array[String]): Unit = {
    val executionContext = StreamExecutionEnvironment.getExecutionEnvironment
    val dataStream = executionContext.socketTextStream("localhost", 9998)
    val processedStream = dataStream
      .flatMap(line => line.split("\\s+"))
      .filter(token => token.nonEmpty)
      .map(token => (token, 1))
      .keyBy(pair => pair._1)
      .reduce((a, b) => (a._1, a._2 + b._2))
      .print()
    executionContext.execute("Word Count Job")
  }
}

Verificación y Pruebas

Ejecute un servidor netcat en la terminal para simular una fuente de datos: nc -lk 9998. Inicie la aplicación Flink desde IntelliJ IDEA e ingrese texto en la terminal. Debería ver los resultados del conteo de palabras en la consola del IDE.

Notas sobre Compatibilidad

Es crucial mantener la coherencia en las versiones: la versión de Scala en el proyecto debe coincidir con la usada por Flink (por ejemplo, Scala 2.12 para Flink 1.19.1). Además, verifique la compatibilidad de JDK según la documentación oficial de Scala y Flink. Por ejemplo, JDK 21 requiere Scala 2.12.18 o superier, y Flink 1.19.1 soporta JDK 11 de manera estable. Si surgen errores, ajuste la versión del JDK en Ajustes > Build, Execusion, Deployment > Compilador > Servidor de Compilación Scala.

Etiquetas: IntelliJ IDEA Apache Flink scala java maven

Publicado el 6-7 19:41