Flink学习系列——Flink简介(一)

238 阅读2分钟

作者:高二蛋

来源:恒生LIGHT云社区

主要内容:

  • Flink是什么
  • 为什么用Flink?
  • 流处理的发展和演变
  • Flink的主要特点
  • Flink VS Spark Streaming

1.Flink是什么

  • Flink是一个框架(可以处理流和批处理的框架)和分布式处理引擎,用于对无界数据和有界数据流进行状态计算;

2.为什么选择 Flink:

  • 流数据更真实的反应我们的生活方式;
  • 传统的数据架构是基于有限数据集的;
  • 我们的目标:
    • 低延迟;
    • 吞吐性;
    • 结果的准确性和良好的容错性;

3.哪些行业需要处理流数据呢?

  • 电商和市场营销:

    • 数据报表,广告投放,业务流程需要;
  • 物联网(IOT):

    • 传感器实时数据的采集和显示,实时报警,交通运输业;
  • 电信业:

    • 基站流量匹配;
  • 银行和金融业:

    • 实时结算和通知推送,实时监测异常行为;

4.流式处理的演变:

developer.hs.net/thread/1009

5.Flink主要特点:

  • 事件驱动:
  • 3.png
  • 基于流的世界观:
  • 4.png
  • 分层API:
  • 2.png
  • 支持事件事件(event-time)和处理时间(processing-time)语义;
  • 精确一次(exactly-once)的状态一致性保证;
  • 低延迟,每秒处理百万个事件,毫秒级延迟;
  • 与众多常用存储系统的连接;
  • 高可用,动态扩展,实现7*24小时全天候运行;

6.flink VS Spark Streaming:

  • 结构:
    • Flink:流(stream)
    • Spark Streaming:微批(micro-batching)1.png
  • 数据模型:
    • Flink:基本数据模型就是数据流,以及事件(Event)序列;
    • Spark采用RDD模型,SparkStreaming的DStream实际上也就是一组组小批数据RDD的集合;
  • 运行时架构:
    • Flink:是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一个节点进行处理;(因为没有stage的划分,所以延迟性低)
    • Spark是批处理,将DAG划分为不同的stage,一个完成之后才可以计算下一个;