更新时间:2024-08-03 GMT+08:00

导入并配置Flink样例工程

操作场景

Flink针对多个场景提供样例工程,包含Java样例工程和Scala样例工程等,帮助客户快速学习Flink工程。

针对Java和Scala不同语言的工程,其导入方式相同。

以下操作步骤以导入Java样例代码为例。操作流程如图1所示。

图1 导入样例工程流程

操作步骤

  1. 参考获取MRS应用开发样例工程,获取样例代码解压目录中“src\flink-examples”目录下的样例工程文件夹“flink-examples-security”。

    • 在安全模式下,获取“src\flink-examples”下的样例工程flink-examples-security。
    • 在普通模式下,获取“src\flink-examples”下的样例工程flink-examples-normal。

  2. 在导入样例工程之前,IntelliJ IDEA需要进行配置JDK。

    1. 打开IntelliJ IDEA,单击“Configure”下拉按钮。
      图2 Choosing Configure
    2. “Configure”下拉菜单中单击“Project Defaults”
      图3 Choosing Project Defaults
    3. “Project Defaults”菜单中选择“Project Structure”
      图4 Project Defaults
    4. 在打开的“Project Structure”页面中,选择“SDKs”,单击绿色加号添加JDK。
      图5 添加JDK
    5. 在弹出的“Select Home Directory for JDK”窗口,选择对应的JDK目录,然后单击“OK”
      图6 选择JDK目录
    6. 完成JDK选择后,单击“OK”完成配置。
      图7 完成JDK配置

  3. (可选)如果导入Scala语言开发样例工程,还需要在IntelliJ IDEA中安装Scala插件。

    1. “Configure”下拉菜单中,单击“Plugins”
      图8 Plugins
    2. “Plugins”页面,选择“Install plugin from disk”
      图9 Install plugin from disk
    3. “Choose Plugin File”页面,选择对应版本的Scala插件包,单击“OK”
      图10 choose plugin File
    4. “Plugins”页面,单击“Apply”安装Scala插件。
    5. 在弹出的Platform and Plugin Updates页面,单击“Restart”,使配置生效。
      图11 Platform and Plugin Updates

  4. 将Java样例工程导入到IDEA中。

    1. 打开IntelliJ IDEA。在“Quick Start”页面选择“Import Project”

      或者,针对已使用过的IDEA工具,您可以从IDEA主界面直接添加。选择File > Import project...导入工程。

      图12 Import Project(Quick Start页面)
    2. 选择需导入的样例工程路径,然后单击“OK”
      图13 Select File or Directory to Import
    3. 选择从已存在的源码创建工程,然后单击“Next”
      图14 Create project from existing sources
    4. 确认导入路径和工程名称,单击“Next”
      图15 Import Project
    5. 确认导入工程的root目录,默认即可,单击“Next”
      图16 Import Project
    6. 确认IDEA自动识别的依赖库以及建议的模块结构,默认即可,单击“Next”
    7. 确认工程所用JDK,然后单击“Next”
    8. 导入结束,单击“Finish”,IDEA主页显示导入的样例工程。
      图17 导入结束
      图18 已导入工程

  5. 导入样例工程依赖的Jar包。

    如果通过开源镜像站方式获取的样例工程代码,在配置好Maven后, 相关依赖jar包将自动下载,不需手动添加。

    当样例代码使用其他FusionInsight组件时,例如Kafka等,请去对应FusionInsight组件的服务端安装目录查找并添加依赖包。样例工程对应的依赖包详情,请参见样例工程运行依赖包参考信息

  6. (可选)如果导入Scala语言开发的样例程序,还需要为工程设置语言。

    1. 在IDEA主页,选择File>Project Structures...进入“Project Structure”页面。
    2. 选择“Modules”,选中工程名称,然后右键选择Add > Scala
      图19 选择Scala语言
    3. 当IDEA可以识别出Scala SDK时,在设置界面,选择编译的依赖jar包,然后单击“OK”应用设置
      图20 Add Scala Support
    4. 当系统无法识别出Scala SDK时,需要自行创建。
      1. 单击“Create...”
        图21 Create...
      2. “Select JAR's for the new Scala SDK”页面单击“Browse...”
        图22 Select JAR's for the new Scala SDK
      3. “Scala SDK files”页面选择scala sdk目录,单击“OK”
        图23 Scala SDK files
    5. 设置成功,单击“OK”保存设置。
      图24 设置成功

  7. 设置IDEA的文本文件编码格式,解决乱码显示问题。

    1. 在IDEA首页,选择File > Settings...
      图25 选择Settings
    2. 编码配置。
      1. “Settings”页面,展开“Editor”,选择“File Encodings”
      2. 分别在右侧的“IDE Encoding”“Project Encoding”的下拉框中,选择“UTF-8”
      3. 单击“Apply”应用配置。
      4. 单击“OK”完成编码配置。
      图26 Settings

样例工程运行依赖包参考信息

Flink客户端lib目录、opt目录中都有flink jar包,其中lib目录中默认是flink核心jar包,opt目录中是对接外部组件的jar包(例如flink-connector-kafka*.jar),若应用开发中需要请手动复制相关jar包到lib目录中。

针对Flink提供的几个样例工程,其对应的运行依赖包如下:

表1 样例工程运行依赖包

样例工程

依赖包

依赖包获取地址

  • DataStream程序
  • 异步Checkpoint机制程序

flink-dist_*.jar

可在Flink的客户端或者服务端安装路径的lib目录下获取。

  • 使用Flink Jar提交SQL作业程序
  • FlinkServer REST API程序
  • flink-dist_*.jar
  • flink-table_*.jar

可在Flink的客户端或者服务端安装路径的lib目录下获取。

向Kafka生产并消费数据程序

  • kafka-clients-*.jar
  • flink-connector-kafka_*.jar
  • kafka-clients-*.jar由Kafka组件发布提供,可在Kafka组件客户端或者服务端安装路径下的lib目录下获取。
  • flink-connector-kafka_*.jar可在Flink客户端或者服务端安装路径的opt目录下获取。

pipeline程序

  • flink-connector-netty_*.jar
  • flink-dist_*.jar
  • flink-connector-netty_*.jar可在二次开发样例代码编译后产生的lib文件夹下获取。
  • flink-dist_*.jar可在Flink的客户端或者服务端安装路径的lib目录下获取。

Stream SQL Join程序

  • kafka-clients-*.jar
  • flink-connector-kafka_*.jar
  • flink-dist_*.jar
  • flink-table_*.jar
  • kafka-clients-*.jar由Kafka组件发布提供,可在Kafka组件客户端或者服务端安装路径下的lib目录下获取。
  • flink-connector-kafka_*.jar可在Flink客户端或者服务端安装路径的opt目录下获取。
  • flink-dist_*.jar、flink-table_*.jar可在Flink的客户端或者服务端安装路径的lib目录下获取。

Flink读写HBase程序

  • flink-connector-hbase*.jar
  • flink-dist_*.jar
  • flink-table_*.jar
  • hbase-clients-*.jar
  • flink-connector-hbase_*.jar可在Flink客户端或者服务端安装路径的opt目录下获取。
  • flink-dist_*.jar、flink-table_*.jar可在Flink的客户端或者服务端安装路径的lib目录下获取。
  • hbase-clients-*.jar由HBase组件发布提供,可在HBase组件客户端或者服务端安装路径下的lib目录下获取。

Flink读写Hudi程序

hbase-unsafe-*.jar

可在二次开发样例代码编译后产生的lib文件夹下获取。