openEuler24.03 LTS下安装Flink
目录
- Flink的安装模式
- 下载Flink
- 安装Local模式
- 前提条件
- 解压安装包
- 启动集群
- 查看进程
- 提交作业
- 文件WordCount
- 持续流WordCount
- 查看Web UI
- 配置flink-conf.yaml
- 简单使用
- 关闭集群
- Standalone Session模式
- 前提条件
- Flink集群规划
- 解压安装包
- 配置flink
- 配置flink-conf.yaml
- 配置workers
- 配置masters
- 分发到其他机器
- 分发安装目录
- 修改node3和node4的配置
- 启动flink集群
- 查看进程
- Web UI
- 提交应用测试
- 文件WordCount
- 持续流WordCount
- 关闭flink集群
- YARN模式
- 前提条件
- 解压安装包
- 配置环境变量
- 启动Hadoop集群
- 提交应用测试
- 会话模式
- 单作业模式
- 应用模式
- 关闭Hadoop集群
Flink的安装模式
(1)Local模式: 所有Flink 组件(JobManager、TaskManager)都会在同一个 JVM 进程中运行,用于本地开发调试。
(2)Standalone Session模式:独立集群部署,需预先启动Flink进程,测试环境或小规模生产场景。
(3)Yarn模式:基于Hadoop YARN资源管理器,支持动态资源分配和自动容错,适合与Hadoop生态整合(如HDFS、YARN)的大规模生产环境。提供三种子模式:
- **会话模式(Session Mode)**:创建并长期保持一个JobManager,当需要有作业提交,则动态创建TaskManager,作业完成回收TaskManager资源,多个作业共享一个JobManager集群资源。
- **单作业模式(Per-Job Mode)**:每个作业单独启动一个集群,按作业隔离资源,避免资源竞争,作业完成后回收集群资源,应用代码在客户端节点运行。
- **应用模式(Application Mode)**:与单作业模式类似,也是一个作业单独启动一个集群,作业完成后回收集群资源,但将应用代码提交至JobManager执行,减少客户端负载。
(4)K8S模式:基于容器化技术,支持自动扩缩容和弹性伸缩,每个JobManager/TaskManager以Pod形式运行,资源隔离性强,适合云原生环境,被认为是未来主流部署方式。
下载Flink
下载Flink,并上传到Linux /opt/software目录
# 国内下载
https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz# 或者官网下载
https://archive.apache.org/dist/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz
安装Local模式
在node2机器上进行,解压后无需任何配置即可直接使用。
前提条件
- 有1台Linux机器,且安装好jdk,这里是jdk8,可参考:openEuler24.03 LTS下安装Hadoop3完全分布式-安装Java
解压安装包
解压并重命名
[liang@node2 spark-yarn]$ cd /opt/software/
[liang@node2 software]$ ls | grep flink
flink-1.17.2-bin-scala_2.12.tgz
[liang@node2 software]$ tar -zxvf flink-1.17.2-bin-scala_2.12.tgz -C /opt/module
[liang@node2 software]$ cd /opt/module
[liang@node2 software]$ mv flink-1.17.2 flink-local
启动集群
[liang@node2 software]$ cd /opt/module/flink-local
[liang@node2 flink-local]$ ls
bin conf examples lib LICENSE licenses log NOTICE opt plugins README.txt
[liang@node2 flink-local]$ ls bin/
bash-java-utils.jar kubernetes-jobmanager.sh start-zookeeper-quorum.sh
config.sh kubernetes-session.sh stop-cluster.sh
find-flink-home.sh kubernetes-taskmanager.sh stop-zookeeper-quorum.sh
flink pyflink-shell.sh taskmanager.sh
flink-console.sh sql-client.sh yarn-session.sh
flink-daemon.sh sql-gateway.sh zookeeper.sh
historyserver.sh standalone-job.sh
jobmanager.sh start-cluster.sh
[liang@node2 flink-local]$ bin/start-cluster.sh
查看进程
[liang@node2 flink-local]$ jps
7717 StandaloneSessionClusterEntrypoint
8006 TaskManagerRunner
8121 Jps
提交作业
文件WordCount
$ bin/flink run examples/streaming/WordCount.jar
输出过程
[liang@node2 flink-local]$ 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 b4f0874e1e377c83fc830baf1767413a
Program execution finished
Job with JobID b4f0874e1e377c83fc830baf1767413a has finished.
Job Runtime: 886 ms
查看结果
查看输出的WordCount结果的末尾10行数据
[liang@node2 flink-local]$ ls log/
flink-liang-client-node2.log
flink-liang-standalonesession-0-node2.log
flink-liang-standalonesession-0-node2.log.1
flink-liang-standalonesession-0-node2.out
flink-liang-taskexecutor-0-node2.log
flink-liang-taskexecutor-0-node2.out
[liang@node2 flink-local]$ tail log/flink-*-taskexecutor-*.out
执行过程
[liang@node2 flink-local]$ tail log/flink-*-taskexecutor-*.out
(nymph,1)
(in,3)
(thy,1)
(orisons,1)
(be,4)
(all,2)
(my,1)
(sins,1)
(remember,1)
(d,4)
持续流WordCount
使用 SocketWindowWordCount 示例实时接收 Socket 输入
终端1:发送数据终端
$ nc -lk 9999
终端2:打开新的终端,提交作业
$ cd /opt/module/flink-local
$ bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname localhost --port 9999
在发送数据终端发送数据

