随笔分类 - flink
摘要:flink对接kafka,官方模式方式是自动维护偏移量 但并没有考虑到flink消费kafka过程中,如果出现进程中断后的事情! 如果此时,进程中段: 1:数据可能丢失 但并没有考虑到flink消费kafka过程中,如果出现进程中断后的事情! 如果此时,进程中段: 1:数据可能丢失 1:数据可能丢失
阅读全文
摘要:A Table可以转换成a DataStream或DataSet。通过这种方式,可以在Table API或SQL查询的结果上运行自定义的DataStream或DataSet程序 将表转换为DataStream 有两种模式可以将 Table转换为DataStream: 1:Append Mode 将一
阅读全文
摘要:将DataStream或DataSet转换为表格 在上面的例子讲解中,直接使用的是:registerTableSource注册表 对于flink来说,还有更灵活的方式:比如直接注册DataStream或者DataSet转换为一张表。 然后DataStream或者DataSet就相当于表,这样可以继续
阅读全文
摘要:Table API和SQL捆绑在flink-table Maven工件中。必须将以下依赖项添加到你的项目才能使用Table API和SQL: 另外,你需要为Flink的Scala批处理或流式API添加依赖项。对于批量查询,您需要添加: Table API和SQL程序的结构 Flink的批处理和流处理
阅读全文
摘要:checkpoint介绍 checkpoint机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保 证应用流图状态的一致性。Flink的checkpoint机制原理来自“Chandy-Lamport
阅读全文
摘要:基于mysql的source操作 基于mysql的sink操作
阅读全文
摘要:package com.flink.DataStream import java.util.Properties import org.apache.flink.api.common.serialization.SimpleStringSchema import org.apache.flink.streaming.api.scala.{DataStream, StreamExecution...
阅读全文
摘要:flink在流处理上的source和在批处理上的source基本一致。大致有4大类 1.基于本地集合的source(Collection-based-source) 2.基于文件的source(File-based-source) 3.基于网络套接字的source(Socket-based-sour
阅读全文
摘要:Split就是将一个DataStream分成两个或者多个DataStream Select就是获取分流后对应的数据
阅读全文
摘要:用来将两个dataStream组装成一个ConnectedStreams而且这个connectedStream的组成结构就是保留原有的dataStream的结构体;这样我们就可以把不同的数据组装成同一个结构 val env = StreamExecutionEnvironment.getExecutionEnvironment env.setParallelism(1) val src: Dat...
阅读全文
摘要:和window的操作类似,只不过操作更加灵活,具体的操作需要在匿名内部类的方法中实现;当有比较复杂的需求时候,可以使用; 注意,例子中使用的是window,所以对应的匿名内部类是:WindowFunction 如果使用的是windowAll,则需要使用的内部类是:AllWindowFunction
阅读全文
摘要:EventTime 1.要求消息本身就应该携带 EventTime 2.时间对应关系如下 需求: EventTime 3 数据: 1527911155000,boos1,pc1,100.0 1527911156000,boos2,pc1,200.0 1527911157000,boos1,pc1,3
阅读全文
摘要:在讲解windows的众多操作之前,需要讲解一个概念: 源源不断的数据流是无法进行统计工作的,因为数据流没有边界,就无法统计到底有多少数据经过了这个流。也无法统计数据流中的最大值,最小值,平均值,累加值等信息。 如果在数据流上,截取固定大小的一部分,这部分是可以进行统计的。 截取方式主要有两种, 关
阅读全文
摘要:逻辑上将一个流分成不相交的分区,每个分区包含相同键的元素。在内部,这是通过散列分区来实现的
阅读全文
摘要:Flink提供了一个类似于Hadoop的分布式缓存,让并行运行实例的函数可以在本地访问。这个功能可以被使用来分享外部静态的数据,例如:机器学习的逻辑回归模型等! 缓存的使用流程: 使用ExecutionEnvironment实例对本地的或者远程的文件(例如:HDFS上的文件),为缓存文件指定一个名字
阅读全文
摘要:Flink支持广播变量,就是将数据广播到具体的taskmanager上,数据存储在内存中,这样可以减缓大量的shuffle操作; 比如在数据join阶段,不可避免的就是大量的shuffle操作,我们可以把其中一个dataSet广播出去,一直加载到taskManager的内存中,可以直接在内存中拿数据
阅读全文
摘要:本地执行 LocalEnvironment是Flink程序本地执行的句柄。用它在本地JVM中运行程序 - 独立运行或嵌入其他程序中。 本地环境通过该方法实例化ExecutionEnvironment.createLocalEnvironment()。默认情况下,它将使用尽可能多的本地线程执行,因为您
阅读全文
摘要:flink在批处理中常见的sink 基于本地集合的sink(Collection-based-sink) //1.定义环境 val env = ExecutionEnvironment.getExecutionEnvironment //2.定义数据 stu(age,name,height) val
阅读全文
摘要:flink在批处理中常见的source flink在批处理中常见的source主要有两大类。 在flink最常见的创建DataSet方式有三种。 基于本地集合的 import org.apache.flink.api.scala.{DataSet, ExecutionEnvironment, _}
阅读全文
摘要:partitionByHash Range-Partition sortPartition 根据指定的字段值进行分区的排序;
阅读全文