Flink1.17版本安装部署

前言

提示:这里可以添加本文要记录的大概内容:
随着实时计算需求场景的增加,对计算引擎的实时计算要求也越来越高,而在实时计算方面表现优秀的当属flink,计算引擎从第一代mapreduce到第二代的Tez,再到第三代计算引擎spark、第四代计算引擎则是后来者flink,虽然spark也支持实时计算,但底层的原理实际上还是微批处理,会有一个攒批的过程,因此在延迟性方面会稍逊于flink,Flink的设计思想在于流式处理,把数据看做是一种流,批数据则是一种特殊的流,所以flink是支持流批一体处理的,延迟性方面能做到比spark还低,最低可达到毫秒级,本篇内容将围绕具体的环境安装部署展开。


提示:下面案例仅供参考

一、flink简介

flink同spark一样也是一种计算引擎,只不过在流式处理、实时计算方面比spark更为优秀,从flink发布至今已经更新到1.18版本,功能也在逐步的迭代完善中,最先开始接触的是flink cdc,由于项目中有实时展示数据的需求,当时在调研了几种cdc方案后,最后决定尝试flink cdc,就使用体验来说,flink对sql的集成优化真的很完善,对于不熟悉API接口开发的人员,也能快速上手,关于flink的介绍这里就不再赘述了,后续会用案例来体验它的功能强大之处。

二、安装部署

1.下载安装包

登录flink官网地址https://flink.apache.org/downloads/,选择flink版本下载安装包,由于目前集成的依赖包中,支持最新版本的flink是1.17,所以我这边选择安装的版本为1.17版本,以避免一些不必要的问题,执行以下命令解压安装包

tar -zxvf flink-1.17.2-bin-scala_2.12.tgz

提示:由于名称太长,建议名称方便后续路径配置
mv flink-1.17.2-bin-scala_2.12 flink-1.17

2.配置环境变量

vim /etc/profile.d/my_env.sh打开并编辑环境变量配置文件,输入以下内容:

export HADOOP_CLASSPATH=`hadoop classpath`
export FLINK_HOME=/application/soft/flink-1.17
export PATH=$PATH:$$FLINK_HOME/bin

文件保存后,执行source /etc/profile使环境变量生效

3.会话模式部署

在确保hadoop集群启动的情况下,进入flink安装路径下,执行以下命令以启动会话模式
提示:-d是分离模式运行,不会占用控制台,-nm是指定名称的意思

bin/yarn-session.sh -d -nm test

4.单作业模式部署

单作业模式跟会话模式的不同之处在于,在运行程序时向yarn申请资源,程序执行结束后,资源回收,而会话模式会一次性向yarn申请资源,并生成一个常驻线程,两者各有优点,可根据项目不同需求进行选择,执行以下命令启动单作业模式
提示:-c后面是运行的主类,*.jar是编写的程序jar包,可根据不同项目自行修改

bin/flink run -d -t yarn-per-job -c org.example.wordcount Flink-WordCount.jar

5.应用模式部署

与单作业模式类型,也是在执行程序是向yarn申请资源,只不过命令有些区别,从flink1.1版本后推出,也是目前比较推荐的方式,执行以下命令启动应用模式部署
提示:-c后面是运行的主类,*.jar是编写的程序jar包,可根据不同项目自行修改

bin/flink run-application -t yarn-application -c org.example.wordcount Flink-WordCount.jar

此处也可以任务上传hdfs提交,先在hdfs上分别创建一个hdfs目录用于存放flink依赖包和flink运行程序

hadoop fs -mkdir /flink-lib
hadoop fs -put $FLINK_HOME/lib /flink_lib
hadoop fs -put $FLINK_HOME/plugins /flink_lib
hadoop fs -mkdir /flink-jar

然后执行以下命令运行flink任务
提示:-c后面是运行的主类,*.jar是编写的程序jar包,可根据不同项目自行修改

bin/flink run-application -t yarn-application -Dyarn.provided.lib.dirs="hdfs://cdp1:8020/flink-lib" -c org.example.wordcount hdfs://cdp1:8020/flink-jar/Flink-WordCount.jar

总结

至此,flink集群就已经安装部署完成,由于时间关系,关于flink的一些具体功能就不再具体展开,本篇内容旨在搭建一个flink环境为后续编写flink程序并验证一些功能,随着flink生态的不断完善,越来越多的开发者了解到flink的强大,flink1.17对批处理也做了加强,在流批一体大一统的方向上又迈出了一大步,另外随着paimon的推出,flink也在数据存储方面也补齐了自己的缺点,避免了一些组件如hudi、iceberg对flink功能适配的缺失。好了,今天就聊到这里,文章写的比较仓促,难免有疏漏的地方,后续会持续更新修正!

你可能感兴趣的:(大数据,flink)