Flink系列之流式
本文仅是自己看书、学习过程中的个人总结,刚接触流式,视野面比较窄,不喜勿喷,欢迎评论交流。
1、为什么是流式?
为什么是流式而不是流式系统这样的词语?流式系统在我的印象中是相对批处理系统而言的,用来处理流数据,实现数据处理功能的一个系统,而流式一词提醒我要以数据产生的方式去看待数据和以及处理过程,即在现实生活中,数据是以流的形式不断产生的,处理的过程应贴近数据产生的方式。
2、流与批
在处理数据时,对数据而言有:无界和有界之分。无界可以理解为不知道数据产生的停止时间,在数学上可以用前闭后开( [ ) )的一个区间表示;有界则可以对应的理解为一个闭区间,即知道数据产生的起、止时间。其实这里的有界和无界也只是一个相对概念,某一时间段数据还在产生,则可以认为是无界的。
在过去进行大规模数据分析时,是以批量的形式收集和分析数据的。什么意思了?就是收集一段时间内的数据或者一定量的数据了拿去分析,统一返回一个结果后,然后处理下一批的数据,每次处理的是有界数据,比如每天都处理前一天的数据,对数据进行分析后应用到各种场景中。在这个过程涉及到了数据的抽取、转换、加载(ETL)了,且该过程中需要人为的干预,才能连续的执行。从之前的描述其实就可以了解到,在批处理中,当我们面临立马得到数据处理结果的场景时,是有点束手无策的。与批处理相对应的是流处理,流处理可以理解是拿到数据后立马处理然后返回一个结果,当然也可以返回一个结果集。目前流处理主要应用在有实时需求的场景中,比如数据的实时监控、天猫的双十一不停刷新成交金额等等。
关于流过程和批过程的区别,在《流式架构》一书中有这样的一段话,比较好理解:
|
将数据比作水,批过程和流过程分别相当于用桶装水后交付给用户以及用水管让水流向用户。可以在水管上加个阀门,关闭水龙头的时候水流被周期性截断。有了水管和阀门,用户就可以选择截断水还是让水继续流--能够同时应对两种交付方式。反之,即使使用桶运水的速度足够快,这种桶(批)的交付也永远不可能是连续的。 |
3、流处理工具简介
那既然以流的方式处理数据更贴合数据的产生本质,那为什么要需要批处理?其实对于这个问题我目前也不是很清楚,据了解,在技术的发展过程,流处理的难度更大,更多原因后期会以专门的一小节补上,借用一句名言对付此刻的自己:存在即合理。哈哈!(换句话说,我就是不懂)
目前用于流处理的工具,我了解的右storm、sparkstreaming、flink,关于三者的区别,大伙都是可以百度得到的。此外,虽然都是用于流处理,sparkstreaming,是用桶装水给用户,Flink则感觉是修水管。
Flink号称是目前唯一实现高并发、高性能、低延时的开源组件,也想解决目前Lambada架构带来的一些维护、开发困难等问题,其具有很多优点也是该系列博客的主角,在这里我就不提了,后面会重点的分析。
最后需要说一点的是,流处理工具功能的实现,其实离不开消息系统的如kafka、MapR Stream所具备的持久性、容错性、生产消费解耦等诸多优点。
Flink系列之流式的更多相关文章
- 「Flink」理解流式处理重要概念
什么是流式处理呢? 这个问题其实我们大部分时候是没有考虑过的,大多数,我们是把流式处理和实时计算放在一起来说的.我们先来了解下,什么是数据流. 数据流(事件流) 数据流是无边界数据集的抽象 我们之前接 ...
- Demo:基于 Flink SQL 构建流式应用
Flink 1.10.0 于近期刚发布,释放了许多令人激动的新特性.尤其是 Flink SQL 模块,发展速度非常快,因此本文特意从实践的角度出发,带领大家一起探索使用 Flink SQL 如何快速构 ...
- 奇点云数据中台技术汇(四)| DataSimba系列之流式计算
你是否有过这样的念头:如果能立刻马上看到我想要的数据,我就能更好地决策? 市场变化越来越快,企业对于数据及时性的需求,也越来越大,另一方面,当下数据容量呈几何倍暴增,数据的价值在其产生之后,也将随 ...
- CSS3系列:流式(弹性)布局(flex布局)
我的新伸缩盒子.http://www.cnblogs.com/leee/p/5533436.html
- 流式计算(三)-Flink Stream 篇一
原创文章,谢绝任何形式转载,否则追究法律责任! 流的世界,有点乱,群雄逐鹿,流实在太多,看完这个马上又冒出一个,也不知哪个才是真正的牛,据说Flink是位重量级选手,能流计算,还能批处理, 和其他伙 ...
- Flink系列之1.10版流式SQL应用
随着Flink 1.10的发布,对SQL的支持也非常强大.Flink 还提供了 MySql, Hive,ES, Kafka等连接器Connector,所以使用起来非常方便. 接下来咱们针对构建流式SQ ...
- Flink系列(0)——准备篇(流处理基础)
Apache Flink is a framework and distributed processing engine for stateful computations over unbound ...
- Flink 另外一个分布式流式和批量数据处理的开源平台
Apache Flink是一个分布式流式和批量数据处理的开源平台. Flink的核心是一个流式数据流动引擎,它为数据流上面的分布式计算提供数据分发.通讯.容错.Flink包括几个使用 Flink引擎创 ...
- 流式处理新秀Flink原理与实践
随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性.吞吐量.容错能力以及使用便 ...
随机推荐
- 【Leetcode_easy】994. Rotting Oranges
problem 994. Rotting Oranges 参考 1. Leetcode_easy_994. Rotting Oranges; 完
- webpack 安装vue(两种代码模式compiler 和runtime)
使用webpack安装vue,import之后,运营项目报错,如下: [Vue warn]: You are using the runtime-only build of Vue where the ...
- vue 服务器Linux部署
1.打包vue项目 执行命令npm run build,然后会生成一个文件夹dist,里面的文件就是打包文件. 2.上传vue的打包文件,放在合适的文件夹下,例如/var/www 3.配置ngin ...
- Configuring and Running Django + Celery in Docker Containers
Configuring and Running Django + Celery in Docker Containers Justyna Ilczuk Oct 25, 2016 0 Commen ...
- 02. xadmin的过滤器queryset()
需求: 每个老师都只能看到自己的课程 # models.py from django.contrib.auth.models import AbstractUser class UserProfile ...
- htm5手机端实现拖动图片
htm5手机端实现拖动图片 <pre> <!doctype html><html><head> <title>Mobile Cookbook ...
- poj3630||hdoj1671(字典树)
题目链接:https://vjudge.net/problem/HDU-1671 题意:给定n个字符串,判断是否存在一些字符串是另一些字符串的前缀. 思路: 套模板,存在前缀可能是两种情况: 当前字符 ...
- js里typeof和instanceof和箭头表达式要注意的地方,以及其他
如果学过类似C#这样的语言,然后定义两个类class Mu{}和class Ku{},那么显然typeof Mu != typeof Ku的,但是在js里则不是这样,对于Mu和Ku的对象进行typeo ...
- Session中清除对象方法比较
转载. https://blog.csdn.net/u014401141/article/details/51816308 Session中清除对象方法比较 http://blog.csdn.ne ...
- docker学习笔记(一)--介绍和基本组成
Docker基本介绍 1.什么是docker docker本身不是容器,是创建容器的工具,是应用容器引擎,将应用程序自动部署到容器的开源引擎. 2.docker的目标特点 简单轻量,快速开发,具备可移 ...