查看结果
打开新的终端,命令行查看结果,每行计算一次结果
[liang@node2 ~]$ cd /opt/module/flink-local
[liang@node2 flink-local]$ tail -f log/flink-liang-taskexecutor-0-node2.out
查看Web UI
local模式仅支持命令行查看,不支持浏览器访问。
[liang@node2 flink-local]$ curl localhost:8081

浏览器查看
node2:8081

要能查看到Web UI还需要配置Flink。
配置flink-conf.yaml
[liang@node2 flink-local]$ cd conf
[liang@node2 conf]$ vim flink-conf.yaml
找到相关配置项并修改,如下
jobmanager.rpc.address: node2
jobmanager.bind-host: 0.0.0.0
taskmanager.bind-host: 0.0.0.0
taskmanager.host: node2
rest.address: node2
rest.bind-address: 0.0.0.0
这样配置支持Web UI访问,也支持远程提交作业。
注意:配置flink-conf.yaml后,local模式就变成Flink伪分布了。
| 特性 | Local模式 | **伪分布模式(Standalone模式)** |
|---|---|---|
| 适用场景 | 单机本地快速测试,验证代码逻辑或简单性能 | 单机模拟集群环境,用于开发调试或学习多组件交互(如JobManager与TaskManager) |
| 资源管理 | 无需启动独立进程,由本地JVM线程模拟所有组件(JobManager + TaskManager) | 需启动独立进程:JobManager(主节点)和至少1个TaskManager(工作节点) |
| Web UI | 默认不启用Web界面 | 提供Web UI(默认端口8081),可监控任务状态、日志和资源配置 |
| 网络配置 | 仅本地回环地址(127.0.0.1),无法远程访问 | 可绑定真实IP地址(如0.0.0.0),支持远程提交作业和访问Web UI |
| 容错性 | 无高可用机制,进程崩溃则任务终止 | 支持高可用配置(需依赖ZooKeeper),但单机伪分布下通常不启用 |
重启集群
[liang@node2 conf]$ cd ..
[liang@node2 flink-local]$ ls bin/
bash-java-utils.jar kubernetes-jobmanager.sh start-zookeeper-quorum.sh
config.sh kubernetes-session.sh stop-cluster.sh
find-flink-home.sh kubernetes-taskmanager.sh stop-zookeeper-quorum.sh
flink pyflink-shell.sh taskmanager.sh
flink-console.sh sql-client.sh yarn-session.sh
flink-daemon.sh sql-gateway.sh zookeeper.sh
historyserver.sh standalone-job.sh
jobmanager.sh start-cluster.sh
[liang@node2 flink-local]$ bin/stop-cluster.sh
Stopping taskexecutor daemon (pid: 8006) on host node2.
Stopping standalonesession daemon (pid: 7717) on host node2.
[liang@node2 flink-local]$
[liang@node2 flink-local]$ bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host node2.
Starting taskexecutor daemon on host node2.
[liang@node2 flink-local]$ jps
9220 StandaloneSessionClusterEntrypoint
9509 TaskManagerRunner
9595 Jps
浏览器访问
node2:8081

