一、Flink介绍

Apache Flink 是一个分布式流批一体化的开源平台。Flink 的核心是一个提供数据分发、通信以及自动容错的流计算引擎。Flink 在流计算之上构建批处理,并且原生的支持迭代计算,内存管理以及程序优化。

对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个特例而已。也就是说,Flink 会把所有任务当成流来处理,这也是其最大的特点。

Flink 可以支持本地的快速迭代,以及一些环形的迭代任务。

Apache Flink VS Hadoop/Tez/Spark

每个框架都有各自的差异,以及更适合的场景,没有哪一个框架可以完美的支持所有的场景,也就不可能有任何一个框架能完全取代另一个,就像 Spark 没有完全取代 Hadoop。所以我们需要理解不同的其差异,从而更好的使用技术框架来解决实际问题。


二、Flink基本概念

  • Flink Cluster
    一般情况下,Flink 集群是由一个 Flink Master 和一个或多个 Flink TaskManager 进程组成的分布式系统。
  • Flink Master
    Flink Master 是 Flink Cluster 的主节点。它包含三个不同的组件:Flink Resource Manager、Flink Dispatcher、运行每个 Flink Job 的 Flink JobManager。
  • Flink JobManager
    JobManager 是在 Flink Master 运行中的组件之一。JobManager 负责监督单个作业 Task 的执行。以前,整个 Flink Master 都叫做 JobManager。
  • Flink TaskManager
    TaskManager 是 Flink Cluster 的工作进程。Task 被调度到 TaskManager 上执行。TaskManager 相互通信,只为在后续的 Task 之间交换数据。
  • Event
    Event 是对应用程序建模的域的状态更改的声明。它可以同时为流或批处理应用程序的 input 和 output,也可以单独是 input 或者 output 中的一种。Event 是特殊类型的 Record。
  • Record
    Record 是数据集或数据流的组成元素。Operator 和 Function接收 record 作为输入,并将 record 作为输出发出。
  • Partition
    分区是整个数据流或数据集的独立子集。通过将每个 Record 分配给一个或多个分区,来把数据流或数据集划分为多个分区。在运行期间,Task 会消费数据流或数据集的分区。改变数据流或数据集分区方式的转换通常称为重分区。
  • Function
    Function 是由用户实现的,并封装了 Flink 程序的应用程序逻辑。大多数 Function 都由相应的 Operator 封装。
  • Operator
    Logical Graph 的节点。算子执行某种操作,该操作通常由 Function 执行。Source 和 Sink 是数据输入和数据输出的特殊算子。
  • Logical Graph
    Logical Graph 是一种描述流处理程序的高阶逻辑有向图。节点是Operator,边代表输入/输出关系、数据流和数据集中的之一。
  • Instance
    Instance 常用于描述运行时的特定类型(通常是 Operator 或者 Function)的一个具体实例。由于 Apache Flink 主要是用 Java 编写的,所以,这与 Java 中的 Instance 或 Object 的定义相对应。在 Apache Flink 的上下文中,parallel instance 也常用于强调同一 Operator 或者 Function 的多个 instance 以并行的方式运行。
  • Operator Chain
    算子链由两个或多个连续的 Operator 组成,两者之间没有任何的重新分区。同一算子链内的算子可以彼此直接传递 record,而无需通过序列化或 Flink 的网络栈。
  • Task
    Task 是 Physical Graph 的节点。它是基本的工作单元,由 Flink 的 runtime 来执行。Task 正好封装了一个 Operator 或者 Operator Chain 的 parallel instance。
  • Physical Graph
    Physical graph 是一个在分布式运行时,把 Logical Graph 转换为可执行的结果。节点是 Task,边表示数据流或数据集的输入/输出关系或 partition。
  • Sub Task
    Sub-Task 是负责处理数据流 Partition 的 Task。”Sub-Task”强调的是同一个 Operator 或者 Operator Chain 具有多个并行的 Task 。
  • Transformation
    Transformation 应用于一个或多个数据流或数据集,并产生一个或多个输出数据流或数据集。Transformation 可能会在每个记录的基础上更改数据流或数据集,但也可以只更改其分区或执行聚合。虽然 Operator 和 Function 是 Flink API 的“物理”部分,但 Transformation 只是一个 API 概念。具体来说,大多数(但不是全部)Transformation 是由某些 Operator 实现的。

三、Flink应用场景

1、事件驱动

  1. 欺诈检测(Fraud detection)
  2. 异常检测(Anomaly detection)
  3. 基于规则的告警(Rule-based alerting)
  4. 业务流程监控(Business process monitoring)
  5. Web应用程序(社交网络)


