IDEA 2024 配置 Flink Scala开发环境

IDEA 2024 配置 Flink Scala开发环境

一、环境

IntelliJ IDEA 2024.1 (Ultimate Edition)
项目JDK版本:Zulu JDK11
Scala 2.12.19
Scala编译ServerJDK版本: JDK21
Flink 1.19.1

二、步骤、

  1. 创建Java项目

    image-20240620175044000
  2. 安装Scala插件,安装后重启

    位置:Settings --> Plugins --> Marketplace

    image-20240620172929659
  3. 设置Scala编译器

    进入 File --> Project Structure --> Global Libraries

    image-20240620173131345
  4. 配置Scala编译器

    左上角+号 --> Scala SDK --> Download,选择2.12.19,等待下载完成

    之后选择2.12.19,点击OK

    image-20240620173334410

    不要退出,点击Libraries,再次添加Scala SDK,选择2.13.14

    image-20240620183839089

到期项目配置完成,接下来创建WordCount进行测试

  1. Maven添加以下配置

    <properties>
      <maven.compiler.source>17</maven.compiler.source>
      <maven.compiler.target>17</maven.compiler.target>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <flink.version>1.19.1</flink.version>
      <scala.version>2.12</scala.version>
    </properties>
    
    <dependencies>
      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-scala_${scala.version}</artifactId>
        <version>${flink.version}</version>
      </dependency>
    
      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-scala_${scala.version}</artifactId>
        <version>${flink.version}</version>
      </dependency>
    
      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-clients</artifactId>
        <version>${flink.version}</version>
      </dependency>
    </dependencies>
    
  2. src中添加scala文件夹并标记为Source Root

    image-20240620174055796
  3. 新建Main.scala

    package com.innovationv2
    
    import org.apache.flink.streaming.api.scala._
    
    object Main {
      def main(args: Array[String]): Unit = {
        val env = StreamExecutionEnvironment.getExecutionEnvironment
        val lineDS = env.socketTextStream("localhost", 9998)
        lineDS
          .flatMap(_.split(" "))
          .filter(_.nonEmpty)
          .map((_,1))
          .keyBy(_._1)
          .sum(1)
          .print()
        env.execute()
      }
    }
    
  4. 测试

    打开终端,启动nc

    nc -lk 9998
    

    运行Flink项目

    在终端输入字符,Flink会输出结果

    image-20240620175410126

三、附录

3.1 Scala版本要和Flink依赖的Scala版本统一

比如我们使用的Flink依赖的Scala版本是2.12,那么项目使用的Scala也必须是2.12

3.2 Scala要选JDK支持版本

JDK支持的Scala最低版本网址:https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html

image-20240620180200427

如图,JDK21支持的2.12的最低版本为2.12.18,如果Scala低于这个版本,将会报错

如果出现问题,可在Settings --> Build, Execution, Deployment --> Compiler --> Scala Compiler --> Scala Compiler Server 切换JDK版本,这里我们选择JDK21

image-20240620180454230

3.3 JDK版本要与Flink支持版本统一

https://nightlies.apache.org/flink/flink-docs-release-1.19/zh/docs/deployment/java_compatibility/

查看Flink1.19的文档,发现只支持到JDK11,JDK17只是实验性加入,未正式支持。测试下来JDK17的确会报错,本项目使用JDK11

进入File --> Project Sturcture

  1. 选择Project,SDK切换为Flink支持的版本

    image-20240620183100485
  2. 选择Modules

    1. Sources 选择对应的JDK版本

      image-20240620183121628
    2. Dependencies,选择对应版本JDK

      image-20240620183139381

    之后确认即可

posted @ 2024-06-20 18:38  INnoVation-V2  阅读(13)  评论(0编辑  收藏  举报