交流群:942277506,问题答案:董长春

重要说明

该文将根据本人学习进度不断更新,计划分章节仔细介绍,随着对知识的不断学习,我将会对前边的内容进行优化,以保证技术描述的准确,以及与官方版本同步。

Flink介绍

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

那么如何来理解有边界和无边界的数据流呢?

无界流

有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。

有界流

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

小结

Apache Flink 擅长处理无界和有界数据集 精确的时间控制和状态化使得 Flink 的运行时(runtime)能够运行任何处理无界流的应用。有界流则由一些专为固定大小数据集特殊设计的算法和数据结构进行内部处理,产生了出色的性能。

部署应用到任意地方

Apache Flink 是一个分布式系统,它需要计算资源来执行应用程序。Flink 集成了所有常见的集群资源管理器,例如 Hadoop YARN、 Apache Mesos 和 Kubernetes,但同时也可以作为独立集群运行。

Flink 被设计为能够很好地工作在上述每个资源管理器中,这是通过资源管理器特定(resource-manager-specific)的部署模式实现的。Flink 可以采用与当前资源管理器相适应的方式进行交互。

部署 Flink 应用程序时,Flink 会根据应用程序配置的并行性自动标识所需的资源,并从资源管理器请求这些资源。在发生故障的情况下,Flink 通过请求新资源来替换发生故障的容器。提交或控制应用程序的所有通信都是通过 REST 调用进行的,这可以简化 Flink 与各种环境中的集成。

运行任意规模应用

Flink 旨在任意规模上运行有状态流式应用。因此,应用程序被并行化为可能数千个任务,这些任务分布在集群中并发执行。所以应用程序能够充分利用无尽的 CPU、内存、磁盘和网络 IO。而且 Flink 很容易维护非常大的应用程序状态。其异步和增量的检查点算法对处理延迟产生最小的影响,同时保证精确一次状态的一致性。

Flink 用户报告了其生产环境中一些令人印象深刻的扩展性数字

  • 处理每天处理数万亿的事件
  • 应用维护几TB大小的状态
  • 应用在数千个内核上运行

利用内存性能

有状态的 Flink 程序针对本地状态访问进行了优化。任务的状态始终保留在内存中,如果状态大小超过可用内存,则会保存在能高效访问的磁盘数据结构中。任务通过访问本地(通常在内存中)状态来进行所有的计算,从而产生非常低的处理延迟。Flink 通过定期和异步地对本地状态进行持久化存储来保证故障场景下精确的状态一致性。

故障恢复

Apache Flink 是一个针对无界和有界数据流进行有状态计算的框架。由于许多流应用程序旨在以最短的停机时间连续运行,因此流处理器必须提供出色的故障恢复能力,以及在应用程序运行期间进行监控和维护的工具。

它(这类流处理器)不仅能在服务出现故障时候能够重启服务,而且当故障发生时,保证能够持久化服务内部各个组件的当前状态,保证在故障恢复时候,服务能够继续正常运行,好像故障就没有发生过一样。

检查点的一致性

Flink的故障恢复机制是通过建立分布式应用服务状态一致性检查点实现的,当有故障产生时,应用服务会在重启后,再重新加载上一次成功备份的状态检查点信息。结合可重放的数据源,该特性可保证精确一次(exactly-once)的状态一致性。

高效的检查点

如果一个应用要维护一个TB级的状态信息,对此应用的状态建立检查点服务的资源开销是很高的,为了减小因检查点服务对应用的延迟性(SLAs服务等级协议)的影响,Flink采用异步及增量的方式构建检查点服务。

端到端的只执行一次(End-to-End Exactly-Once)

Flink 为某些特定的存储支持了事务型输出的功能,及时在发生故障的情况下,也能够保证精确一次的输出。

集成多种集群管理服务

Flink已与多种集群管理服务紧密集成,如 Hadoop YARN, Mesos, 以及 Kubernetes。当集群中某个流程任务失败后,一个新的流程服务会自动启动并替代它继续执行。

内置高可用服务

Flink内置了为解决单点故障问题的高可用性服务模块,此模块是基于Apache ZooKeeper 技术实现的,Apache ZooKeeper是一种可靠的、交互式的、分布式协调服务组件。

用户

阿里巴巴、华为、腾讯、小米、快手、亚马逊等