2、数据分析应用
6. 双十一销售大屏
7. 在线实时预测
8. 在线实时推荐


3、数据ETL应用

  1. 数据实时入库
  2. 数据周期性入库

学习笔记Flink(一)—— Flink简介(介绍、基本概念、应用场景)相关推荐

  1. Unity DOTS 学习笔记1 - ECS 0.50介绍和安装

    Unity DOTS 学习笔记1 - ECS 0.50介绍和安装 为什么学习这个技术 ECS的全称为Entity Component System,是最早由暴雪在GDC2017上提出的一个新的游戏设计 ...

  2. 小猫爪:S32K3学习笔记09-S32K3之Safety简介

    小猫爪:S32K3学习笔记09-S32K3之Safety简介 1 前言 2 Safety相关硬件介绍 3 Safety相关软件介绍 4 Safety文章目录 END 1 前言   接下来,就要开始进学 ...

  3. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  4. python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式

    本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...

  5. Linux学习笔记 文件服务Vsftp详细介绍

    Linux学习笔记 文件服务Vsftp详细介绍 知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据 ...

  6. Oracle中job_type,【学习笔记】Oracle DBMS_SCHEDULER详细介绍与使用案例

    天萃荷净 分享一篇关于Oracle DBMS_SCHEDULER详细介绍与使用案例 1.通过DBMS_SCHEDULER.CREATE_JOB直接创建job SQL> create table ...

  7. HoloLens开发学习笔记(一):HoloLens简介

    HoloLens开发学习笔记(一):HoloLens简介 一.HoloLens简介 Microsoft HoloLens是Windows Holographic的使用主要设备.HoloLens是一个W ...

  8. OPENMP学习笔记(1)——简介,模型,运行

    OPENMP学习笔记(1)--简介,模型,运行 简介: OpenMP的英文全称是Open Multiprocessing,一种应用程序接口(API,即Application Program Inter ...

  9. JavaWeb学习笔记2 —— Web服务器简介

    JavaWeb学习笔记2 -- Web服务器简介 参考教程B站狂神https://www.bilibili.com/video/BV12J411M7Sj 相关技术 ASP: 微软:国内最早流行的就是A ...

  10. 嵌入式学习笔记——基于Cortex-M的单片机介绍

    基于Cortex-M的单片机介绍 前言 1生产厂商及其产品线 1.1ARM单片机的产品线 1.2命名规则 作业1 2习单片机的资料准备 2.1STM32开发所需手册 2.1.1芯片的数据手册 芯片基本 ...

最新文章

  1. Redis的自白:我为什么在单线程的这条路上越走越远?
  2. flutter已经支持安卓热更新_flutter 在 android 上的热更新
  3. Wp7下的Timer DispatcherTimer使用
  4. leetcode 470. 用 Rand7() 实现 Rand10()
  5. 在c语言中 十六进制转十进制,C语言中十六进制转十进制两种实现方法
  6. 过河卒(洛谷P1002题解,Java语言描述)
  7. C语言小知识---特殊的字符串
  8. 线程的故事:3 位“母亲”成就了优秀的我!
  9. 持续集成商 Travis CI 爆严重漏洞,数千开源项目机密或被盗
  10. jdk1.7 1.8新特性
  11. Mac上的Dock 栏如何设置更好用?
  12. SVN工具介绍- VisualSVN Server与TortoiseSVN
  13. [虾神GIS制图课堂]四色地图配色法
  14. idea的工具栏显示
  15. 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
  16. C++ windy数
  17. nao机器人学习笔记3
  18. 行列式的计算方法(含四种,看完就会!)
  19. matlab狐狸与野兔数学模型,数学建模论文-狐狸野兔问题.doc
  20. 诺基亚5320微信提示服务器繁忙,诺基亚5320XM刷机要注意 RM409刷6.13失败的经历

热门文章

  1. 如何优雅的实现pandas DataFrame 和spark dataFrame 相互转换
  2. 202. Happy Number
  3. 文巾解题 176. 第二高的薪水
  4. 如何迅速成长成为一名数据分析师(都是干货)?
  5. pycharm开发python时出现控制台显示中文乱码
  6. jmeter ant的html结果为空,Ant Jmeter Jenkins生成html测试报告
  7. WORD 同一位置引用多篇文献
  8. 白话异常检测算法Isolation Forest
  9. node-rsa加密,java解密调试
  10. Logistic Regression 模型简介