微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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。

 

 

 

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

相关推荐