本地单机安装
Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。
-
有状态计算的Exactly-once语义。状态是指flink能够维护数据在时序上的聚类和聚合,同时它有checkpoint机制
-
支持带有事件时间(event time)语义的流处理和窗口处理。事件时间的语义使流计算的结果更加精确,尤其在事件到达无序或者延迟的情况下。
-
支持高度灵活的窗口(window)操作。支持基于time、count、session,以及data-driven的窗口操作,能很好的对现实环境中的创建的数据进行建模。
-
轻量的容错处理( fault tolerance)。 它使得系统既能保持高的吞吐率又能保证exactly-once的一致性。通过轻量的state snapshots实现
-
支持高吞吐、低延迟、高性能的流处理
-
支持savepoints 机制(一般手动触发)。即可以将应用的运行状态保存下来;在升级应用或者处理历史数据是能够做到无状态丢失和最小停机时间。
-
支持大规模的集群模式,支持yarn、Mesos。可运行在成千上万的节点上
-
支持具有Backpressure功能的持续流模型
-
Flink在JVM内部实现了自己的内存管理
-
支持迭代计算
-
支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果进行缓存
1. 下载安装
1.1. Mac OS
使用brew安装
$ brew install apache-flink
$ flink –version
1.2. 使用安装包
官网下载地址 https://flink.apache.org/downloads.html
下载flink
下载解压缩到指定目录
2. 启动本地模式
$ cd /Users/hhw/myapp/flink-1.7.0/bin
Start a Local Flink Cluster
$ ./bin/start-cluster.sh
浏览器访问
http://localhost:8081/#/overview
可以看到Flink WebUI
查看启动日志
$ tail -f log/flink-*-taskexecutor-*local.out
3. 运行Demo
官方例子,会从一个socket中读一段文本,并且每隔5秒打印每个单词出现的数量
start a socket client
$ nc -l 9000
image
run flink examples
$ ./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000
查看输出日志
$ tail -f log/flink-*.out
image
4. 停止Flink
$ bin/stop-cluster.sh
网友评论