Press "Enter" to skip to content

【雷火UX数据挖掘】Flink特点与结构简介

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

01

 

什幺是Flink?

 

Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。 它提供了一系列丰富的状态操作原语,允许以精确一次(exactly once)的一致性语义合并海量规模(TB 级别)的状态数据。

 

02

 

Flink的特点

 

Checkpoint:基于Chandy-Lampoet算法,实现了分布式一致性快照,提供了一致性的语义

 

State:丰富的State API。ValueState,ListState,MapState,BroadcastState

 

Time:实现了Watemark机制。实现乱序数据处理,迟到数据容忍

 

Window:拥有开箱即用的滚动、滑动、会话窗口以及灵活的自定义窗口

 

03

 

Flink的抽象级别

 

 

最底层提供了有状态流。它将通过过程函数(Process Function)嵌入到 DataStream API 中。它允许用户可以自由地处理来自一个或多个流数据的事件。

 

DataStream / DataSet API 是 Flink 提供的核心 API ,DataSet 处理有界的数据集,DataStream 处理有界或者无界的数据流。用户可以通过各种方法(map / flatmap / window / keyby / sum / max / min / avg / join 等)将数据进行转换。除此之外,用户可以注册事件时间和处理事件回调,从而使程序可以实现复杂的计算。

 

Table API 是以  为中心的声明式 DSL,其中表可能会动态变化(在表达流数据时)。Table API 提供了例如 select、project、join、group-by、aggregate 等操作,使用起来却更加简洁(代码量更少)。

 

Flink 提供的最高层级的抽象是 SQL 。这一层抽象在语法与表达能力上与  Table API 类似,但是是以 SQL查询表达式的形式表现程序。SQL 抽象与 Table API 交互密切,同时 SQL 查询可以直接在 Table API 定义的表上执行。

 

04

 

Flink运行架构

 

 

1、Program Code:我们编写的 Flink 应用程序代码

 

2、Job Client:Job Client 不是 Flink 程序执行的内部部分,但它是任务执行的起点。Job Client 负责接受用户的程序代码,然后创建数据流,将数据流提交给 Job Manager 以便进一步执行。执行完成后,Job Client 将结果返回给用户

 

3、Job Manager:主进程(也称为作业管理器)协调和管理程序的执行。它的主要职责包括安排任务,管理checkpoint ,故障恢复等。机器集群中至少要有一个 master,master 负责调度 task,协调 checkpoints 和容灾,高可用设置的话可以有多个 master,但要保证一个是 leader, 其他是 standby; Job Manager 包含 Actor system、Scheduler、Check pointing 三个重要的组件

 

4、Task Manager:从 Job Manager 处接收需要部署的 Task。Task Manager 是在 JVM 中的一个或多个线程中执行任务的工作节点。任务执行的并行性由每个 Task Manager 上可用的任务槽决定。每个任务代表分配给任务槽的一组资源。例如,如果 Task Manager 有四个插槽,那幺它将为每个插槽分配 25% 的内存。可以在任务槽中运行一个或多个线程。同一插槽中的线程共享相同的 JVM。同一 JVM 中的任务共享 TCP 连接和心跳消息。Task Manager 的一个 Slot 代表一个可用线程,该线程具有固定的内存,注意 Slot 只对内存隔离,没有对 CPU 隔离。默认情况下,Flink 允许子任务共享 Slot,即使它们是不同 task 的 subtask,只要它们来自相同的 job。这种共享可以有更好的资源利用率。

 

05

 

Flink的优点

 

可以处理有界、无界的数据流

 

可以部署到任意的地方

 

可以运行任意规模的应用

 

吞吐量高、低延迟、内存计算

 

参考资料

 

https://ci.apache.org/projects/flink/flink-docs-stable/

 

http://www.54tianzhisheng.cn/2018/10/13/flink-introduction/

 

Be First to Comment

发表回复

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