Flink预览

我们来看下Flink在不断迭代之后,较新的流处理引擎,具有的特性

首先,对于处理顺序,由于同时支持事件时间和处理时间语义,如果使用事件时间,能够针对无序事件提供一致,精准的结果.如果使用处理时间,则可以做到低延时高吞吐

而且提供了exactly-once的状态一致性保证.

层次化API在表达能力和易用性方面各有权衡,提供了通用的流处理操作原语来精准控制时间和状态接口

提供了常见存储系统的连接器,比如Kafka,Cassandra,Elasticsearch,JDBC,HDFS等

支持多种部署方式,比如Kubernetes,YARN,Apache Mesos等,从而快速回复,无需停机

可以不进行丢失应用状态的情况下更新作业的程序代码,进行跨Flink集群的作业迁移

提供了详细的,高度自定义化得metrics集合,方便监控响应问题.

运行一个Flink应用.

Flink本身支持了嵌入式执行模式,将自身连同整个Flink系统在单个JVM进程中启动,这就方便Flink作业在IDE中调试.

而本地集群的使用,也并不困难,我们一步步的启动本地集群并运行一个流式应用.

首先是下载一个支持Scala 2.12的Flink包

然后解压相关文件

tar xvfz flink.tgz

之后启动本地Flink集群

./bin/start-cluster.sh Starting cluster

然后会在本地的8081端口上开放Flink Web UI,直接访问可以查看运行状态

这时候我们尝试准备一个Jar方便提交任务

然后在集群上运行示例Jar

./bin/flink run -c io.github.streamingwithflink.chapter1.AverageSensorReading examples-scala.jar

接下来就可以在Web UI上看到Running Jobs中有一个作业了

如果希望查看内部的输出结果,也可以在WebUI上进行查看

而希望停止这个任务,则只需要点击Cancel按钮

最后别忘了停止本地Flink集群.

./bin/stop-cluster.sh

发表评论

邮箱地址不会被公开。 必填项已用*标注