3.2 Standalone模式

# Standalone模式

也就是所说的独立模式,是不依赖任何外部的资源管理平台,由Flink本身自己维护的。这样独立固然方便使用,但是是有代价的如:资源不足、或者出现故障没有自动扩展和资源重分配的保证,必须手动处理。所以独立模式一般只用于在开发测试或者作业场景非常少的情况下使用。

# 会话模式部署

  1. 启动Flink集群

进入Flink_HOME目录执行如下命令

bin/start-cluster.sh
1
  1. 修改集群配置

此时如果Flink是部署在服务器上会发现访问不,因此我们需要修改一些集群配置,默认的话只能使用localhost访问。如下的配置更改下就能访问了

jobmanager.bind-host: 0.0.0.0
rest.bind-address: 0.0.0.0
taskmanager.bind-host: 0.0.0.0
1
2
3

此时需要重启Flink集群

# 先停止后启动
bin/stop-cluster.sh
bin/start-cluster.sh
1
2
3
  1. 提交作业

使用官网提供的案例演示即可,官方提供了很多演示用的jar包,存放在Flink_HOME的example目录下,可以通过反编译或者去官网自行查看原码

bin/flink run -m bigdata:8081 -d examples/streaming/TopSpeedWindowing.jar
1

如上,就提交了一个作业到Flink上运行了,打开服务器的ip:8081访问即可

为什么能使用这些命令提交一个Fflink作业呢,一种方法是查看官网的/deployment/resource-providers/standalone/overview/查看,还有一种方法是执行如下命令查看详情,不懂的那就翻译吧

bin/flink run --help
1

# 单作业模式部署

警告:Flink的Standalone集群并不支持单作业模式部署。因为单作业模式需要借助一些资源管理平台

# 应用模式部署

应用模式下,不会提前创建集群

因此我们需要先启动一个JobManager,然后指定作业入口类,告诉JobManager由他来启动作业

bin/standalone-job.sh  start --class-name org.apache.flink.streaming.examples.windowing.TopSpeedWindowing
1

由于应用模式作业是在JobManager进行提交的,因此我们需要将jar包放到lib目录下供给JobManager的启动脚本扫描到

可以通过jps命令查看,发现多了一个Standalone模式应用集群入口类的进程说明成功了

我们还可以访问ip:8081查看

此时会发现作业在调度当中了,接下来我们就要启动TaskManager来执行作业了

bin/taskmanager.sh start
1

使用jps查看TaskManager是否创建成功

查看作业是否在运行

在此过程中发生的一系列操作都可以在Flink_HOME的log目录下查看,使用ll -rt从后看最新的日志文件,然后使用tail -500f xxx来查看最新的日志内容就好了,出现问题就好排查了

如果希望停掉集群,使用如下命令,先停taskmanger再停jobmanager

bin/taskmanager.sh stop
bin/standalone-job.sh stop
1
2

使用jps命令可以查看是否停止

Last Updated: 9/19/2023, 11:24:47 AM