Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包

大纲

《0基础学习PyFlink》专题中,我们熟悉了Flink的相关知识以及Python编码方案。这个系列我们将使用相对主流的Java语言,来实践Flink的相关设计。

操作系统

我安装的是Ubuntu 22TLS版。

bash 复制代码
cat /proc/version

Linux version 5.15.0-112-generic (buildd@lcy02-amd64-051) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #122-Ubuntu SMP Thu May 23 07:48:21 UTC 2024

安装JDK

bash 复制代码
sudo apt install openjdk-11-jdk

通过下面命令查看java版本号

bash 复制代码
java --version

openjdk 11.0.23 2024-04-16

OpenJDK Runtime Environment (build 11.0.23+9-post-Ubuntu-1ubuntu122.04.1)

OpenJDK 64-Bit Server VM (build 11.0.23+9-post-Ubuntu-1ubuntu122.04.1, mixed mode, sharing)

https://flink.apache.org/downloads/可以获得最新的地址

bash 复制代码
wget https://dlcdn.apache.org/flink/flink-1.19.1/flink-1.19.1-bin-scala_2.12.tgz .
tar -xzf flink-*.tgz

修改配置

为了让本地之外的其他机器可以访问,我们需要修改Flink的配置

bash 复制代码
 vim flink-1.19.1/conf/config.yaml

把所有的localhost改成0.0.0.0

vim的指令是

bash 复制代码
:%s/localhost/0.0.0.0/g
bash 复制代码
cd flink-1.19.1/
./bin/start-cluster.sh

Starting cluster.

Starting standalonesession daemon on host fangliang.

Starting taskexecutor daemon on host fangliang.

测试

我们通过IP:8081打开后台,可以看到正常显示

然后我们运行一个软件包自带的任务包

bash 复制代码
./bin/flink run examples/streaming/WordCount.jar

可以看到如下输出

Executing example with default input data.

Use --input to specify file input.

Printing result to stdout. Use --output to specify output path.

Job has been submitted with JobID 6c309e274649b1585a6be46197b16880

Program execution finished

Job with JobID 6c309e274649b1585a6be46197b16880 has finished.

Job Runtime: 414 ms

以及在后台的任务完成列表中看到该任务

使用IntelliJ制作任务包

我们使用Maven方案。

新建工程

JDK选择和Flink运行环境匹配的Java 11。

Archetype

组ID:org.apache.flink

工件ID:flink-quickstart-java

版本:1.19.1

这个版本号就是我们下载的Flink的版本号。

会生成如下结构的工程

编写测试代码

我们在DataStreamJob.java中插入如下代码:

java 复制代码
		env.fromData(1, 2, 3, 4, 5)
			.map(i -> i * i)
			.print();

打包

然后我们看到target目录下生成了jar包

测试

在Flink后台,我们上传这个包

然后运行这个包

可以看到这个包正常运行了

参考资料

相关推荐
Dicky-_-zhang2 小时前
系统容量规划与压测实战:从1万到100万QPS的科学扩容
java·jvm
Highcharts.js7 小时前
倒置百分比堆叠面积图表示列详解|Highcharts大气成分图表代码
开发语言·信息可视化·highcharts·图表开发·面积图·图表示例·推叠图
csdn_aspnet8 小时前
C语言 Lomuto分区算法(Lomuto Partition Algorithm)
c语言·开发语言·算法
Dicky-_-zhang8 小时前
消息队列Kafka/RocketMQ选型与高可用架构:从单体到100万TPS的演进
java·jvm
晨曦中的暮雨8 小时前
4.15腾讯 CSIG云服务产线 一面
java·开发语言
存在morning8 小时前
【GO语言开发实践】二 GO 并发快速上手
大数据·开发语言·golang
fake_ss1988 小时前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
茉莉玫瑰花茶8 小时前
工作流的常见模式 [ 1 ]
java·服务器·前端
未若君雅裁8 小时前
Spring AOP、日志切面与声明式事务原理
java·后端·spring
No8g攻城狮9 小时前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库