Flink的Standalone部署实战

在Flink是通用的框架,以混合和匹配的方式支持部署不同场景,而Standalone单机部署方便快速部署,记录本地部署过程,方便备查。

环境要求

1)JDK1.8及以上
2)flink-1.14.3
3)CentOS7

Flink相关信息可到 Flink官网下载和查看相关信息。

第一步、下载并解压

推荐使用 wget 方式,本次选择的是版本 flink-1.14.3-bin-scala_2.12.tgz,下载并解压,执行以下命令。

// 下载
wget https://archive.apache.org/dist/flink/flink-1.14.3/flink-1.14.3-bin-scala_2.12.tgz
// opt下创建文件夹
mkdir /opt/flink
// 解压到opt下目录
tar -zxvf flink-1.14.3-bin-scala_2.12.tgz -C /opt/flink/

下载界面如下图所示。
在这里插入图片描述

第二步、配置环境变量

进入环境变量配置文件profile, 即 vi /etc/profile,添加以下内容。

#flink
export Flink_HOME=/opt/flink/flink-1.14.3/
# 将flink路径添加到PATH路径下
export PATH=$JMETER/bin/:$PATH:$Flink_HOME/bin

:wq 保存配置信息,主要要刷新环境变量

// 刷新环境变量
source /etc/profile
// 查看安装位置
which flink
// 进入到bin目录下,启动
start-cluster.sh
// 查看flink进程
ps -ef | grep flink
// 测试
jps

执行以上步骤,则表示flink已经启动成功,执行结果如下图所示。
在这里插入图片描述
但此时在浏览器访问 http://192.168.184.137:8081/#/overview,其中 192.168.184.137为虚拟机的IP地址,还无法进入flink控制台。
在这里插入图片描述

第三步、修改虚拟机配置

此时仍需要修改连接的配置信息,首先关闭flink服务,并在 配置 flink-conf.yaml 放开默认8081端口和绑定的地址。

// 在bin目录下,终止flink启动
stop-cluster.sh
// 打开配置文件
vi /opt/flink/flink-1.14.3/conf/flink-conf.yaml 

放开注释信息,如下图所示。
在这里插入图片描述
注意:必须将端口添加到防火墙的信任列表,并刷新

// 添加防火墙
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload

此时浏览器再次访问 http://192.168.184.137:8081/#/overview,即可进入控制台,如下图所示。
在这里插入图片描述

第四步、启动作业流

数据输入需要使用 nc 命令,可提前yum安装。

// 安装nc
yum install nc

一步步安装即可。
在这里插入图片描述

打开两个xshell连接

第一个连接
作用是发送流数据

// nc命令,端口9999
nc -l 9999

执行完命令后,输入要传递的数据。
在这里插入图片描述

第二个连接
作用是接收和处理数据
flink目录下有example 测试demo,flink run 即可启动,注意端口保持一致。

flink run /opt/flink/flink-1.14.3/examples/streaming//SocketWindowWordCount.jar --port 9999

将Job任务提交运行,可在控制台查询执行结果。
在这里插入图片描述

以上即Flink的Standalone部署过程,有问题可留言交流!

异常处理

【1】错误信息
org.apache.flink.util.FlinkException: TaskExecutor akka.tcp://flink@192.168.184.137:34207/user/rpc/taskmanager_0 has no more allocated slots for job 8aa6239dce488f7b9a9bb237343871a6.
处理方案
standalone模式,需要指定TaskManager主机的地址

【2】启动提示输入密码

root@localhost’s password:
处理方案一、免密登录
生成并上传公钥,可免密登录。

// 生成密钥,会在 .ssh 目录下生成密钥文件
ssh-keygen
// 上传公钥
ssh-copy-id -i /$USER/.ssh/id_rsa.pub $USER@本机ip

在这里插入图片描述

处理方案二,密码登录
如忘记密码,可用root重置密码,命令为 passwd 账户名
在这里插入图片描述

参考博客

【1】https://blog.csdn.net/zou79189747/article/details/107255299

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink standalone模式是一种使用Apache Flink进行分布式计算的方式。它使用了集群模式,其中一个节点担任JobManager的角色,负责接收和调度任务,其他节点担任TaskManager的角色,负责执行任务。 当我们启动Flink standalone模式时,首先我们需要启动JobManager。在启动JobManager之前,我们需要配置flink-conf.yaml文件,其中包括JobManager的地址和端口号等信息。然后,我们使用命令行工具来启动JobManager,通过命令"bin/start-cluster.sh"执行。启动成功后,我们可以在日志中看到JobManager的地址和端口号。 接下来,我们需要启动一些TaskManager节点来执行任务。我们可以在不同的机器上启动多个TaskManager节点,以便实现并行计算。启动TaskManager的方式类似于启动JobManager,我们需要配置flink-conf.yaml文件,并使用命令行工具启动TaskManager。 一旦所有的节点启动成功,并且JobManager和TaskManager之间的通信设置正确,Flink standalone集群就可以正常工作了。 当我们提交一个Flink任务时,它首先会通过JobManager获得一个执行计划。执行计划描述了任务的整体结构和执行流程。然后,JobManager会将计划发送给TaskManager,并启动任务的执行。 在任务执行过程中,JobManager负责监控任务的进度,并负责任务的恢复和故障处理。TaskManager负责实际执行任务的计算逻辑,并将中间结果发送给其他的TaskManager或JobManager。任务执行完成后,JobManager会汇总结果并返回给客户端。 总结起来,Flink standalone模式的启动流程可以简单描述为:配置好集群的信息和通信设置,启动JobManager和TaskManager节点,提交任务,JobManager分配并发送执行计划给TaskManager,TaskManager执行任务逻辑并返回结果,JobManager汇总结果并返回给客户端。整个过程中,JobManager负责任务的调度和监控,TaskManager负责任务的执行和结果的传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值