说明:本文为《Flink大数据项目实战》学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习CSDN官网课程:

Flink大数据项目实战:http://t.cn/ExrHPl9

2014 年 Flink 作为主攻流计算的大数据引擎开始在开源大数据行业内崭露头角。区别于 Storm、Spark Streaming 以及其他流式计算引擎的是:它不仅是一个高吞吐、低延迟的计算引擎,同时还提供很多高级功能。比如它提供有状态的计算,支持状态管理,支持强一致性的数据语义以及支持 Event Time,WaterMark 对消息乱序的处理等。

2015 年是流计算百花齐放的时代,各个流计算框架层出不穷。Storm, JStorm, Heron, Flink, Spark Streaming, Google Dataflow (后来的 Beam) 等等。其中 Flink 的一致性语义和最接近 Dataflow 模型的开源实现,使其成为流计算框架中最耀眼的一颗。也许这也是阿里看中 Flink的原因,并决心投入重金去研究基于 Flink的 Blink框架。

Flink为何受青睐

Flink之所以受到越来越多公司的青睐,肯定有它很多过人之处。

1.支持批处理和数据流程序处理。

2.优雅流畅的支持java和scala api。

3.同时支持高吞吐量和低延迟。

4.支持事件处理和无序处理通过SataStream API,基于DataFlow数据流模型。

5.在不同的时间语义(事件时间,摄取时间、处理时间)下支持灵活的窗口(时间,滑动、翻滚,会话,自定义触发器)。

6.拥有仅处理一次的容错担保,Flink支持刚好处理一次。

7.拥有自动反压机制,当Flink处理数据达到上限的时候,源头会自动减少数据的输入,避免造成Flink应用的崩溃。

8.支持图处理(批)、 机器学习(批)、 复杂事件处理(流)。

9.在dataSet(批处理)API中内置支持迭代程序(BSP)。

10.高效的自定义内存管理和健壮的在in-memory和out-of-core中的切换能力。

11.同时兼容hadoop的mapreduce和storm。

12.能够集成YARN,HDFS,Hbase 和其它hadoop生态系统的组件。

Flink生态与未来

核心组件栈

Flink发展越来越成熟,已经拥有了自己的丰富的核心组件栈,如下图所示。

从上图可以看出Flink的底层是Deploy,Flink可以Local模式运行,启动单个 JVM。Flink也可以Standalone 集群模式运行,同时也支持Flink ON YARN,Flink应用直接提交到YARN上面运行。另外Flink还可以运行在GCE(谷歌云服务)和EC2(亚马逊云服务)。

Deploy的上层是Flink的核心(Core)部分Runtime。在Runtime之上提供了两套核心的API,DataStream API(流处理)和DataSet API(批处理)。在核心API之上又扩展了一些高阶的库和API,比如CEP流处理,Table API和SQL,Flink ML机器学习库,Gelly图计算。SQL既可以跑在DataStream API,又可以跑在DataSet API。

生态

从上图可以看出Flink拥有更大更丰富的生态圈:

中间最底层Deploy模式包含 Local本地模式、Cluster(包含Standalone和YARN)集群模式以及Cloud云服务模式,然后它的上层是Flink runtime运行时,然后它的上层是Flink DataSet批处理和DataStream流处理,然后它的上层又扩展了Hadoop MR、Table、Gelly(图计算)、ML(机器学习)、Zoppelin(可视化工具)等等。

左边为输入Connectors。流处理方式包含Kafka(消息队列),AWS kinesis(实时数据流服务),RabbitMQ(消息队列),NIFI(数据管道),Twitter(API)。批处理方式包含HDFS(分布式文件系统),HBase(分布式列式数据库),Amazon S3(文件系统),MapR FS(文件系统),ALLuxio(基于内存分布式文件系统)。

右边为输出Connectors。流处理方式包含Kafka(消息队列),AWS kinesis(实时数据流服务),RabbitMQ(消息队列),NIFI(数据管道),Cassandra(NOSQL数据库),ElasticSearch(全文检索),HDFS rolling file(滚动文件)。批处理包含HBase(分布式列式数据库),HDFS(分布式文件系统)。

未来

Flink会进行批计算的突破、流处理和批处理无缝切换、界限越来越模糊、甚至混合。

Flink会开发更多语言支持

Flink会逐步完善Machine Learning 算法库,同时 Flink 也会向更成熟的机器学习、深度学习去集成(比如Tensorflow On Flink)。