(一)Flink从入门到项目实战——Flink介绍——董长春相关推荐

  1. 5G 时代的 Android App 开发入门与项目实战

    随着移动互联网的持续发展,Android系统从智能手机逐步拓展到平板电脑.智能电视.车载大屏.智能家居.智能手表等诸多设备,Android开发依然是前景可期的IT岗位. 当然,整个社会正在迈向5G时代 ...

  2. python从入门到项目实战李兴华网盘_贺胜军Python轻松入门到项目实战【经典完整版】...

    贺胜军Python轻松入门到项目实战课程目录 01_Python基本概述 01_计算机组成_操作系统.avi 02_计算机的进制.avi 03_数据存储单位1.avi 04_编码和解码.avi 05_ ...

  3. Python3.5入门到项目实战(104天课程)

    今天给大家分享一套详细的教程[Python3.5入门到项目实战(104天)],希望能够帮助到正在学Python的你,好了,话不多说,直接上资源: 资源目录 第01部分- 计算机与Linu基础(01-0 ...

  4. 【Golang 快速入门】项目实战:即时通信系统

    Golang 快速入门 即时通信系统 - 服务端 版本一:构建基础 Server 版本二:用户上线功能 版本三:用户消息广播机制 版本四:用户业务层封装 版本五:在线用户查询 版本六:修改用户名 版本 ...

  5. 20天从入门到项目实战:学习小组C1任务训练实录

    经过20天的探索,来自国防科技大学.北航.华工等49所高校小伙伴们组建了19个学习小组,其中大部分成员已经完成了C1的训练任务,包括修改游戏存档.网络接入等. 小组成员积极讨论,以布置的任务为主线,辅 ...

  6. 零基础学习嵌入式入门以及项目实战开发【手把手教+国内独家+原创】

    零基础学习嵌入式入门以及项目实战开发[手把手教+国内独家+原创] 独家拥有,绝对经典                            创 科 之 龙 嵌入式开发经典系列教程 [第一期] 主讲人: ...

  7. react从零基础入门到项目实战视频教程

    React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站, 并于 2013年 5 月开源.React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它.这 ...

  8. 《Java从入门到项目实战(全程视频版)》(李兴华 著)【配套资源及赠送资源】

    <Java从入门到项目实战(全程视频版)>(李兴华 著)[配套资源及赠送资源] 其他Java全部资料 公号:纯洁的明依.回复 Java从入门到项目实战

  9. 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法

    [推荐系统入门到项目实战](三):矩阵分解和ALS算法

最新文章

  1. 助力隐私保护,Cashshuffle之后又一支柱Interwallet正式发布
  2. java笔试题(3)
  3. python3 all any 判断迭代参数 是否全部 是否有 为true
  4. 让就医流程更智能 道一循推医院官方APP
  5. Linux:WPS不能使用中文输入法
  6. ubuntu安装sublime
  7. php redis 设置,php设置redis扩展,你值得拥有
  8. BZOJ1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
  9. 谍影重重,由片名想起
  10. 转为字符数组_py字符打印照片
  11. ping命令使用集合
  12. pgadmin4工具安装及使用
  13. 北斗卫星导航系统基础篇之(一)
  14. spark mlib系列2
  15. Galaxy S8及S+全屏显示适配
  16. 微软计算器按钮按键AC CE MC MR MS M+中英文对照 使用方法
  17. php使用gd库将文字转换成图片
  18. C#学习笔记-思维导图
  19. java swing实现简单KFC点餐系统
  20. 基于Xilinx平台MicroBlaze的SPI方式FatFs移植

热门文章

  1. 【论文阅读】Underwater Image Enhancement: Using Wavelength Compensation and Image Dehazing(WCID)
  2. 【小技巧】Linux安装matlab教程
  3. android 开发 网易邮箱,怎么在Android客户端设置网易企业邮箱
  4. linux DSA 开发(一)
  5. ipad还能横行霸道多久
  6. 计算机管理系统工具 下没有用户名密码,电脑设置管理系统用户账户,更改用户名,设置密码等...
  7. 亚马逊常见的专业词汇你都知道吗?建议小白耐心看
  8. 牛客SQL22--- 统计各个部门的工资记录数
  9. c语言程序设计实验与习题指导 第2版,C语言程序设计实验与习题指导(第2版)参考答案.doc...
  10. 计算机论文答辩代码讲解,计算机专业毕业论文答辩的程序讲解