- 官网:https://flink.apache.org/
- 简介:Apache Flink是一个框架和分布式处理引擎,用于对
无界和有界
数据流进行有状态计算。Flink设计为在所有常见的集群环境中 运行,以内存速度和任何规模执行计算。
- 随处部署应用,可以与其他组件集成
- Flink是分布式系统,需要计算资源才可以执行程序。Flink可以与常见的集群资源管理器进行集成(Haddoop Yarn,Apach Mesos)
- Flink可以单独作为独立的集群模式运行
- 可以通过不同的部署模式实现,这些模式允许Flink以惯有的方式进行交互
- 当我们部署Flink程序时,Flink会根据应用程序配置的并行读自动识别所需资源
- 例如我们有20G的空间,我们只需要5G的资源,只会使用5G,另外的15G不会使用
- 需要多少资源,会从资源管理器中请求资源
- 容错机制
- 如果发生故障,Flink会请求信的资源来替换发生故障的容器
- 提交或控制程序都通过REST调用进行,简化Flink在环境中的集成
- 以任何比例应用程序
- 可以小集群、也可以无限集群
- Flink旨在以任何规模的运行有状态的应用程序。应用程序可以并行化在集群中分布和同时执行程序,因此, 我们的应用集群可以利用无限的CPU和磁盘与网络IO
- Flink可以轻松的维护非常大的应用程序状态
- 用户可拓展性报告
- 应用程序每天可以处理万亿个事件
- 应用程序每天可以未付多个TB的状态
- 应用程序可以在数千个内核中运行
- 充分的利用集群中的性能
- 流计算
- 数据源源不断的产生,我们的需求是源源不断的处理。程序需要一直保持在计算的状态
- 批处理
- 计算一段完整的数据集,计算陈宫后释放资源,name此时的工作结束
- 处理结果准确:无论是有序数据还是延迟达到的数据
- 容错机制:有状态:保持每次的记过往下传递,实现累加。DAG(有向无环图)
- 有很强大的吞吐量和低延迟:计算速度快,吞吐量处理的量级大
- 能够精准的维护应用状态:Storm:会发生要么多计算一次,要么漏计算
- 支持大规模的计算:可以运行在数前台节点上
- 支持流处理和窗口化操作
- 版本化处理:对当前处理的数据可以设置一个版本号
- Flink可以通过检查点机制实现精准的一次性计算保证:计算过程中出现问题,不用再次计算已经计算的部分
- 支持Yarn与mesos资源管理器
- 下载:https://flink.apache.org/downloads.html
- 上传到一个节点并解压: tar -zxvf flink-1.6.2-bin-hadoop28-scala_2.11.tgz -C hd/
- 启动:bin/start-cluster.sh
- 访问ui界面:http://host_ip:8081
- 配置主节点:vi /root/hd/flink-1.6.2/conf/flink-conf.yaml
修改:jobmanager.rpc.address:Hadoop01(主节点host_name) - 添加从节点:vi /root/hd/flink-1.6.2/conf/slaves
一行一个其他节点的host_name
- 发送到从节点:scp -r flink-1.6.2/ Hadoop02(从节点host_name):$PWD
- 修改环境变量并发送:vi /etc/profile 增加如下内容
##############Flink#################
export FLINK_HOME=/root/hd/flink-1.6.2
export PATH=$PATH:$FLINK_HOME/bin - 发送环境变量,重写加载环境变量
scp profile HD09-02:$PWD
source /etc/profile - 启动集群
- 代码
- 本地测试
- 集群测试