Flink学习(一)

1、简介

flink是一个框架和分布式处理引擎,用于对有界流和无界流进行状态计算。

1.1 有界数据集和无界数据集

有界数据: 常规数据访问一般是从数据库,文本等数据存储介质中获取数据进行计算,分析,处理。此类数据的特点是数据是静止不动的,有或者说在处理的当时时刻不考虑数据追加,写入操作。有界数据集有定义的开始和结束,可以在计算之前提取某时刻内的数据做有界数据计算
所有说有界数据集,对某段时间的数据进行计算,这种计算称之为批处理(batch processing)。
无界数据集:某些特定场景,例kafka的持续计算等被认定为无界数据集,无界数据集是会发生持续变化,连续追加的。例:实时日志,订单变化,网络传输流等。有起点,没有定义的终点,不会终止并且在处理数据是持续产生新的数据,处理无限制的数据通常要求以特定顺序(例如事件发生的顺序)提取事件,以便能够推断出结果的完整性,对于此类数据的计算方式称之为流计算(stream processing)
在这里插入图片描述
有界数据集与无界数据集是一个相对模糊的概念,如果数据一条一条的经过处理引擎那么则可以认为是无界的,那么如果每间隔一分钟、一小时、一天进行一次计算那么则认为这一段时间的数据又相对是有界的。有界的数据又可以把数据一条一条的通过计算引擎,造成无界的数据集。

1.2 实时流和记录流

实时流和记录流:所有数据均作为流生成。有两种处理数据的方法。在生成流时对其进行实时处理,或将流持久化到存储系统(例如文件系统或对象存储)中,并在以后进行处理。Flink应用程序支持处理记录的流或实时流。

1.3 批处理和流处理的框架

能实现批处理和流处理的框架有:apache Flinkapache spark 。其中spark的流处理场景原理是一个微批处理场景,就是它在特定的时间间隔发起一次计算,而不是每条都会触发计算,是把无界数据集分成为无数小量的有界数据集。
Flink 基于有界数据集与无界数据集的特点,最终将批处理与流处理混合到同一套引擎当中,用户使用Apache Flink引擎能够同时实现批处理与流处理任务。

2、flink技术特点

2.1 流处理特点

支持高吞吐,低延迟,高性能的流处理
支持带有事件事件的窗口(window)操作
支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作
支持具有Backpressure功能的持续流模型
支持基于轻量级分布式快照(Snapshot)实现的容错
一个运行时同时支持Batch on Streaming处理和Streaming处理
Flink在JVM内部实现了自己的内存管理
支持迭代计算
支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存

2.2 API支持

流处理: DataStream API
批处理:DataSet API

2.3 Libraries支持

支持机器学习(FlinkML)
支持图分析(Gelly)
支持关系数据处理(Table)
支持复杂事件处理(CEP)

2.4 整合支持

支持 Flink on yarn
支持HDKS
支持来自kafka的输入数据
支持ElasticSearch
支持RabbitMQ
支持hadoop程序
。。。。

2.5 Flink生态圈

支持scala 和java api。

2.6 Flink的编程模型

Flink提供不同级别的抽象来开发流/批处理应用程序。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值