简单使用
文件的WordCount
测试提交WordCount作业
$ bin/flink run examples/streaming/WordCount.jar
执行过程
[liang@node2 flink-local]$ 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 3f939fb4b8d4c2dab4d47d7b5f4cc389
Program execution finished
Job with JobID 3f939fb4b8d4c2dab4d47d7b5f4cc389 has finished.
Job Runtime: 913 ms
查看输出的WordCount结果的末尾10行数据
$ tail log/flink-*-taskexecutor-*.out
执行过程
[liang@node2 flink-local]$ tail log/flink-*-taskexecutor-*.out
(nymph,1)
(in,3)
(thy,1)
(orisons,1)
(be,4)
(all,2)
(my,1)
(sins,1)
(remember,1)
(d,4)
查看Web UI



输入数据有限,所以计算会完成。
持续流WordCount
使用 SocketWindowWordCount 示例实时接收 Socket 输入
终端1:发送数据终端
$ nc -lk 9999
终端2:打开新的终端,提交作业
$ cd /opt/module/flink-local
$ bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname localhost --port 9999
在发送数据终端发送数据

提交作业终端

打开新的终端,命令行查看结果,每行计算一次结果
[liang@node2 ~]$ cd /opt/module/flink-local/
[liang@node2 flink-local]$ ls
bin conf examples lib LICENSE licenses log NOTICE opt plugins README.txt
[liang@node2 flink-local]$ ls log/
flink-liang-client-node2.log flink-liang-taskexecutor-0-node2.log
flink-liang-standalonesession-0-node2.log flink-liang-taskexecutor-0-node2.log.1
flink-liang-standalonesession-0-node2.log.1 flink-liang-taskexecutor-0-node2.log.2
flink-liang-standalonesession-0-node2.log.2 flink-liang-taskexecutor-0-node2.out
flink-liang-standalonesession-0-node2.out
[liang@node2 flink-local]$ tail -f log/flink-liang-taskexecutor-0-node2.out
hello : 1
flink : 1
hello : 1
hadoop : 1

Web UI查看结果



关闭集群
关闭集群
$ bin/stop-cluster.sh
jps查看进程
$ jps
执行过程
[liang@node2 flink-local]$ bin/stop-cluster.sh
Stopping taskexecutor daemon (pid: 9509) on host node2.
Stopping standalonesession daemon (pid: 9220) on host node2.
[liang@node2 flink-local]$ jps
10579 Jps
Standalone Session模式
安装Flink Standalone 完全分布集群
前提条件
有三台Linux机器
三台机器均安装好jdk,这里使用jdk8,可参考:openEuler24.03 LTS下安装Hadoop3完全分布式-安装Java
Flink集群规划
| node2 | node3 | node4 |
|---|---|---|
| JobManager | ||
| TaskManager | TaskManager | TaskManager |
解压安装包
解压并重命名
[liang@node2 software]$ tar -zxvf flink-1.17.2-bin-scala_2.12.tgz -C /opt/module
[liang@node2 software]$ cd /opt/module
[liang@node2 module]$ mv flink-1.17.2 flink-standalone
进入到解压后的目录,查看包含的文件
[liang@node2 module]$ cd flink-standalone
[liang@node2 flink-standalone]$ ls
bin conf examples lib LICENSE licenses log NOTICE opt plugins README.txt
配置flink
进入flink配置目录,查看配置文件
[liang@node2 ~]$ cd conf
[liang@node2 conf]$ ls
flink-conf.yaml log4j.properties logback-session.xml workers
log4j-cli.properties log4j-session.properties logback.xml zoo.cfg
log4j-console.properties logback-console.xml masters
配置flink-conf.yaml
[liang@node2 conf]$ vim flink-conf.yaml
找到相关配置项并修改,如下
jobmanager.rpc.address: node2
jobmanager.bind-host: 0.0.0.0
taskmanager.bind-host: 0.0.0.0
taskmanager.host: node2
rest.address: node2
rest.bind-address: 0.0.0.0
配置workers
[liang@node2 conf]$ vim workers
把原有内容删除,添加内容如下:
node2
node3
node4
配置masters
[liang@node2 conf]$ vim masters
修改后内容如下:
node2:8081
分发到其他机器
分发安装目录
[liang@node2 conf]$ xsync /opt/module/flink-standalone
修改node3和node4的配置
分别修改node3、node4机器的flink-conf.yaml文件,将taskmanager.host的值修改为所在机器的主机名。
node3机器
进入node3机器flink的配置目录
[liang@node3 ~]$ cd /opt/module/flink-standalone/conf/
配置flinke-conf.yaml文件
[liang@node3 conf]$ vim flink-conf.yaml
将taskmanager.host的值修改为node3
taskmanager.host: node3
node4机器
进入node4机器flink的配置目录
[liang@node4 ~]$ cd /opt/module/flink-standalone/conf/
配置flinke-conf.yaml文件
[liang@node4 conf]$ vim flink-conf.yaml
将taskmanager.host的值修改为node4
taskmanager.host: node4
启动flink集群
在node2机器,执行启动集群命令
[liang@node2 conf]$ cd ..
[liang@node2 flink-standalone]$ bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host node2.
Starting taskexecutor daemon on host node2.
Starting taskexecutor daemon on host node3.
Starting taskexecutor daemon on host node4.
查看进程
jps查看进程
[liang@node2 flink-standalone]$ jpsall
=============== node2 ===============
10116 Jps
9557 StandaloneSessionClusterEntrypoint
9977 TaskManagerRunner
=============== node3 ===============
2342 TaskManagerRunner
2431 Jps
=============== node4 ===============
2340 TaskManagerRunner
2430 Jps
注意:如果没有jpsall命令,就分别在node2、node3、node4执行jps命令
node2有StandaloneSessionClusterEntrypoint、TaskManagerRunner进程
node3有TaskManagerRunner进程
node4有TaskManagerRunner进程
看到如上进程,说明Flink Standalone集群配置成功。
Web UI
浏览器主机名:8081访问
node2:8081

