Flink学习笔记(一):为什么选择flink
一、概述
在很多数据处理场景下,要求数据以数据流的形式进行分析和存储,然鹅er…为啥选flink呢?流处理的框架不是很多么
Q: 流处理框架有很多中,比如前面提到的spark,storm等,为什么选flink?
A: 1.flink具有高吞吐、低延迟、高性能的特性(海量数据秒级处理)
2.支持带有事件时间的窗口(Window)操作
3.持有状态计算的Exactly-once(严格/恰好一次)语义,保障状态的一致性
4.支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作
5.一个运行时同时支持Batch on Streaming处理和Streaming处理
6.丰富的API支持,支持REST(Representational State Transfer)
7.支持机器学习(FlinkML),支持图分析(Gelly),支持关系数据处理(Table),支持复杂事件处理(CEP)
8.整合支持Flink on YARN,HDFS,Kafka,Apache HBase,Hadoop,
Tachyon,持ElasticSearch,RabbitMQ,Apache Storm,S3,XtreemFS
文字不直观?来张图看看,是不是更清楚些了呢
二、场景结构
我们首先以一个场景为例,如下图所示
如图所示,kafka集群存储来自各个场景的日志数据,flink通过kafka接口进行消费,获取kafka的数据,flink加载分析引擎,然后通过进行数据处理,将处理完的数据写入mysql数据库中,然后通过前端展示出来。
三、应用场景
flink提供了大量的接口,我们可以方便的从数据源获取数据,处理后输出到指定的存储容器中,我们可以看一下fink的应用场景,看完是不是也跃跃欲试呢。