
flink学习笔记
flink学习笔记
cuit_618
不积跬步无以至千里
展开
-
flink实战(二)flink API方式关联hbase维度数据处理
概述接上一篇flink-sql关联hbase维度数据处理。这次我们使用API的方式来实现。并解决上次提到的问题:订单支付成功后,可以退款,退款完成后订单状态会变成失效,那么统计结果中不应该包含退款成功后相关数据,这次的代码是在上一篇总结的基础上进行的改造,因此只给出了新增的代码逻辑。实现代码//main方法 //3.2 直接入库Hbase库的维度数据和需要进行实时计算的数据这里分别写了一个,因为还是有些不同的 //3.2.1 维度数据的处理 JobDe原创 2020-07-04 12:09:12 · 1550 阅读 · 0 评论 -
flink实战(一) flink-sql关联hbase维度数据处理
概述最近项目中用到flink进行实时计算,流程为从kafka读取数据,如果是维度数据,则插入到hbase中,如果是需要实时计算的数据,则进行实时计算,并将计算结果保存到MySQL中。在实时计算过程中,可能会用到hbase中的维度数据,为了开发的效率,使用flink-sql的方式实现。flink-sql是在flink流式计算的基础上进行了高度抽象,使开发过程更简单,更有效率,但要理解sql执行背后的原理还是需要仔细学习flink流式计算的相关内容。本文主要以flink-sql实现相关功能。假设需求如原创 2020-07-04 11:54:14 · 5312 阅读 · 6 评论 -
flink学习笔记5-flink状态和检查点
flink状态要实现有且只有一次或者至少一次处理语义,需要保存相关的中间状态数据,在故障恢复时进行还原故障前系统的运行状态。在flink中,定义了操作状态和分组状态两种状态,且定义了检查点机制来定时触发检查点,触发检查点会将flink状态保存到statebackends中,所谓statebackends就是定义触发检查点后,将状态数据保存到哪里,默认是保存到jobmanager的内存中。状态分类操作状态(operator state):只能运行在非keyedstream流中,如kafka作为sour原创 2020-06-06 16:06:11 · 1517 阅读 · 0 评论 -
flink学习笔记4-flink架构,任务、子任务划分
flink架构Job Managers(master):作业管理器,负责任务安排、协调检查点、协调故障恢复等Task Managers(worker):任务管理器,接收master的任务调度,并在本地执行相关任务在worker节点上,会启动一个TaskManagersRunner的进程,来接收master的任务调度一个worker包含至少一个任务槽,每个任务槽表示worker内存资源的固定子集。例如,具有三个槽的worker会将其托管内存的1/3专用于每个槽。分配资源意味着子任务不会与其他作业原创 2020-06-06 15:52:52 · 2803 阅读 · 1 评论 -
flink学习笔记3-flink窗口
flink窗口概述将无界数据流划分成一个个的有界流,并在有界流中进行计算flink时间分类处理时间Processing time:当前算子获取到流中数据的时间戳,事件时间Event time: 最原始数据中自身携带的时间,如从数据库读取数据,而数据库表中有一个字段为updatetime,那么这个字段就可以作为事件时间获取时间Ingestion time: flink从source中获取数据的时间戳flink设置时间特征(全局设置)时间特征的默认值为处理时间env.setStreamTi原创 2020-06-06 15:45:32 · 601 阅读 · 1 评论 -
flink学习笔记2-flink操作算子介绍
操作算子:将一个或多个DataStream转换为新的DataStream的程序单元就叫操作算子。 程序可以将多种转换组合成复杂的数据流拓扑。基础算子1. Map算子DataStream → DataStream,从源流中获取一个数据,经过转换输出一个数据到目标流中 即输入一个元素 输出一个元素public class Test { /** * Map: DataStream → DataStream */ public static void Map() thr原创 2020-06-06 15:35:41 · 917 阅读 · 0 评论 -
flink学习笔记1-flink概述,kafka数据源以及MySQL作为程序输出
概述flink官网的第一个程序:计算单词出现的次数public class WindowWordCount { public static void main(String[] args) throws Exception { //创建flink流执行的环境,获取环境对象 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();原创 2020-06-06 15:17:38 · 1100 阅读 · 0 评论