提交应用测试
文件WordCount
[liang@node2 flink-standalone]$ 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 ee8f5d8b493be0ad1463a072b11c4586
Program execution finished
Job with JobID ee8f5d8b493be0ad1463a072b11c4586 has finished.
Job Runtime: 1080 ms
查看结果有两种方式:
- 命令行查看
- Web UI查看
命令行查看结果
查看输出的wordcount结果的末尾10行数据
[liang@node2 flink-standalone]$ tail log/flink-*-taskexecutor-*.out
(nymph,1)
(in,3)
(thy,1)
(orisons,1)
(be,4)
(all,2)
(my,1)
(sins,1)
(remember,1)
(d,4)
Web UI查看作业结果
node2:8081
查看作业

查看作业结果
点击查看TaskManagers,点击其中一个TaskManager机器,点击Stdout能查看到作业结果

点击node2:38277-0fc879,点击Stdout

注意:如果node2查看不到,可以返回点击其他机器查看。
持续流WordCount
使用 SocketWindowWordCount 示例实时接收 Socket 输入
发送数据终端
$ nc -lk 9999
打开新的终端,提交作业
$ cd /opt/module/flink-standalone
$ bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname node2 --port 9999
在发送数据终端发送数据
hello flink standalone mode
hello world

Web UI查看作业结果
查看作业

查看结果

点击node3:38219-8077d2,点击stdout

在node3查看到结果,说明是使用node3的Task Manager进行计算的。
关闭flink集群
在node2机器,执行关闭集群命令
[liang@node2 flink-standalone]$ bin/stop-cluster.sh
Stopping taskexecutor daemon (pid: 9977) on host node2.
Stopping taskexecutor daemon (pid: 2342) on host node3.
Stopping taskexecutor daemon (pid: 2340) on host node4.
Stopping standalonesession daemon (pid: 9557) on host node2.
jps查看进程
[liang@node2 flink-standalone]$ jpsall
=============== node2 ===============
11575 Jps
=============== node3 ===============
2935 Jps
=============== node4 ===============
2914 Jps
YARN模式
Flink作为客户端,把作业提交到Yarn中计算
只需在node2机器安装Flink
前提条件
- 安装好Hadoop完全分布式集群,可参考:openEuler24.03 LTS下安装Hadoop3完全分布式
解压安装包
解压并重命名
[liang@node2 ~]$ cd /opt/software
[liang@node2 software]$ tar -zxvf flink-1.17.2-bin-scala_2.12.tgz -C /opt/module
[liang@node2 software]$ cd /opt/module
[liang@node2 module]$ mv flink-1.17.2 flink-yarn
配置环境变量
[liang@node2 module]$ sudo vim /etc/profile.d/my_env.sh
添加如下环境变量,让Flink能找到Hadoop
#FLINK YARN MODE NEED
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
让环境变量生效
[liang@node2 module]$ source /etc/profile
分发环境变量
[liang@node2 module]$ sudo /home/liang/bin/xsync /etc/profile.d/my_env.sh
根据提示输入node2机器root账号的密码
分别在node3、node4让环境变量生效
[liang@node3 conf]$ source /etc/profile
[liang@node4 conf]$ source /etc/profile
启动Hadoop集群
$ hdp.sh start
提交应用测试
会话模式
开启一个YARN会话来启动一个Flink session集群
[liang@node2 module]$ cd flink-yarn
[liang@node2 flink-yarn]$ bin/yarn-session.sh -nm test
输入部分日志如下

