Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。目前主要还是依靠开源社区的贡献而发展。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。Flink 会把所有任务当成流来处理,这也是其最大的特点。Flink 可以支持本地的快速迭代,以及一些环形的迭代任务。并且 Flink 可以定制化内存管理。就框架本身与应用场景来说,Flink 更相似与 Storm。

1、Flink组件栈

    

  • 部署模式

    Flink能部署在云上或者局域网中,提供了所中部署方案(Local、Cluster、Cloud),能在独立集群或者在被YARN或Mesos管理的集群上运行。

  • 运行期

    Flink的核心是分布式流式数据引擎,意味着数据以一次一个事件的形式被处理,这跟批次处理有很大不同。这个保证了上面说的那些Flink弹性和高性能的特性。

  • API

    DataStream API和DataSet API都会使用单独编译的处理方式(Separate compilation process)生成JobGraph。DataSet API使用Optimizer来决定针对程序的优化方法,而DataStream API则使用stream builder来完成该任务。

  • 代码库

    Flink附随了一些产生DataSet或DataStream API程序的的类库和API:处理逻辑表查询的Table,机器学习的FlinkML,图像处理的Gelly,事件处理的CEP

2、Flink特性

  • 流处理特性  

    ü  支持高吞吐、低延迟、高性能的流处理

    ü  支持带有事件时间的窗口(Window)操作

    ü  支持有状态计算的Exactly-once语义

    ü  支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作

    ü  支持具有Backpressure功能的持续流模型

    ü  支持基于轻量级分布式快照(Snapshot)实现的容错

    ü  一个运行时同时支持Batch on Streaming处理和Streaming处理

    ü  Flink在JVM内部实现了自己的内存管理

    ü  支持迭代计算

    ü  支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存

  • API支持  

    ü  对Streaming数据类应用,提供DataStream API

    ü  对批处理类应用,提供DataSet API(支持Java/Scala)

  • Libraries支持

    ü  支持机器学习(FlinkML)

    ü  支持图分析(Gelly)

    ü  支持关系数据处理(Table)

    ü  支持复杂事件处理(CEP)

  • 整合支持

    ü  支持Flink on YARN

    ü  支持HDFS

    ü  支持来自Kafka的输入数据

    ü  支持Apache HBase

    ü  支持Hadoop程序

    ü  支持Tachyon

    ü  支持ElasticSearch

    ü  支持RabbitMQ

    ü  支持Apache Storm

    ü  支持S3

    ü  支持XtreemFS

Flink组件及特性的更多相关文章

  1. 从flink-example分析flink组件(3)WordCount 流式实战及源码分析

    前面介绍了批量处理的WorkCount是如何执行的 <从flink-example分析flink组件(1)WordCount batch实战及源码分析> <从flink-exampl ...

  2. 从flink-example分析flink组件(1)WordCount batch实战及源码分析

    上一章<windows下flink示例程序的执行> 简单介绍了一下flink在windows下如何通过flink-webui运行已经打包完成的示例程序(jar),那么我们为什么要使用fli ...

  3. 【分布式架构】--- 基于Redis组件的特性,实现一个分布式限流

    分布式---基于Redis进行接口IP限流 场景 为了防止我们的接口被人恶意访问,比如有人通过JMeter工具频繁访问我们的接口,导致接口响应变慢甚至崩溃,所以我们需要对一些特定的接口进行IP限流,即 ...

  4. Flink 剖析

    1.概述 在如今数据爆炸的时代,企业的数据量与日俱增,大数据产品层出不穷.今天给大家分享一款产品—— Apache Flink,目前,已是 Apache 顶级项目之一.那么,接下来,笔者为大家介绍Fl ...

  5. Apache Flink

    Flink 剖析 1.概述 在如今数据爆炸的时代,企业的数据量与日俱增,大数据产品层出不穷.今天给大家分享一款产品—— Apache Flink,目前,已是 Apache 顶级项目之一.那么,接下来, ...

  6. Flink架构、原理与部署测试

    Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能. 现有的开源计算方案,会把流处理和批处理作为 ...

  7. Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)

    本文由  网易云发布. 1.Flink架构及特性分析 Flink是个相当早的项目,开始于2008年,但只在最近才得到注意.Flink是原生的流处理系统,提供high level的API.Flink也提 ...

  8. Flink知识点

    1. Flink.Storm.Sparkstreaming对比 Storm只支持流处理任务,数据是一条一条的源源不断地处理,而MapReduce.spark只支持批处理任务,spark-streami ...

  9. Flink架构、原理与部署测试(转)

    Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能. 现有的开源计算方案,会把流处理和批处理作为 ...

随机推荐

  1. 安装Python包报错——ReadTimeoutError

    一.问题:安装python包的时候报错ReadTimeoutError——Read time out. 二.解决办法三种方法,一是切换下载源:二是下载相应平台的安装包后安装:三是下载源码编译安装:  ...

  2. 一、core 启动设置文件中的错误(启动文件不存在)

    一.启动文件不存在 查看 别人的 原因是

  3. tomcat+redis接上篇

    数据库允许远程连接 把数据库中的mysql数据库中的user表里的host项为localhost的改为 % update user set host = '%' where user = 'root' ...

  4. Hive的架构(二)

    02 Hive的架构 1.Hive的架构图 2.Hive的服务(角色) 1.用户访问接口 ​ CLI(Command Line Interface):用户可以使用Hive自带的命令行接口执行Hive ...

  5. Codeforces 985 最短水桶分配 沙堆构造 贪心单调对列

    A B /* Huyyt */ #include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define mkp(a, ...

  6. java 集合之ArrayList、Vector、LinkedList、CopyOnWriteArrayList

    ArrayList 线程不安全. 底层Object[]数组实现,用transient关键字修饰,防止序列化,然后重写了readObject和writeObject方法,为了提高传输效率. 插入时会判断 ...

  7. webpack多页应用

    本文主要讲了webpack怎么搭建多页应用,熟悉下webpack的基本用法. 新建文件夹,目录结构如下: 然后 cd webpack-test npm init(根目录下创建了一个pakage.jso ...

  8. java课堂测试2(两种方式)

    实验源代码 这是不使用数组形式的源代码 /* 2017/10/10 王翌淞 课堂测试2 */import java.util.Scanner; public class Number { public ...

  9. CF1242C. Sum Balance

    题目描述 k组数,每组ni个,数互不相同 把每组数中的一个移到其他组(或者不移动),使得最终每组数的个数不变且总和相等 k<=15,ni<=5000 题解 最终的移动关系一定为若干个环 枚 ...

  10. 阿里云ECS服务器socket无法连接的问题

    把自己的项目部署到阿里云ecs服务器之后,只有127.0.0.1才能连接到服务器端,检查了阿里云安全组规则,以及socket绑定的地址无误后,发现没有开启服务器防火墙的对应端口. firewall-c ...