自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 状态编程和容错机制(一)

状态编程和容错机制(一)我们知道Flink是一个流式计算引擎,也就是数据上来一条处理一条。那Flink是怎样完成窗口计算的呢?比如:我要取5秒钟之内传感器温度最大值。如果只是来一条数据处理一条这显然无法完成上述需求。如果能够将当前的最大值保存起来,下一条数据来到后与保存的最大值作比较,更新最大值并保存再与下一条数据比较,这样就可以完成上述需求了。这个保存起来的最大值就是状态。容错机制是所有的分布式程序都需要有的一种处理错误的机制。比如:任务跑着跑着突然…服务器冗机了,当服务器启动之后怎样才能让任务接着冗

2020-08-07 11:24:41 390

原创 Table API和SQL

Table API和SQL前面我们介绍过,Flink的API是分层的,而Table API与SQL就位于最顶层。也就是说Table API和SQL是Flink中封装程度最高的API。由于Flink 自从 0.9 版本开始支持 Table & SQL 功能一直处于完善开发中,且在不断进行迭代。所以我们可以看到Flink官网有这样一段话:Please note that the Table API and SQL are not yet feature complete and are bein

2020-07-30 16:54:19 374

原创 状态编程和容错机制(二)

状态编程和容错机制(二)在上一篇博客中我们了解的Flink的状态编程概念和三种状态(算子状态、广播状态、键控状态)。我们知道Flink中的状态其实是一种中间值存储技术。那么当系统故障之后状态值该怎么取呢?这就要用到状态一致性机制。状态一致性为了解决系统故障之后我们无法确定数据准确性的问题,我们引入了状态一致性的概念。状态一致性可以分为三种级别,分别是:at-most-once:位于这个级别的系统其实是没有一致性保证的。也就是说故障恢复后是会出现数据丢失的。at-least-once:位于这个级

2020-07-29 16:16:27 253 1

原创 ProcessFunction API

ProcessFunction APIProcessFunction API其实是Flink底层的(low-level)API。StreamData除了为我们提供了我们之前介绍过的高层转换算子还为我们提供了底层转换算子。与高层转换算子不同,通过这些底层转换算子我问可以访问数据的时间戳、watermark以及注册定时事件等等。Flink为我们提供了8中process function:ProcessFunctionKeyedProcessFunctionCoProcessFunctionPro

2020-07-23 19:51:09 206

原创 时间语义与WaterMark

时间语义与WaterMark在上一篇博客中我们提到一个问题就是当我们开启了一个滚动窗口或者滑动窗口,但是数据迟到了,怎么处理?童鞋们会问了:“到底什么情况下数据才叫迟到呢?”这就要从Flink的时间语义来解释了。Flink的时间语义Flink为一条数据从产生到处理输出整个过程定义了三个比较特殊的时间点分别是EventTime、IngestionTime、WindowProcessingTime。Event Time:数据的产生时间。Ingestion Time:数据进入Flink的时间Win

2020-07-23 15:22:48 308

原创 Flink中的Window

Flink中的Window在上一篇博客中我们提到了一个需求:每隔1秒计算一次5秒内的温度传感器的最大值。这用前面介绍的知识似乎很难解决。但是,学习了Window之后,分分钟解决它。那么,现在我们来一起认识一下Window吧。Windowwindow就是窗户,但是我认为叫它水龙头更合适一些。这是由它的作用决定的。Flink DataStream认为所有的数据都是流式的,我们可以把数据想象成水流,而window的功能就是截取一段水流放入桶“buckets”中。概括来说Window就是一种将无限数据切分成

2020-07-21 20:02:35 155

原创 DataStream API(四)

DataStream API(四)今天我们来聊聊Flink中的Sink操作。Sink了解Spark的童鞋应该都知道Spark的输出是迭代进行的。可是Flink好像没有类似于Spark中的foreach的方法。怎么办呢?虽然Flink并没有和Spark类似的forEach方法,让用户进行迭代操作。但是Flink为对外的输出操作提供了Sink API。所有的Sink操作最后都是通过以下方式完成的stream.addSink(new MySink(xxxx))其中MySink类继承自RichSinkF

2020-07-20 16:39:53 137

原创 DataStream API(三)

DataStream API(三)今天我们来认识一下Flink中的UDF(自定义)函数。函数类(Function Classes)Flink暴露了所有的udf函数的接口(实现方式为接口或者抽象类)。例如:MapFunction,FilterFunction,ProcessFunction等等。下面例子实现了FlatMapFunction接口:DataStream<SensorBean> dataStream = inputStream.flatMap(new Splitter())

2020-07-19 14:31:26 114

原创 DataStream API(二)

DataStream API(二)书接上回,在上一篇DataStream API介绍中我们了解到Flink程序一般由五部分组成。分别是:获得执行环境(Environment),加载/创建初始数据(Source),指定此数据的转换(Transform),指定计算结果的存放位置(Sink),触发程序执行(Execut)Environment和Source已经介绍过了,接下来我们来了解一下Transform以及Flink支持的数据类型。话不多说,Let`s go!TransformmapD

2020-07-17 19:14:47 254

原创 DataStream API(一)

DataStream API(一)在了解DataStream API之前我们先来了解一下Flink API的构成。Flink API是分层的。由最底层的Stateful Stream Process到最顶层的SQL分为四层。如下图:DataStream API 顾名思义,就是DataStream类的API,DataStream表示Flink程序中的流式数据集合。它是一个包含重复项的***不可变***数据集合,这些数据可以是有界的也可以是无界的,处理他们的API是相同的。DataStream是不可变的

2020-07-16 17:04:01 303

原创 Apache Flink介绍

Apache Flink介绍俗话说知子莫若父,要想了解一门技术就要看官方的介绍。Flink官网对Flink的介绍是这样的:Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environment

2020-07-13 21:10:37 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除