开发第一个Flink应用程序

下载maven

maven3.3.9下载

添加mvn到Path变量

下载完成后解压,将 apache-maven-3.3.9\bin 添加到系统Path变量中,如下图所示:
在这里插入图片描述

修改mvn的本地仓库路径

编辑 apache-maven-3.3.9/conf/settings.xml 文件,填写自定义路径。
在这里插入图片描述

创建工程

在命令行中输入:mvn archetype:generate -DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-java -DarchetypeVersion=1.9.0 -DarchetypeCatalog=local
创建工程。
按下图依次输入:在这里插入图片描述
创建Flink工程成功。

使用IDEA打开,添加BatchWCJavaApp.java文件

package com.imooc.flink.java.course02;
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.DataSource;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.util.Collector;

public class BatchWCJavaApp {
    public static void main(String[] args) throws Exception {
        String input = "file:///D:/workspace/other/flinkPro/flink-train-java/file/input";
        // 获取执行环境
        ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
        DataSource<String> text = env.readTextFile(input);
        text.flatMap(new FlatMapFunction<String, Tuple2<String,Integer>>() {
            @Override
            public void flatMap(String value, Collector<Tuple2<String, Integer>> collector) throws Exception {
                String[] tokens = value.toLowerCase().split("\t");
                for(String token : tokens){
                    collector.collect(new Tuple2<String, Integer>(token, 1));
                }
            }
        }).groupBy(0).sum(1).print();
    }
}

其中input文件中的内容为:

hello	world	welcome
hello	welcome

代码执行结果为:(world,1) (hello,2) (welcome,2)

### 如何在 IntelliJ IDEA 中进行 Flink 程序开发 要在 IntelliJ IDEA 中进行 Apache Flink程序开发,需要完成以下几个方面的配置和操作: #### 1. 开发环境准备 为了成功开发并运行 Flink 程序,在开始之前需确保已安装以下工具: - **Java Development Kit (JDK)**:推荐使用 JDK 8 或更高版本[^1]。 - **Apache Maven**:Maven 是用于构建和管理 Flink 项目的工具。 - **IntelliJ IDEA**:建议使用 2018 版本或更新版本的 IDE。 这些工具是基础依赖项,缺少任何一项都可能导致无法正常编译或运行 Flink 程序。 --- #### 2. 创建 Maven 工程 通过 Maven 构建一个新的工程来支持 Flink 应用程序开发。以下是创建过程中的关键步骤: - 打开 IntelliJ IDEA 并选择 `New Project` -> `Maven`。 - 配置好 Maven 和 JDK 路径后点击下一步。 - 输入 GroupId 和 ArtifactId 定义项目结构。 - 在 `pom.xml` 文件中引入必要的 Flink 依赖库。例如,对于 Scala 支持可以加入如下依赖[^4]: ```xml <dependencies> <!-- Flink Core --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-scala_2.11</artifactId> <version>1.13.0</version> </dependency> <!-- Other dependencies as needed --> </dependencies> ``` 上述 XML 块定义了 Flink Streaming API 对应于 Scala 编程语言的支持包及其具体版本号。 --- #### 3. 导入 Flink 源码(可选) 如果计划深入研究或者修改 Flink 核心逻辑,则可以从官方仓库下载最新源码,并将其导入到当前工作区中。此步骤并非强制性需求;但对于某些高级功能定制化场景非常有用。 --- #### 4. 编写第一个 Flink 程序 下面展示一个简单的批处理 Word Count 实现案例: ```scala import org.apache.flink.api.scala._ object BatchWordCountJob { def main(args: Array[String]): Unit = { val env = ExecutionEnvironment.getExecutionEnvironment // 替换为实际输入文件路径 val text = env.readTextFile("/path/to/input/file") val counts = text .flatMap(_.toLowerCase.split("\\s+")) // 将每行拆分为单词列表 .filter(_.nonEmpty) // 过滤掉空字符串 .map((_, 1)) // 映射成(word, 1) .groupBy(0) // 按照第零列分组 .sum(1) // 计算总次数 counts.print() } } ``` 以上代码片段展示了如何利用 Flink 提供的数据集抽象模型完成基本文本统计任务。 --- #### 5. 启动本地 Flink 集群并提交作业 当准备好测试应用程序时,先要启动一个本地模式下的迷你型 Flink 集群实例[^2]。可以通过命令行方式实现这一点: ```bash ./bin/start-cluster.sh ``` 接着按照指定格式调用 `flink run` 来加载 JAR 文件以及传递必要参数给目标方法执行。 注意这里提到的是基于 Shell Script 方式的部署流程说明; 如果希望直接从 IDE 内部发起调试会话则还需要额外设置 Run Configuration 参数映射关系等内容. --- #### 解决常见问题 有时可能会遇到一些技术障碍比如 SVN 插件相关错误提示 "Cannot run program 'svn'" ,这通常是因为系统未正确安装 Subversion Command-Line Tools所致[^3]. 此类情况可通过重新安装完整版客户端软件解决。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值