大数据流式处理框架Flink介绍
1、Flink的介绍
随着数据的飞速发展,出现了很多热门的开源社区,比如:hadoop、spark、storm社区,他们都有各自专注的适用场景,比如hadoop主要是做数据的存储及批处理计算,spark既可以做批处理也可以做准实时计算,同时也支持机器学习和图计算,storm主要专注于实时计算。
在国外一些开源社区将flink分为四代:
hadoop:
主要是做批处理的,分为Map阶段和reduce阶段,如果业务非常复杂,会有多个map阶段和reduce阶段,因为两个阶段都有输入和输出,所以需要根据业务进行拆分阶段,同时mr的计算依赖的是io,所以性能比较低
使用DAG(Tez)+MR
通过引入DAG框架,将多个mr阶段串联到一起去执行,类似于我们之前学习的Oozie框架,因为使用的是第三方的DAG框架,相对于第一代来说,性能有了提高
Spark
spark可以做批计算、流计算、以及sql支持
spark自带了DAG,同时是基于内存的迭代计算,因此性能有了非常大的提高
问题?
为什么在企业中很多公司依然使用Mr进行离线计算?
主要是Mr的稳定性要远远的大于Spark,因为Mr是基于io的计算,基于io的计算相对来说稳定性比较高,虽然计算的比较慢
因为使用spark经常会出现oom(内存溢出),如果内存溢出任务执行失败
Flink
flink可以做批处理、流处理、sql支持
自带了DAG
flink相对于sparkstreaming来说,实时性更加准确,比较高,sparkstreaming本质上还是批处理,通过采用采样时间,每隔一定时间采样一次数据,本质上并没有达到非常高的实时要求
2、什么是FLink
flink可以做实时计算,也可以进行离线计算,同时支持sql语句
自带DAG引擎
flink也可以做机器学习、图计算、复杂事件处理(FlinkCEP)
Apache Flink® — Stateful Computations over Data Streams
即数据流上的有状态的计算。(在数据流上可以进行有状态的计算),数据流也就是流计算,即实时计算
有状态:每个算子的计算结果都是可以进行存储的,假如某个算子发生计算失败,可以将上次保存成功的state数据恢复过来,继续计算即可,不需要重新回溯到数据源端
Data Streams ,Flink认为
有界数据集
是无界数据流
的一种特例,所以说有界数据集也是一种数据流,事件流也是一种数据流。Everything is streams
,即Flink可以用来处理任何的数据,可以支持批处理、流处理、AI、MachineLearning等等。Stateful Computations,即
有状态计算
。有状态计算是最近几年来越来越被用户需求的一个功能。比如说一个网站一天内访问UV数,那么这个UV数便为状态
。Flink提供了内置的对状态的一致性的处理,即如果任务发生了Failover,其状态不会丢失、不会被多算少算,同时提供了非常高的性能。
无界流
:意思很明显,只有开始没有结束。必须连续的处理无界流数据,也即是在事件注入之后立即要对其进行处理。不能等待数据到达了再去全部处理,因为数据是无界的并且永远不会结束数据注入。处理无界流数据往往要求事件注入的时候有一定的顺序性,例如可以以事件产生的顺序注入,这样会使得处理结果完整。
有界流
:也即是有明确的开始和结束的定义。有界流可以等待数据全部注入完成了再开始处理。注入的顺序不是必须的了,因为对于一个静态的数据集,我们是可以对其进行排序的。有界流的处理也可以称为批处理
。
其它特点:
性能优秀(尤其在流计算领域)
高可扩展性
支持容错
纯内存式
的计算引擎,做了内存管理方面的大量优化支持
eventtime
的处理支持超大状态的Job(在阿里巴巴中作业的state大小超过TB的是非常常见的)
支持
exactly-once
的处理。
框架比较
框架选型:hadoop、spark、flink
首先,我们可以通过下面的性能测试初步了解两个框架的性能区别,它们都可以基于内存计算框架进行实时计算,所以都拥有非常好的计算性能。经过测试,Flink计算性能上略好。
测试环境:
1.CPU:7000个; 2.内存:单机128GB; 3.版本:Hadoop 2.3.0,Spark 1.4,Flink 0.9 4.数据:800MB,8GB,8TB; 5.算法:K-means:以空间中K个点为中心进行聚类,对最靠近它们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。 6.迭代:K=10,3组数据
spark和flink都是部署在hadoop的yarn环境上, 经过测试可以发现,flink的性能大于spark和hadoop的,主要原因是flink是基于内存的计算,flink是具有增量迭代的特性,同时具有对迭代自动优化的功能
3、Flink发展历史
2008年,Flink 的前身已经是柏林理工大学一个研究性项目,原名 StratoSphere
。
2014年,Flink被Apache孵化器
所接受然后迅速地成为了 ASF(Apache Software Foundation)
的顶级项目之一。
最新版本已经到了1.15.0
4、Flink在阿里巴巴的应用
大数据流式处理框架Flink介绍相关推荐
- Wormhole大数据流式处理平台五大功能
导读:在上一篇文章「Wormhole 大数据流式处理平台之设计思想」中,我们介绍了Wormhole的设计思想,并给出了Stream.UMS.Flow.Namespace等相关概念的具体定义,从文章中我 ...
- 《大数据》2015年第3期“研究”——大数据流式计算:应用特征和技术挑战
大数据流式计算:应用特征和技术挑战 孙大为 (中国地质大学信息工程学院 北京 100083) 摘要:在大数据时代,数据的时效性日益突出,数据的流式特征更加明显,越来越多的应用场景需要部署在流式计算平台 ...
- 大数据流式计算:关键技术及系统实例
大数据流式计算:关键技术及系统实例 孙大为1, 张广艳1,2, 郑纬民1 摘要:大数据计算主要有批量计算和流式计算两种形态,目前,关于大数据批量计算系统的研究和讨论相对充分,而如何构建低延迟. ...
- JStorm—实时流式计算框架入门介绍
JStorm介绍 JStorm是参考storm基于Java语言重写的实时流式计算系统框架,做了很多改进.如解决了之前的Storm nimbus节点的单点问题. JStorm类似于Hadoop ...
- 响应式编程框架ReactiveCocoa介绍与入门
ReactiveCocoa是Github团队开发的第三方函数式响应式编程框架,在目前市面上的很多iOS App都大量使用了这个框架.以下我简称这个框架为RAC.我下面会通过几篇博客来和大家一起学习这个 ...
- 像Labview一样,使用C#构建测量数据流式处理框架
1. C# DataFlow介绍 介绍部分参考博客:TPL DataFlow初探(一) 侵权请联系删除 官方解释: TPL(任务并行库) 数据流库向具有高吞吐量和低滞后时间的占用大量 CPU 和 I/ ...
- 数据湖:流计算处理框架Flink概述
系列专题:数据湖系列文章 大数据计算引擎分为离线计算和实时计算,离线计算就是我们通常说的批计算,代表是Hadoop MapReduce.Hive等大数据技术.实时计算也被称作流计算,代表是Storm. ...
- 《从0到1学习Flink》—— Apache Flink 介绍
前言 Flink 是一种流式计算框架,为什么我会接触到 Flink 呢?因为我目前在负责的是监控平台的告警部分,负责采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topi ...
- 响应式编程框架ReactiveCocoa学习——框架概览
这篇博客将会继续翻译RAC的官方文档Framework Overview. 主要是对RAC这和框架进行概览的介绍和学习.同时也可以参考我前面的两篇翻译<响应式编程框架ReactiveCocoa学 ...
最新文章
- 使用EditPlus打造一个Python IDE
- git push 的符号笔有什么用_Git自救指南(一)——工欲善其事,必先利其器,基本概念概览...
- 查询复旦大学往年的考研成绩
- 玩转mini2440开发板之【在64位WIN7/WIN10系统中安装USB驱动】
- 深度搜索剪枝——数的划分
- 多布局怎么搭建_怎么制作网页?网页制作基本步骤
- session对象的使用
- 联想x3850x6重装系统,ibm x3850 x6安装系统,2015ibm服务器x3850x6
- 安全篇 ━━ ITlearner ASP探针 V1.2
- 一些提高工作效率的黑科技软件
- 基于uart的RS232和RS485总线
- [CGAL]建立一个正四面体
- 三十分钟做一个网页游戏
- 黄蓝专场之 | 小蓝单车生死故事
- 微信小程序中苹果iOS手机显示时间格式NaN不正确的问题
- CSDN KaTeX 公式之等号对齐
- Python三角形的构成
- 编程人生 | 一位半路出家的程序员的“天命”之选
- ZStack实践汇 | 基于ZStack云平台部署FortiGate
- python-django后台获取前端数据进行操作以及响应的方式
热门文章
- 最新语音识别词错误率WER汇总
- (链表)Java 求解环形链表 II
- FCA-FineBI认证考试(2022-09-28)
- Windows中常用文件拷贝工具的评测和对比 1
- 提升语音识别率的技术 强调与唤醒词相符的输入语音数据
- cocos匀速贝塞尔曲线运动
- python 面向对象(五)约束 异常处理 MD5 日志处理
- “expression cannot be used as a function”报错
- 嵌入式系统开发技术(00)
- python 网盘上传_【Python3】基于文叔叔网盘上传与下载的Python脚本