Flink-简介以及standalone集群安装和简单的测试
flink简介
Flink是一个分布式大数据处理引擎,可以对有限数据流和无线数据流进行有状态计算,可以部署在各种集群环境,对各种大小的数据规模进行快速的计算。
flink的特点有什么
-
批流统一
-
支持高吞吐、低延迟I高性能的流处
-
支持带有事件时间的窗口(Window) 操作
-
支持有状态计算的Exactly-once 语义
5.支持高度灵活的窗口(Window) 操作,支持基于time、count、 session 窗口操作 -
支持具有Backpressure功能的持续流模型
-
支持基于轻量级分布式快照(Snapshot) 实现的容错
支持迭代计算 -
Flink在JVM内部实现了自己的内存管理
-
支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存
扫描二维码关注公众号,回复: 12238578 查看本文章
flink和其他框架的比较
框架名称 | 优点 | 缺点 |
---|---|---|
Storm | 低延迟 | 吞吐量低,不可以保证exactly-once,API不丰富 |
Spark | 吞吐量高,可以保证exactly-once,API丰富 | 延迟高 |
Flink | 吞吐量高,低延迟,可以保证exactly-once,API丰富 | 更新速度快,API变化速度快 |
flink的架构如下:
JobManager
也称之为Master,用于协调分布式执行,它用来调度task,协调检查点,协调失败时恢复等。Flink
运行时至少存在一个master,如果配置高可用模式则会存在多个master,它们其中有一个是leader,
而其他的都是standby.
TaskManager
也称之为Worker,用于执行一个dataflow的task.数据缓冲和Data Streams的数据交换,Flink 运
行时至少会存在一个TaskManager. JobManager 和TaskManager可以直接运行在物理机上,或者运行
YARN这样的资源调度框架,TaskManager 通过网络连接到JobManager,通过RPC通信告知自身的
可用性进而获得任务分配。
Spark和Flink的对比
flink安装
给你们百度云:
链接: https://pan.baidu.com/s/1bYkJ4OmmQnAUW7fiAqsKjw 密码: a53w
上传后解压即可
flink-standalone集群配置
1.进入flink文件夹下的conf目录:
vi flink-conf.yaml
修改如下内容:
#这里填主节点的ip地址,是worker与主节点通信的地址
jobmanager.rpc.address: 192.168.237.130
#资源槽,默认为1,太小了
taskmanager.numberOfTaskSlots: 2
修改从节点的地址:
vi slaves
添加内容:
192.168.237.131
192.168.237.132
配置结束(其实需要配的很少,不过没有配置高可用)
2.准备已经配置过ssh的机器
我自己的主节点为test130,另外两台从节点是test131和test132
将配置好的文件夹拷贝到其他机器上:
scp -r flink-1.9.1/ test131:/opt/modules/
scp -r flink-1.9.1/ test132:/opt/modules/
3.启动集群(在主节点机器上)
bin/start-cluster.sh
会出现如下图:
4.查看进程:
主节点:
从节点:
5.访问页面:http://192.168.237.130:8081/#/overview
默认开放端口为8081
简单的测试,做一个WordCount
flink安装包下面已经有自带的jar包,就是给我们测试的一个案例。
目录如下:flink1.9.1/examples
页面操作启动Task
- 在终端上开放端口8888
nc -lk 8888
-
点击左侧的Submit New Job
-
上传指定的jar包
-
上传完毕后的页面是这样的:
-
点击新加的这一行后,出现页面:输入并行度以及hostname和port(注意要有空格),点击提交
-
出现页面:
-
终端上输入相关数据(与第一步呼应):
- 在TaskManager下的某一个work中查看结果(结果不是在JobManager上看,而是在从节点看,随便点一个进去会出现以下页面,我们配置了2个从节点,如果你点进进去的work中没有数据,那么就是在另外的work上执行的任务)
命令行操作启动Task
bin/flink run -m test130:8081 -p 4 -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount examples/streaming/SocketWindowWordCount.jar --hostname test130 --port 8888
在flink目录下执行即可。只需要换掉自己的ip和端口即可
命令顺序如下
- -p 代表并行度
- -c [jar全类名] [路径]
- –hostname ip
- –port 端口