zoukankan      html  css  js  c++  java
  • Flink核心概念

    一、Flink的定义

    Flnk是一个分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink能在常见集群环境中运行,并能以内存速度和任意规模进行计算。

    二、有界流和无界流

    Flink的核心是流处理,当然也支持批处理。Flink的本质是流处理,它将批处理看作是流处理的特殊情况,即有界流数据。而Spark恰恰相反,Spark是将流处理看做是批处理的特殊情况,将数据进行小的拆分,即微批处理。

    有界流:定义了流的开始,也有定义流的结束。有界流在摄取从开始到结束这一阶段的所有数据后再进行计算,有界流处理通常被称为批处理。

    无界流:定义了流的开始,但是没有定义流的结束,数据会源源不断的产生。无界流的数据必须持续处理,即数据被摄取后需要立刻进行处理,不能等到所有数据到达再处理,因为等不到结束。

    三、有状态的计算架构

    有状态计算是什么:可以把中间计算结果拿出来,新的数据进来时,可以基于这个中间结果进行计算。

    Flink有状态计算的优势

    1.当有新的数据进来时,不需要把之前产生的数据拿出来进行全量计算,节约计算资源,提升性能。

    2.Flink维护了这个中间结果,不需要开发者去处理,如把中间结果存在redis啊,mysql,省心效率还高。

    四、Flink的优势和特点

    1.高吞吐、低延迟、高性能

    高吞吐:分布式架构,多台机器一起工作,一次可以处理很多数据。

    低延迟:真正的流处理,来一条处理一条,无需等待。

    高性能:内存计算,加上Flink内部的优化,计算快。

    2.支持事件时间(Event Time)

    事件时间:数据产生的时间。

    处理时间:数据到达计算框架的时间。

    在流计算中,经常会用到窗口计算,Spark窗口计算只支持处理时间,Flink可以既支持处理时间也支持事件时间。在分布式系统中,难免会出现乱序数据的情况。先产生的数据后到达流计算框架,如果还是采用处理时间计算数据的话,会影响计算结果的正确性,而使用事件时间就能够计算出精确的结果,避免了网络传输或硬件系统的影响。

    五、Flink常用场景

    实时风控

    实时报表

    实时数仓

    实时推荐系统

  • 相关阅读:
    STL常见用法
    7-1 求a/b的高精度值 (70分)
    迷宫问题
    ES6新特性之箭头函数语法
    2020软件工程作业05
    2020软件工程作业04
    CTF之SQL注入1
    CTF之Git泄露
    CTF之网站源码
    CTF之HTTP基础认证
  • 原文地址:https://www.cnblogs.com/yangyh11/p/13752547.html
Copyright © 2011-2022 走看看