大数据舞台中的Flink相关推荐

  1. golang 大数据平台_人工智能大数据平台中Golang的应用实践

    原标题:人工智能大数据平台中Golang的应用实践 分享人: 薛磊,Momenta资深研发工程师,前Sun中国工程研究院工程师,专注于分布式系统.存储系统.容器等技术,目前从事深度学习训练平台的基础架 ...

  2. Flink大数据实时计算系列-Flink的Operator Chains的优化机制

    Flink大数据实时计算系列-Flink的Operator Chains的优化机制 目录 Flink改变并行度 并行度改为3 并行度改为2 Flink Operator Chains Flink gr ...

  3. Flink大数据实时计算系列-Flink写出多个parquet小文件处理方法、Presto的介绍与使用场景

    Flink大数据实时计算系列-Flink写出多个parquet小文件处理方法.Presto的介绍与使用场景 Presto的安装与使用 目录 Flink写出多个parquet小文件处理方法 Presto ...

  4. Flink大数据实时计算系列-Flink的processFunction TimerService的基础用法

    Flink大数据实时计算系列-Flink的processFunction TimerService的基础用法 目录 Flink的processFunction TimerService的基础用法 Fl ...

  5. Flink大数据实时计算系列-Flink的Keyed Windows 对比 Non-Keyed Windows的区别

    Flink大数据实时计算系列-Flink的Keyed Windows 对比 Non-Keyed Windows的区别 目录 Flink的Keyed Windows 对比 Non-Keyed Windo ...

  6. Flink大数据实时计算系列-Flink的Sliding Windows使用

    Flink大数据实时计算系列-Flink的Sliding Windows使用 目录 Flink的Sliding Windows使用 Flink参考链接 Flink系列博客 Flink的Sliding ...

  7. Flink大数据实时计算系列-Flink窗口如何处理延时数据

    Flink大数据实时计算系列-Flink窗口如何处理延时数据 目录 Flink窗口如何处理延时数据 allowedLateness延迟触发 sideOutputLateData 延时分流器 Flink ...

  8. Flink大数据实时计算系列-Flink Exactly Once及Flink的状态存储State Backend

    Flink大数据实时计算系列-Flink Exactly Once及Flink的状态存储State Backend 目录 Flink的状态存储State Backend Flink参考链接 Flink ...

  9. Flink大数据实时计算系列-Flink的Operator State与Keyed State的Redistribute

    Flink大数据实时计算系列-Flink的Operator State与Keyed State的Redistribute 目录 Flink的Operator State与Keyed State的Red ...

最新文章

  1. 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(4):Clustering(欧式聚类)
  2. 2020牛客国庆集训派对day2 AKU NEGARAKU
  3. 04 能够使用using和namespace引用和定义命名空间 1214
  4. python unit test_Python Unittest
  5. 时间加密算法_物联网安全:可计算加密算法
  6. 年货节页面PSD分层模板,拿稳了!应急!
  7. Java-虚拟机-常量池的表现方式
  8. 690 - Pipeline Scheduling (DFS + 状态压缩 + 剪枝)
  9. Linux多线程编程详细解析----条件变量 pthread_cond_t
  10. 2022年下半年系统集成项目管理工程师(软考中级)报名条件
  11. Java 实现Gbase数据库增删改查功能2
  12. 杰奇2.4UTF安装教程+关关远程采集
  13. 并联机构逆运动学用MapleSim符号来解决
  14. raft算法 java实现_Raft 算法在分布式存储系统 Curve 中的实践
  15. SCSI硬盘接口是什么
  16. 如何在 Ubuntu 中禁用 motd 欢迎消息
  17. NANDFLASH与PSRAM
  18. 通过计数器完成工厂可视化看板的开发
  19. java 打印jpg、pdf、word
  20. vue-i18n的使用,前端实现中英文切换

热门文章

  1. 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度
  2. 零基础报成都java培训班需要学多久才能就业?
  3. 反爬机制之验证setcookie
  4. kernel网络之软中断
  5. redis配置文件样例(二)
  6. 21年1.9c#halcon机器视觉软件系统框架源码visi onpro
  7. 分布式游戏服务器通用架构的设计
  8. 【模拟电子技术Analog Electronics Technology 5】——晶体三极管基极和集电极电阻有什么作用?
  9. unity进行发布html,unity发布网页版(内嵌网页)
  10. 引用拷贝、对象拷贝、浅拷贝、深拷贝 到底是什么【详细例子介绍】