在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
一步步安装即可。
配置文件(/opt/flink/flink-1.14.3/conf/flink-conf.yaml)中添加以下内容。
// 打开配置文件
vi /opt/flink/flink-1.14.3/conf/flink-conf.yaml
// 添加以下信息
#taskmanager的机器地址,集群设置为当前机器所在的地址
taskmanager.host: flink_no1
配置文件(/opt/flink/flink-1.14.3/conf/workers)中添加host信息,如下所示。
// 打开配置文件
vi /opt/flink/flink-1.14.3/conf/workers
// 添加worker信息
flink_no1
// 在bin目录下,终止flink启动
stop-cluster.sh
// 启动
start-cluster.sh
以上即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主机的地址