Flink介绍

1、Flink简介

  • Apache Flink 是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。
  • Apache Flink 是 Apache 的顶级项目。
  • Apache Flink 特点:现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型:流处理一般需要支持毫秒级的低延迟、Exactly-once数据只消费一次保证。而批处理要支持高吞吐、高效处理。
  • Flink 完全支持流处理。作为流处理看待时,输入数据流是无界的。Flink将批处理作为一种特殊的流处理,输入的数据流是有界的。

2、Flink组件站

  • Flink系统本身是一个分层的架构。
  • 从下到上依次有:Deploy(Flink部署层)、Core(核心层,提供Flink本身的一些计算实现)、APIs层(Flink本身暴露出来的一些操作流或者批量数据的API)、Libraries层(Flink自己封装的一些满足特定应用的计算框架)。
  • Deployment层:主要涉及Flink的部署模式。Flink支持多种部署模式:本地、集群(Standaline/YARN【在生产环境中主要使用此模式,用于资源管理。】)、云(GCE/EC2)。
  • Flink onYarn 模式(绿图):Flink yarn的客户端,直接和 yarn resource manager 进行通信,resource manager向Flink集群申请资源,来启动服务。资源申请好了后,客户端可以直接提交job到链上运行。资源调度这一方面,直接交给resource manager来负责。
  • Runtime层:提供了支持Flink计算的全部核心计算。比如:支持分布式stream流处理、Flink内部job graph到 execution graph的映射、调度等。为上层API层提供基础服务。
  • API层:主要实现了无界stream的流处理,和面向batch的批处理API。其中面向流处理对应DataStream API,面向批处理对应DataSet API。API层是面向编程者本身的。最终的代码编写都是操作Flink本身暴露API进行编写的。
  • Libraries层:在API层之上构建的满足特定应用的实现计算框架,也分别对应于面向流处理和面向批处理两类。提供CEP事件处理模型、table内sql的操作,FlinkML机器学习处理、Gelly图处理。

 

 3、Flink自身优势

  • 支持高吞吐、低延迟、高性能的流处理。
  • 支持高度灵活的窗口Window操作。
  • 支持有状态(假如代码是搜索特定的事件,用户的点击和购买行为,状态会保存这到截至目前为止,遇到的所有这些事件的顺序。)计算的exactly-once(数据只消费一次保证)语义。
  • 提供data stream api 和 data set api。

 

 

 

posted @ 2022-06-17 14:23  酱汁怪兽  阅读(2482)  评论(0编辑  收藏  举报