Apache Flink介绍

Apache Flink介绍Apache Flink介绍 俗话说知子莫若父,要想了解一门技术就要看官方的介绍。Flink官网对Flink的介绍是这样的: Apache Flink is a framework and distr

Apache Flink介绍

Apache Flink介绍

俗话说知子莫若父,要想了解一门技术就要看官方的介绍。Flink官网对Flink的介绍是这样的:

Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale.

代码100分

额…看不懂。翻译过来就是:

代码100分apache flink是一个用于在无界和有界数据流上进行有状态计算的分布式处理框架和引擎。Flink被设计成可以在所有常见的集群环境中运行,以内存速度和任何规模执行计算。

似乎太笼统了。接下来我们就深入的了解一下Flink究竟是一个什么鬼。

数据架构的演变

要想了解Flink我们还得从分布式计算的历史讲起,所以历史课时间到。

在国外一些社区,有很多人讲计算引擎分为了四代,虽然这并不能代表所有人的观点,但是我们可以在这些分代中看出计算引擎的区别。

首先第一代的计算引擎,无疑就是Hadoop承载的MapReduce了。相信了解大数据的童鞋对MapReduce都不会陌生,它将计算分成两部分,一部分是Map阶段,一部分是Reduce阶段。这对于上层应用来说就不得不拆分算法。如果是较为复杂的计算,甚至于不得不实现多个Job的串联,例如迭代计算。

由于第一代计算引擎的弊端,催生了支持DAG ( Directed Acyclic Graph)框架的诞生。支持DAG框架的计算引擎被划分为了第二代计算引擎,比如Tez或Oozie。第二代计算引擎执行的大多数是批量任务。

前两代的计算引擎都是延迟较为严重,没法满足实时性要求比较高的需求。而以Spark为代表的第三代计算引擎很好的解决了这一问题。第三代计算引擎的特点主要是 Job 内部的 DAG 支持(不跨越Job),以及强调的实时计算。这里强调一点,这里的实时计算实质上是微批处理,并不是真正意义上的实时处理。

接下来的第四代计算引擎实现了真正意义上的实时处理,这就是我们今天介绍的Flink。当然Flink除了能够实现数据的实时处理外也很好的支持了批处理和DAG的运算。

迭代计算性能对比测试:Flink > Spark > Hadoop(MR)。迭代次数越多越明显,性能上Flink优于Spark和Hadoop最主要的原因是Flink支持增量迭代,具有对迭代自动优化的功能。

两种数据集和两种处理方式

有界数据与无界数据

Flink最大的特色就是它的流式处理方式。而在介绍Flink的流式处理我们要先了解一下有界数据和无界数据,好,上图:

Apache Flink介绍

有界数据流(bounded stream):具有定义的开始点和结束点。

无界数据流(unbounded stream):有一个起点,但没有定义的终点。

无界数据集包括但不限于如下

  • 终端用户与APP或WEB交互的数据
  • 物理传感器采集的数据
  • 金融市场行情
  • 系统或机器日志

就现实来说,在Flink出现之前由于处理方式的局限性,我们通常会将一些无界数据流人为的切分成有界数据流,然后在基于有界数据流进行处理。

流处理与批处理

流处理(Streaming):只要有数据生成则马上执行计算程序

批处理(Batch):在有限的时间内执行并运行到完成的处理,完成后释放计算资源

由此可见Spark Streaming其实是批处理。

我们可以使用任一类型的处理模型来处理任一类型的数据集,但不一定是最优的方案。事实上在以前我们一直在用批处理来处理无界数据集,甚至是现在依然在用。

多样的部署方式

Flink提供了多种集群搭建方式:

  • standalone cluster模式:不依赖于任何第三方资源管理器,Flink可以作为独立的集群运行
  • 基于第三方资源管理器:Flink与所有常见的集群资源管理器(如Hadoop YARN,Apache Mesos和Kubernetes集成)
  • Local模式:顾名思义,就是本地单机模式。

支持任意数据规模

Flink与所有的大数据计算框架一样,支持横向扩展。也就是说,理论上Flink可以支持无限量的CPU、内存、磁盘和网络IO。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7439.html

(0)
上一篇 2023-03-20
下一篇 2023-03-20

相关推荐

  • 基于keepalived配置数据库主从实现高可用[亲测有效]

    基于keepalived配置数据库主从实现高可用[亲测有效]基于keepalived配置数据库主从实现高可用 使用keepalived来监听端口,实现数据库的高可用。实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后…

    2023-03-16
    144
  • sql有什么特点?_神奇守护特性

    sql有什么特点?_神奇守护特性摘要:不要歪了,我这里说特性它不是 bug,而是故意设计的机制或语法,你有可能天天写语句或许还没发现原来还能这样用,没关系我们一起学下涨姿势。 本文分享自华为云社区《【云驻共创】天天写 SQL,你遇到

    2023-06-05
    130
  • mongodb聚合机制_mongodb集群模式

    mongodb聚合机制_mongodb集群模式$out 将聚合管道中的文档,写入到一个新的集合 output 中。如果 output 已存在且有数据,则原有的数据会被清空 db.transactions.aggregate([ { $group…

    2023-02-14
    154
  • 1、环境搭建-大数据 Hadoop配置和单机Hadoop系统配置

    1、环境搭建-大数据 Hadoop配置和单机Hadoop系统配置大数据 Hadoop配置和单机Hadoop系统配置

    2023-04-16
    156
  • 应用交付全球领导者F5 举行“代码到用户”线上峰会「建议收藏」

    应用交付全球领导者F5 举行“代码到用户”线上峰会「建议收藏」    2020年5月20日,F5“代码到用户”线上峰会,暨F5中国20周年纪念庆典将正式拉开帷幕。   去年7月1日,F5正式宣布著名华裔科学家林耕就任F5执行副总裁兼首席技术官,负责F5公司技术…

    2023-02-28
    158
  • INDIRECT函数_流函数

    INDIRECT函数_流函数1.FORMAT函数在mysql中是数据内容格式化的,格式化后得到结果:###,###,#####。 SELECT FORMAT(100000,2); 输出结果: 100,000.00 2.可以格式…

    2023-04-01
    166
  • 使用 Python 打开网页

    使用 Python 打开网页随着互联网的发展,越来越多的数据都存储在网页中,而访问网页获取数据已经成为了日常工作中的一个重要环节。在这个过程中,Python 作为一门流行的编程语言,也可以用来打开网页。本文将介绍如何使用 Python 打开网页,让你的工作变得更高效。

    2024-08-26
    26
  • Python字典应用:高效的数据管理工具

    Python字典应用:高效的数据管理工具Python是一种高级语言,使用起来十分方便,Python的字典(Dictionary)数据类型在数据管理方面也非常有用。字典是一个无序键(key)和值(value)结构,其中每个键都唯一。这使得Python的字典非常适合用于数据集中的快速访问和查询,因为它很容易在字典中找到一个给定的键所对应的值。

    2024-02-15
    90

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注