Flink实战(一)

文章目录

  • Flink实战(一)
    • Flink概述
      • Flink是什么
        • 定义
        • Stateful Computations over Data Streams
        • Flink的诞生和发展
        • Flink特性
      • Flink的生态与未来
        • 核心组件
        • 生态
        • Flink未来
      • Flink Use Cases
        • Flink主要应用场景
        • 案例
      • Flink vs Spark
        • 流处理框架对比
        • Flink vs Spark

Flink实战(一)

Flink概述

Flink是什么

定义

  1. Apache Flink是一个分布式的大数据计算引擎
  2. 能够对有限和无限数据集进行有状态的计算
  3. 可以部署在各种集群环境
  4. 可以对各种规模的数据进行快速准确的计算

Stateful Computations over Data Streams

Flink实战(一)_第1张图片

  1. 数据源:交易数据、日志数据、物联网设备数据、点击流数据等
  2. 应用:事件驱动应用、数据流管道应用、流、批数据分析
  3. 官网
  • flink-apache地址:https://flink.apache.org/
  • flink-china地址:https://flink-china.org/
  • 商业运营公司:https://data-artisans.com

Flink的诞生和发展

Flink实战(一)_第2张图片

  1. 诞生:诞生于2009年,德国柏林工业大学的名为StratoSphere研究性项目,最初主要专注于批处理;直到14年捐献给Apache之后,更名为Flink,并迅速孵化成Apache顶级项目,并且定位是流计算
  2. 发展:发展历程
    Flink实战(一)_第3张图片
  • 可以看出,Flink诞生比Spark、Storm都早,但是是在捐献给apache之后,得到迅速发展,并且目前在流计算领域拥有很大影响力
  • 其中2015年,是大数据流计算框架层出不穷的时期,包括Storm、SparkStreaming、Flink、Dataflow(谷歌的)等等,而Flink是最接近谷歌Dataflow的开源实现

Flink特性

  1. 流、批统一
  2. 支持java、scalaAPI、Python(还在完善中)
  3. 高吞吐、低延时
  4. 复杂事件处理、处理乱序
  5. 不同的时间语义(Event Time、Ingestion Time、Process Time)下支持灵活的窗口(Time Window、Rolling Window、Sliding Window、Session Window、以及自定义窗口)
  6. Exactly Once语义
  7. 自动反压机制(阻塞生产端从而保证正在运行的flink task不受影响)
  8. 支持图计算、机器学习、复杂事件处理
  9. 高效的自定义内存管理
  10. 集成的Hadoop、Hdfs、MR、Hbase等Hadoop生态圈组件

Flink的生态与未来

核心组件

  1. 组件
    Flink实战(一)_第4张图片
  • 部署支持:本地JVM(调试的时候用)、集群(Standalone || Yarn)、云上
  • 底层Flink Runtime
  • 流处理API:DataStream API;批处理API:DataSet API
  • 最上层:CEP复杂事件处理(规则匹配)、SQL&Table API(可以和DataStream API、DataSet API互相转换)、FlinkML(机器学习)、Gelly(图计算)

生态

Flink实战(一)_第5张图片

  1. Source:HDFS、Hbase、Kafka、RabbitMQ等等
  2. 数据处理引擎:Flink各个组件
  3. Sink:HDFS、Hbase、Kafka、RabbitMQ、ES等等

Flink未来

  1. 批处理的突破,流批融合
  2. 增加多种语言的支持
  3. 完善Flink ML算法库,会向更成熟的机器学习、深度学习框架去集成(例如:谷歌的TensorFlow on Flink)

Flink Use Cases

Flink主要应用场景

  1. Event-Drive APP(事件驱动)
    Flink实战(一)_第6张图片
  2. Data-Analytics APP(数据分析)
    Flink实战(一)_第7张图片
  3. Data-Pipeline APP(管道式ETL)
    Flink实战(一)_第8张图片

案例

  1. 阿里Flink应用场景
    Flink实战(一)_第9张图片
  2. 阿里Flink应用场景案例分析—欺诈检测

Flink vs Spark

流处理框架对比

Flink vs Spark

  1. API
    Flink实战(一)_第10张图片
  2. Connectors
    Flink实战(一)_第11张图片
  3. Runtime Env
    Flink实战(一)_第12张图片
  4. 总体对比
  • Spark生态上更完善、在机器学习的集成和易用性上优势大些
  • Flink在流计算上有绝对优势,并且在核心架构和模型上更通透以及灵活
  • 在易用性上面,以及各自的短板上需要继续努力

你可能感兴趣的:(大数据)