一、Flink简介介绍
Flink:框架和(分布式)引擎,对(有界和无界)数据流进行有状态(即存储中间结果)计算。
- 无界数据:有定义的开始,没有结束,必须持续处理,即摄取到数据立即处理
- 有界数据:有定义的开始,也有结束,摄取到所有数据后再计算,可以被排序,即无需有序摄取,通常称为批处理。
- 存储位置:
内存:速度快,可靠性差
分布式系统:速度慢,可靠性强
DataStream 批流统一处理
DataStream 批流统一处理,数据流的统一处理接口。流处理中有两种不同的流:
- 批处理,是将其数据当作有界(有定义开始,有定义结束)流处理,例如文本文件数据
- 流处理,是将其数据当作无界(无定义开始,无定义结束)流处理,例如实时数据
二、Flink集群的架构
三、Flink三种运行方式(与spark相似)
1、local 本地测试
2、Standallone Cluster 独立集群(做实时计算,不需要hadoop,该独立集群可能用的上)
3、Flink on Yarn 推荐
四、基础环境搭建
1、服务器资源配置准备
在文件/etc/hosts追加内容,配置映射地址,不使用虚拟映射直接使用ip也是可以
192.168.56.128 hadoop001
192.168.56.129 hadoop002
192.168.56.130 hadoop003
实际的ip根据服务器资源修改
2、Java环境配置
将下载好的Java进行安装,在文件 /root/.bash_profile或/etc/profile后追加内容。
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HIOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
部署前提,最Flink新版本1.17要求java 11以上版本,1.12还可以使用java 8版本。根据版本自行选择对应版本JDK。;
注意:/root/.bash_profile表示系统环境(系统下所有用户生效)
/etc/profile表示用户环境(只有当前用户生效)
3、使环境变量生效
source /root/.bash_profile
4、验证是否成功
java -version
5、Flink上传、解压、配置环境变量
#进入压缩包所在目录
cd /usr/local/
#解压
tar -zxvf /usr/local/flink-1.17.0-bin-scala_2.12.tgz
#重命名
mv flink-1.17.0 flink
#