首页 > 其他分享 >IDEA 2024 配置 Flink Scala开发环境

IDEA 2024 配置 Flink Scala开发环境

时间:2024-06-20 18:44:02浏览次数:11  
标签:Flink Scala -- flink IDEA 版本 2.12

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

    之后确认即可

标签:Flink,Scala,--,flink,IDEA,版本,2.12
From: https://www.cnblogs.com/INnoVationv2/p/18259277

相关文章

  • flink版本: 1.14.6 flink水位生成以及基于水位触发窗口的计算
    Flink是间断性(punctuate)或者周期性(periodic)生成水位线的1.定义和用途*punctuate:为每条消息都尝试生成watermark,这提供了更细粒度的控制,但增加了不必要的计算开销*periodic:周期性的生成watermark,可以通过env.getConfig().setAutoWatermarkInterval(1*1000L)设置周期间......
  • flink 如果是有序流,还需要 forMonotonousTimestamps吗
    如果数据是有序的,即数据完全按照时间发生的顺序到达,那么在flink中,虽然理论上不需要额外的Watermark策略来标识数据的有序性,但使用forMonotonousTimestamps策略仍然有其必要性。以下是详细解释:水位的作用即使数据完全有序,flink的窗口计算仍然需要watermark来触发。watermark提......
  • Flink状态(一)
    key状态和算子状态key状态key状态总是与key有关,只能被用于keyedStream类型的函数与算子。你可以认为key状态是一种被分区的算子状态,每一个key有一个状态分区。每一个key状态逻辑上由<parellel-operator-instance,key>唯一确定,由于每一个key只分布在key算子的多个并发实例中的一......
  • Flink状态(二)
    Flink提供了不同的状态存储方式,并说明了状态如何存和存储在哪里。状态可以被存储在Jvm的堆和堆外。根据状态存储方式的不同,Flink也能代替应用管理状态,意思是Flink能够进行内存管理(有必要的时候,可能会溢出到硬盘),允许应用保存非常大的状态。默认情况下,在配置文件flink-conf.yam......
  • Flink 窗口计算
    Flink窗口计算1.背景2.Watermark3.Watermark与Window之间的关系4.Window窗口计算1.背景在当今大数据时代,实时数据处理的需求日益增长,Flink的窗口计算在这一领域中发挥着至关重要的作用。窗口计算使得我们能够将无界的数据流切分成有意义的片段,从而进行......
  • IDEA~安装spring-javaformat插件
    相关文章springboot~代码风格统计spring-javaformat-maven-plugin插件springboot~spring-javaformat插件惹的祸说明在项目中,我们可以通过安装maven插件,spring-javaformat来达到代码统一的目的,而在idea中,为了与maven插件保持一致,我们最好也安装一个这个插件插件地址https:/......
  • IDEA报错:Cannot invoke(class=Package]sonListener,method=after,topic=BulkFileListe
    1.问题描述安装IDEA23年版本后创建.java文件失败并报错无法创建类无法解析模板"Class",措误消息:Cannotinvoke(class=Package]sonListener,method=after,topic=BulkFileListener)2.解决方式按如下图片检查以下设置2.1检查文件类型2.2检查文件和代码模板2.3检......
  • 1950 Springboot汽修技能点评系统idea开发mysql数据库APP应用java编程计算机网页源码m
    一、源码特点 springboot汽修技能点评系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSPjava编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。前段主要技术bootstrap.cssjquery......
  • ADO.NET ExecuteScalar 方法的使用及注意
    ExecuteScalar方法允许我们查询单一结果,我们来看看什么是单一结果,有那些需要注意的事项1.下面是我对 ExecuteScalar的简单封装,接下来我们看看,如何使用///<summary>///查询单一结果///</summary>///<paramname="sql"></param>///<paramname="pars"></param>......
  • 解决Ubuntu 下 idea Dock 图标显示错乱
    问题表现通过官网下载的ideaubuntu安装包安装之后,默认是需要通过sh脚本运行的,我们可以通过在/usr/share/applications创建一个.desktop的文件,来生成一个可以被ubuntu识别的应用。在我的Ubuntu下,idea的配置如下:[DesktopEntry]Name=IntelliJIDEAComment=IntelliJ......