可以看到JobManager的Web UI地址为
http://node3:35665
注意:端口号是随机的
浏览器访问看到Web UI地址

说明在Yarn的Container中创建了一个Flink Session集群
提交应用集群
提交应用有两种方式:
- 命令行方式
- Web UI方式
命令行方式
打开新的终端
$ cd /opt/module/flink-yarn
$ bin/flink run examples/streaming/WordCount.jar
客户端可以自行确定JobManager的地址,也可以通过-m或者-jobmanager参数指定JobManager的地址,JobManager地址在YARN Session启动页面中找到。
Web UI查看作业
node3:35665

查看结果

查看Task Managers没有任何信息,原因是因为运行完成后,为了节约资源,释放了Task Manager
要看到结果,重新执行一次作业,快速地查看Web UI 的Task Managers,看到如下结果。

Web UI方式
准备jar包
下载Flink自带的example jar包
打开新的终端,执行nc命令发送数据
[liang@node3 module]$ nc -lk 9999
浏览器访问,基于Web UI提交应用jar包
node3:35665

选择SocketWjarindowWordCount.jar后,点击如下界面jar包名称设置作业

填写如下参数,点击Submit提交
--hostname node3 --port 9999

查看到正在运行的作业

在nc终端,发送数据,例如:
hello flink hello world

返回Web UI查看结果
点击Task Managers,点击container_1742653773403_0001_01_000009


取消作业
点击作业名称

点击Cancel Job,点击Yes


计算文件作业
重新提交另外一个jar:WordCount.jar

不填写任何参数,直接点击Submit

查看结果

结束Yarn Session会话
返回执行Yarn Session命令的终端,按Ctrl + c 返回命令行

Yarn会话模式总结:
Yarn 会话模式,通过yarn-session.sh命令在Yarn Container创建一个JobManager,并保持这个JobManager。当有作业提交时,会动态创建TaskManager,当作业完后后,会回收TaskManager。
单作业模式
Yarn模式下,需要使用HDFS文件
创建输入测试文件
[liang@node2 flink-yarn]$ ls
bin conf examples lib LICENSE licenses log NOTICE opt plugins README.txt
[liang@node2 flink-yarn]$ vim input.txt
内容如下
hello yarn mode
hello flink
hello hadoop
将input.txt上传到HDFS
$ hdfs dfs -put input.txt /
提交作业
使用单作业模式提交作业
$ bin/flink run -d -t yarn-per-job -Dclassloader.check-leaked-classloader=false examples/streaming/WordCount.jar \
--input hdfs://node2:8020/input.txt \
--output hdfs://node2:8020/output
注意:yarn模式下,输入数据都为HDFS的路径,output是一个输出目录,执行命令之前,输出目录不能存在。
查看结果
执行命令后,等待运行作业结束,查看输出目录
[liang@node2 flink-yarn]$ hdfs dfs -ls /
Found 8 items
-rw-r--r-- 1 liang supergroup 25 2025-03-18 23:17 /1.txt
drwxr-xr-x - liang supergroup 0 2025-03-21 23:21 /hbase
-rw-r--r-- 1 liang supergroup 41 2025-03-22 23:54 /input.txt
drwxr-xr-x - liang supergroup 0 2025-03-18 23:18 /out
drwxr-xr-x - liang supergroup 0 2025-03-23 00:07 /output
drwxr-xr-x - liang supergroup 0 2025-03-22 18:31 /spark-evenlog-directory
drwx------ - liang supergroup 0 2025-03-19 15:16 /tmp
drwxr-xr-x - liang supergroup 0 2025-03-19 15:18 /user
[liang@node2 flink-yarn]$ hdfs dfs -ls /output
Found 1 items
drwxr-xr-x - liang supergroup 0 2025-03-23 00:07 /output/2025-03-23--00
[liang@node2 flink-yarn]$ hdfs dfs -ls /output/2025-03-23--00
Found 1 items
-rw-r--r-- 1 liang supergroup 69 2025-03-23 00:07 /output/2025-03-23--00/part-0d077c9e-7a99-4eca-8c91-7c21ffaa1cec-0
[liang@node2 flink-yarn]$ hdfs dfs -cat /output/2025-03-23--00/part-0d077c9e-7a99-4eca-8c91-7c21ffaa1cec-0
(hello,1)
(yarn,1)
(mode,1)
(hello,2)
(flink,1)
(hello,3)
(hadoop,1)
应用模式
文件Wordcount
执行如下命令
$ bin/flink run-application -t yarn-application -d examples/streaming/WordCount.jar \
--input hdfs://node2:8020/input.txt \
--output hdfs://node2:8020/output1

