大数据之Flink流式计算引擎

FlinkDataFlow数据的分类有界数据离线的计算效率:硬件相同的情况下:时间无界数据实时的计算效率:硬件环境相同的情况下,吞吐量:数据处理的数量、延迟:结果输出的时间—数据接收的时间状态有状态无状态窗口函数滚动窗口数量–时间不重复滑动窗口可以重复滑动的间隔–窗口的宽度会话窗口不会重复基于某一个用户的未操作时间时间事件时间到达时间处理时间Flink简介大数据计算引擎第一代:
摘要由CSDN通过智能技术生成

Flink

DataFlow

数据的分类

  • 有界数据

    • 离线的计算

      • 效率:硬件相同的情况下:时间
  • 无界数据

    • 实时的计算

      • 效率:硬件环境相同的情况下,吞吐量:数据处理的数量、延迟:结果输出的时间—数据接收的时间

状态

  • 有状态
  • 无状态

窗口函数

  • 滚动窗口

    • 数量–时间
    • 不重复
  • 滑动窗口

    • 可以重复
    • 滑动的间隔–窗口的宽度
  • 会话窗口

    • 不会重复
    • 基于某一个用户的未操作时间

时间

  • 事件时间
  • 到达时间
  • 处理时间

Flink简介

大数据计算引擎

  • 第一代: MapReducer

    • 批处理:Mapper, Reducer
    • Hadoop的MapReducer将计算分为两个阶段, 分别为Map和Reducer. 对于上层应用来说, 就不得不想方设法去拆分算法, 甚至于不得不在上层应用实现多个Job的串联, 以完成一个完整的算法, 例如迭代计算.
  • 第二代: DAG框架 (Tez) + MapReducer

    • 批处理 1个Tez = MR (1) + MR (2) + … + MR (n) 相比MR效率有所提升
  • 第三代: Spark

    • 批处理, 流处理, SQL高层API支持 自带DAG 内存迭代计算, 性能较之前大幅提升
  • 第四代: Flink

    • 批处理, 流处理, SQL高层API支持 自带DAG 流式计算性能更高, 可靠性更高

介绍

  • 2014 年 Flink 作为主攻流计算的大数据引擎开始在开源大数据行业内崭露头角。区别于Storm、
    Spark Streaming 以及其他流式计算引擎的是:它不仅是一个高吞吐、低延迟的计算引擎,同时还提供很多高级的功能。比如它提供了有状态的计算,支持状态管理,支持强一致性的数据语义以及支持 基于Event Time的WaterMark对延迟或乱序的数据进行处理等

特点

  • 分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架

  • 框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink 被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。

  • Flink流处理的特点

    • 同时支持高吞吐,低延迟,高性能

    • 支持事件时间(Event Time) 概念

      • Process TIme,大多数框架窗口计算采用的都是系统时间(process time),也是事件传
        输到计算框架处理时,系统主机的当前时间。
      • Event Time,Flink支持基于事件时间(Event Time)语义进行窗口计算,也就是使用事
        件产生的时间,这种基于事件驱动的机制使得事件即使乱序到达,流系统也能够计算出
        精确的结果,保持了事件原本产生时的时序性,尽可能避免网络传输或硬件系统的影
        响。
    • 支持有状态计算

    • 支持高度灵活的窗口(Window)操作。

    • 基于轻量级的分布式快照(CheckPoint)来实现容错

    • 基于JVM实现独立的内存管理

    • Save Point保存点

      • CheckPoint是自动的,做容错。Save Point是手动的,处理程序升级。

Flink数据分类

  • 有界数据

    • 具有起始时间和截止时间。它可以在执行任何的计算之前,先通过摄取所有数据后再来处理有
      界流。处理有界流不需要有序摄取,因为可以对有界数据集进行排序。有界流的处理也称为批
      处理。

    • 特点

      • 有定义流的开始,也有定义流的结束。
      • 有界流可以在摄取所有数据后再进行计算。
      • 有界流所有数据可以被排序,所以并不需要有序摄取。
      • 有界流处理通常被称为批处理
  • 无界数据

    • 它有开始时间但没有截止时间,它们在生成时提供数据,但不会被终止。无界流必须连续处理
      数据,即必须在摄取事件后立即处理事件。它无法等待所有输入数据到达,因为输入是无界
      的,如果是这样,在任何时间点都不会完成。处理无界数据通常要求以特定顺序摄取事件,例
      如事件发生的顺序,以便能够推断结果完整性。

    • 特点

      • 有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。
      • 无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。
      • 处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。
    • Flink 擅长精确的时间控制和状态化,使得 Flink 的运行时(runtime)能够运行任何处理无界流的应用。

性能对比

  • Flink是一行一行处理,而SparkStream是基于数据片集合(RDD)进行小批量处理,所以Spark在流式处理方面,不可避免增加一些延时。
  • Flink的流式计算跟Storm性能差不多,支持毫秒级计算,而Spark则只能支持秒级计算。
  • Spark和Flink全部都运行在Hadoop Yarn上, 性能为Flink >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值