返回

从零开始构建第一个Flink工程:Maven与Gradle双模式全解析

人工智能

Apache Flink是一个开源的分布式流处理框架,能够高效地处理实时数据。Flink采用Java和Scala语言编写,并且支持多种部署模式,包括本地、集群和云端。为了方便开发人员快速上手Flink,本文将介绍如何使用Maven和Gradle两种构建工具来构建Flink项目。

Maven构建Flink项目

  1. 安装Maven

    首先,我们需要安装Maven。Maven是一个Java构建工具,可以帮助我们管理项目的依赖、构建和测试。Maven的安装步骤如下:

    1. 下载Maven安装包
    2. 将Maven安装包解压到一个目录中
    3. 将Maven的bin目录添加到系统的PATH环境变量中
  2. 创建Flink项目

    创建一个名为“my-flink-project”的目录,并在其中创建以下文件:

    pom.xml
    src/main/java/com/example/myflinkproject/MyFlinkJob.java
    
  3. 编写pom.xml

    pom.xml是Maven项目的配置文件,用于管理项目的依赖和构建信息。将以下内容添加到pom.xml文件中:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <groupId>com.example</groupId>
        <artifactId>my-flink-project</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <dependencies>
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-java</artifactId>
                <version>1.15.2</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-clients</artifactId>
                <version>1.15.2</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-shaded-hadoop-2-uber</artifactId>
                <version>3.2.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. 编写MyFlinkJob.java

    MyFlinkJob.java是我们的Flink应用程序的主类。将以下内容添加到MyFlinkJob.java文件中:

    package com.example.myflinkproject;
    
    import org.apache.flink.api.common.functions.MapFunction;
    import org.apache.flink.api.java.ExecutionEnvironment;
    import org.apache.flink.api.java.DataSet;
    
    public class MyFlinkJob {
    
        public static void main(String[] args) throws Exception {
            // 创建执行环境
            ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    
            // 创建数据集
            DataSet<String> input = env.fromElements("Hello", "World", "!");
    
            // 对数据集进行转换
            DataSet<String> output = input.map(new MapFunction<String, String>() {
                @Override
                public String map(String s) throws Exception {
                    return s.toUpperCase();
                }
            });
    
            // 输出结果
            output.print();
        }
    }
    
  5. 构建和运行Flink应用程序

    使用以下命令来构建和运行Flink应用程序:

    mvn clean package
    mvn exec:java -Dexec.mainClass="com.example.myflinkproject.MyFlinkJob"
    

Gradle构建Flink项目

  1. 安装Gradle

    首先,我们需要安装Gradle。Gradle是一个Java构建工具,可以帮助我们管理项目的依赖、构建和测试。Gradle的安装步骤如下:

    1. 下载Gradle安装包
    2. 将Gradle安装包解压到一个目录中
    3. 将Gradle的bin目录添加到系统的PATH环境变量中
  2. 创建Flink项目

    创建一个名为“my-flink-project”的目录,并在其中创建以下文件:

    build.gradle
    src/main/java/com/example/myflinkproject/MyFlinkJob.java
    
  3. 编写build.gradle

    build.gradle是Gradle项目的配置文件,用于管理项目的依赖和构建信息。将以下内容添加到build.gradle文件中:

    plugins {
        id 'java'
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'org.apache.flink:flink-java:1.15.2'
        implementation 'org.apache.flink:flink-clients:1.15.2'
        implementation 'org.apache.flink:flink-shaded-hadoop-2-uber:3.2.0'
    }
    
  4. 编写MyFlinkJob.java

    MyFlinkJob.java是我们的Flink应用程序的主类。将以下内容添加到MyFlinkJob.java文件中:

    package com.example.myflinkproject;
    
    import org.apache.flink.api.common.functions.MapFunction;
    import org.apache.flink.api.java.ExecutionEnvironment;
    import org.apache.flink.api.java.DataSet;
    
    public class MyFlinkJob {
    
        public static void main(String[] args) throws Exception {
            // 创建执行环境
            ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    
            // 创建数据集
            DataSet<String> input = env.fromElements("Hello", "World", "!");
    
            // 对数据集进行转换
            DataSet<String> output = input.map(new MapFunction<String, String>() {
                @Override
                public String map(String s) throws Exception {
                    return s.toUpperCase();
                }
            });
    
            // 输出结果
            output.print();
        }
    }
    
  5. 构建和运行Flink应用程序

    使用以下命令来构建和运行Flink应用程序:

    gradle clean build
    java -jar build/libs/my-flink-project-1.0-SNAPSHOT.jar
    

结论

本文介绍了如何使用Maven和Gradle两种构建工具来构建Apache Flink项目。通过遵循本文中的步骤,读者可以快速入门Flink开发,并能够创建自己的Flink应用程序。