等待运行结束,查看结果
[liang@node2 flink-yarn]$ hdfs dfs -ls /
Found 9 items
-rw-r--r-- 1 liang supergroup 25 2025-03-18 23:17 /1.txt
drwxr-xr-x - liang supergroup 0 2025-03-21 23:21 /hbase
-rw-r--r-- 1 liang supergroup 41 2025-03-22 23:54 /input.txt
drwxr-xr-x - liang supergroup 0 2025-03-18 23:18 /out
drwxr-xr-x - liang supergroup 0 2025-03-23 00:07 /output
drwxr-xr-x - liang supergroup 0 2025-03-23 00:12 /output1
drwxr-xr-x - liang supergroup 0 2025-03-22 18:31 /spark-evenlog-directory
drwx------ - liang supergroup 0 2025-03-19 15:16 /tmp
drwxr-xr-x - liang supergroup 0 2025-03-19 15:18 /user
[liang@node2 flink-yarn]$ hdfs dfs -ls /output1
Found 1 items
drwxr-xr-x - liang supergroup 0 2025-03-23 00:12 /output1/2025-03-23--00
[liang@node2 flink-yarn]$ hdfs dfs -ls /output1/2025-03-23--00
Found 1 items
-rw-r--r-- 1 liang supergroup 69 2025-03-23 00:12 /output1/2025-03-23--00/part-01662fc4-01e6-45a4-858c-5443fc2b31f0-0
[liang@node2 flink-yarn]$ hdfs dfs -cat /output1/2025-03-23--00/*
(hello,1)
(yarn,1)
(mode,1)
(hello,2)
(flink,1)
(hello,3)
(hadoop,1)
持续流WordCount
终端1:在node2 发送数据终端
[liang@node2 flink-yarn]$ nc -lk 9999
终端2:打开新的终端,提交作业
$ cd /opt/module/flink-yarn
$ bin/flink run-application -t yarn-application -d examples/streaming/SocketWindowWordCount.jar --hostname node2 --port 9999

看到Web UI地址为
node3:37105
浏览器访问以上查到的Web UI地址

返回nc终端发送数据
hello flink hello yarn

在Web UI查看结果


结束任务
在nc终端,按Ctrl + c 结束任务
关闭Hadoop集群
$ hdp.sh stop
如有需要,可点击查看:配套视频教程
完成!enjoy it!
相关文章:
openEuler24.03 LTS下安装Flink
目录 Flink的安装模式下载Flink安装Local模式前提条件解压安装包启动集群查看进程提交作业文件WordCount持续流WordCount 查看Web UI配置flink-conf.yaml简单使用 关闭集群 Standalone Session模式前提条件Flink集群规划解压安装包配置flink配置flink-conf.yaml配置workers配置…...
LeetCode热题100记录-【二分查找】
二分查找 35.搜索插入位置 思考:二分查找先判定边界条件 记录:不需要二刷 class Solution {public int searchInsert(int[] nums, int target) {int left 0,right nums.length-1;if(nums[right] < target){return right1;}if(nums[left] > tar…...
从零开始学java--泛型(1)
泛型 学生成绩可能是数字类型,也可能是字符串类型,如何存放可能出现的两种类型呢: public class Score {String name;String id;Object value; //因为Object是所有类型的父类,因此既可以存放Integer也能存放Stringpublic Score…...
【正点原子】STM32MP135去除SD卡引脚复用,出现 /dev/mmcblk1p5 not found!
如果在设备树中直接注释掉 sdmmc1 节点,就会导致系统启动时识别不到真正的 eMMC 设备,进而挂载失败,爆出 /dev/mmcblk1p5 not found 的问题。 正点原子STM32MP135开发板Linux核心板嵌入式ARM双千兆以太网CAN 正确操作是“放空”而不是“删光…...
CrystalDiskInfo电脑硬盘监控工具 v9.6.0中文绿色便携版
前言 CrystalDiskInfo是一个不用花钱的硬盘小帮手软件,它可以帮你看看你的电脑硬盘工作得怎么样,健不健康。这个软件能显示硬盘的温度高不高、还有多少地方没用、传输东西快不快等等好多信息。用了它,你就能很容易地知道硬盘现在是什么情况&…...
详解模型蒸馏,破解DeepSeek性能谜题
大家好,不少关注 DeepSeek 最新动态的朋友,想必都遇到过 “Distillation”(蒸馏)这一术语。本文将介绍模型蒸馏技术的原理,同时借助 TensorFlow 框架中的实例进行详细演示。通过本文,对模型蒸馏有更深的认识…...
⭐算法OJ⭐数据流的中位数【最小堆】Find Median from Data Stream
最小堆 最小堆是一种特殊的完全二叉树数据结构。 基本定义 堆性质:每个节点的值都小于或等于其子节点的值(根节点是最小值)完全二叉树性质:除了最底层外,其他层的节点都是满的,且最底层的节点都靠左排列…...
园区网拓扑作业
作业要求: 需求: 需求分析: 1.按照图示的VLAN及IP地址需求,完成相关配需:VLAN 2、3、20、30 已分配子网,需在交换机上创建 VLAN 并配置三层接口作为网关。确保各 VLAN 内设备能互通,跨 VLAN 通…...
隔行换色总结
功能效果展示: 第一种思路: 使用数组,将数组的内容渲染到页面上,序号也就是将数组的下标输出到第一个td上,将数组的内容输出到第二个td上,(使用拼接字符串) 具体操作: …...
使用Docker Desktop进行本地打包和推送
使用Docker Desktop进行本地打包和推送 一、Docker Desktop配置二、IDEA配置1.下载Docker插件2.在“Settings”中,配置“Docker”3.选择“Docker Registry”,配置远程仓库。 三、POM配置 一共有三个地方需要配置 一、Docker Desktop配置 在Docker Deskt…...
MTO和MTS不同模式制造业数字化转型的“三座大山“:MES/ERP/PLM系统集成技术全解析
1.导言:制造业的数字化转型与集成系统的作用 在工业4.0浪潮的推动下,制造业正处于深刻的数字化转型之中。这场变革的核心在于利用先进技术,如物联网(IoT)、人工智能(AI)、大数据分析和云计算&a…...
Redis主从复制:告别单身Redis!
目录 一、 为什么需要主从复制?🤔二、 如何搭建主从架构?前提条件✅步骤📁 创建工作目录📜 创建 Docker Compose 配置文件🚀 启动所有 Redis🔍 验证主从状态 💡 重要提示和后续改进 …...
数据库管理工具实战:IDEA 与 DBeaver 连接 TDengine(二)
五、DBeaver 连接 TDengine 实战 5.1 安装 DBeaver 下载安装包:访问 DBeaver 官方网站(https://dbeaver.io/download/ ),根据你的操作系统选择合适的安装包。如果是 Windows 系统,下载.exe 格式的安装文件࿱…...
ORM、Mybatis和Hibernate、Mybatis使用教程、parameterType、resultType、级联查询案例、resultMap映射
DAY21.1 Java核心基础 ORM Object Relationship Mapping 对象关系映射 面向对象的程序到—关系型数据库的映射 比如java – MySQL的映射 ORM框架就是实现这个映射的框架 Hibernate、Mybatis、MybatisPlus、Spring Data JPA、Spring JDBC Spring Data JPA的底层就是Hiber…...
简历EasyExcel相关
系列博客目录 文章目录 系列博客目录1.在easyExcel的基础上,应用多线程对数据进行分块有用吗为什么使用多线程对数据进行分块有用?实现方式示例:多线程与 EasyExcel 导出结合的基本思路解释:注意事项:总结:…...
C#调用Lua方法1+C#调用Lua方法2,3
xLua中Lua调用C#代码 原因:C#实现的系统,因为Lua可以调用,所以完全可以换成Lua实现,因为Lua可以即时更改,即时运行,所以游戏的代码逻辑就可以随时更改。 实现和C#相同效果的系统,如何实现&#…...
stable diffusion 量化加速点
文章目录 一、导出为dynamic shape1)函数讲解(函数导出、输出检查)2)代码展示二、导出为static shape1)函数讲解(略)2)代码展示三、序列化为FP32测速1)测速2)代码四、序列化为FP16测速1)测速2)代码同上五、发现并解决解决CLIP FP16溢出,并测速1)如何找到溢出的算子…...
NO.77十六届蓝桥杯备战|数据结构-单调队列|质量检测(C++)
什么是单调队列? 单调队列,顾名思义,就是存储的元素要么单调递增要么单调递减的队列。注意,这⾥的队列和普通的队列不⼀样,是⼀个双端队列。单调队列解决的问题 ⼀般⽤于解决滑动窗⼝内最⼤值最⼩值问题,以…...
通过发票四要素信息核验增值税发票真伪-iOS发票查验接口
发票是企业经济间往来的重要凭证,现如今,随着经济环境的日益复杂,发票造假现象屡禁不止,这使得增值税发票查验成为企业必须高度重视的工作。人工智能时代,发票查验接口犹如一道坚固的防线,助力企业财务守护…...
区块链是怎么存储块怎么找到前一个块
前言:学习区块链的过程中在想怎么管理区块链呢 📌 推荐项目回顾: 👉 Jeiwan 的 blockchain_go 项目 GitHub 地址:https://github.com/Jeiwan/blockchain_go ❓它是怎么存储区块 & 找前一个区块的? 项…...
超详解glusterfs部署
glusterfs部署 GlusterFS 是一个开源的分布式文件系统,旨在提供高性能、高可用性和可扩展性,适用于存储大量数据。它通过将多个存储节点组合成一个统一的文件系统,允许用户透明地访问分布在不同节点上的数据。 主要组件 存储砖块ÿ…...
总结一下常见的EasyExcel面试题
说一下你了解的POI和EasyExcel POI(Poor Obfuscation Implementation):它是 Apache 软件基金会的一个开源项目,为 Java 程序提供了读写 Microsoft Office 格式文件的功能,支持如 Excel、Word、PowerPoint 等多种文件格…...
【JAVA】十、基础知识“类和对象”干货分享~(三)
目录 1. 封装 1.1 封装的概念 1.2 访问限定符 public(公开访问) private(私有访问) 1.3 包 1.3.1 包的概念 1.3.2 导入包中的类 1.3.3 自定义包 2. static成员 2.1 static变量(类变量) 2.1.1 sta…...
DeepSeek+SpringAI家庭AI医生
文章目录 项目架构项目开发内容项目用户用例图项目地址开发环境大模型使用本地:Ollama部署DeepSeek离线与在线api大模型客户端使用 数据库脚本代码deepseek创建定制医生模型 内网互通原则云服务器类型 项目架构 项目开发内容 项目用户用例图 项目地址 FamilyAIDoct…...
PyTorch:解锁AI新时代的钥匙
(前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站)。 揭开PyTorch面纱 对于许多刚开始接触人工智能领域的朋友来说,PyTorch这个名字或许既熟悉又陌生。…...
C++第14届蓝桥杯b组学习笔记
1. 日期统计 小蓝现在有一个长度为 100100 的数组,数组中的每个元素的值都在 00 到 99 的范围之内。数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4…...
解锁工业通信:Profibus DP到ModbusTCP网关指南!
解锁工业通信:Profibus DP到ModbusTCP网关指南! 在工业自动化领域,随着技术的不断进步和应用场景的日益复杂,不同设备和系统之间的通讯协议兼容性问题成为了工程师们面临的一大挑战。尤其是在Profibus DP和Modbus/TCP这两种广泛应…...
每日一题(小白)字符串娱乐篇16
分析题意可以了解到本题要求在一串字符串中找到所有组合起来排序递增的字符串。我们可以默认所有字符在字符串中的上升序列是1,从第一个字符开始找,如果后面的字符大于前面的字符就说明这是一个上序列那么后面字符所在的数组加一,如果连接不上…...
面试算法高频01
题目描述 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true示例 2: 输入: "race a car" 输出: falseimport…...
如何深刻理解Reactor和Proactor
前言: 网络框架的设计离不开 I/O 线程模型,线程模型的优劣直接决定了系统的吞吐量、可扩展性、安全性等。目前主流的网络框架,在网络 IO 处理层面几乎都采用了I/O 多路复用方案(又以epoll为主),这是服务端应对高并发的性能利器。 …...
