
Flink实时篇
文章平均质量分 92
flink基础
IT但丁
知道结局是干掉大魔王,那斩龙的剑总会到手的!
展开
-
Flink的执行计划图
文章目录一、执行图二、图演变过程1、StreamGraph2、JobGraph3、ExecutionGraph4、物理执行图一、执行图Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序...原创 2020-03-28 21:40:59 · 3536 阅读 · 0 评论 -
Flink写出数据到Hbase的Sink
文章目录一、MyHbaseSink1、继承RichSinkFunction<输入的数据类型>类2、实现open方法,创建连接对象3、实现invoke方法,批次写入数据到Hbase4、实现close方法,关闭连接二、HBaseUtil工具类一、MyHbaseSink1、继承RichSinkFunction<输入的数据类型>类public class MyHbaseSin...原创 2020-03-18 22:58:52 · 5633 阅读 · 4 评论 -
Flink写出数据到 MySql 控制事务,保证Exactly_Once
文章目录一、MySql Sink二、控制事务代码1、主线代码2、Druid 数据库连接池类一、MySql Sink要想使用TwoPhaseCommitSinkFunction,存储系统必须支持事务Mysql Sink继承TwoPhaseCommitSinkFunction抽象类,分两个阶段提交Sink,保证Exactly_Once:①做checkpoint② 提交事务二、控制事务...原创 2020-03-18 09:09:14 · 2755 阅读 · 6 评论 -
Flink的是如何实现exactly_once的?(CheckPoint详解)
文章目录一、Exactly_Once(写且仅写一次)二、以FlinkKafkaProducer为例解析1、CheckPoint 源码详解1.1、 CheckpointedFunction中有两个方法:1.2、 CheckpointListener中有一个方法:2、一图总结2.1、流程图2.2、步骤一、Exactly_Once(写且仅写一次)目前可以实现exactly_once的不多:sou...原创 2020-03-18 00:00:58 · 1723 阅读 · 0 评论 -
Flink处理数据库中的业务数据——将主表、从表做关联(Left Out Join)
文章目录一、需求1、需求说明2、数据准备二、分析二、技术点三、Join架构四、代码实现1、一、需求1、需求说明在各种各样的系统中,都有订单数据表订单表:订单主表、订单明细表 订单主表: 订单id、订单状态、订单总金额、订单的时间、用户ID 订单明细表: 订单主表的ID、商品ID、商品的分类ID、商品的单价、商品的数量统计某个商品分类的成交金额...原创 2020-03-17 09:03:54 · 5921 阅读 · 6 评论 -
Flink之详解InnerJoin、leftJoin以及窗口延迟时间的问题
文章目录以案例驱动对join的认知一、前提:二、InnerJoin代码以案例驱动对join的认知一、前提:要想两个数据流进行Join,必须对两个流数据划分相同的窗口,在同一个窗口中,进行数据的Join连接。这里使用EventTime,划分滚动窗口二、InnerJoin代码package cn._51doit.day10.join;import org.apache.flink....原创 2020-03-16 11:55:56 · 5535 阅读 · 1 评论 -
Flink之对EventTime的窗口的迟到数据再接收
文章目录二、代码二、代码package cn._51doit.day10;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.java.tuple.Tuple;import org.apache.flink.api.java.tuple.Tuple2;impo...原创 2020-03-15 20:15:27 · 639 阅读 · 0 评论 -
Flink之实时统计指定时间段内热门商品的TopN(双11一小时内的热门品牌排行榜)
文章目录一、需求说明1、以案例驱动理解二、技术点三、代码实现(一) 比较捞1、调用底层的Process(可做类似map的操作),将Json字符串解析成MyBehavior对象2、提取EventTime,转换成Timestamp格式,生成WaterMark3、按照指定时间分组4、把分好组的数据,划分窗口:假设窗口总长10分钟, 步长1分钟滑动一次5、窗口内的数据进行聚合,拿出窗口Star时间和窗口E...原创 2020-03-14 23:20:06 · 4956 阅读 · 2 评论 -
Flink实时数据的预处理-架构-分主题写入Hdfs(文本和Parquet格式)
文章目录一、架构图二、数据及思路三、代码1、LogBean2、主线代码3、将数据转换成json的,并转换成 bean,然后关联地理位置维度4、将数据写入到hdfs代码一、架构图① flume将埋点日志采集到kafka中② 从kafka中拉取数据,完成数据的过滤、维度的关联、主题的拆分③ 再分主题写回至kafka④ 将分好主题的数据存储至HDFS中二、数据及思路2019-02-2...原创 2020-03-13 23:10:19 · 1907 阅读 · 0 评论 -
Flink之多维数据立方体的建立及自定义RedisSink
文章目录一、需求二、代码实现1、主线代码2、ActivityBean3、Constant 自定义的常量4、自定义的RedisSink一、需求有以下数据:用户ID,活动ID,时间,事件类型,省份u001,A1,2019-09-02 10:10:11,1,北京市u001,A1,2019-09-02 14:10:11,1,北京市u001,A1,2019-09-02 14:10:11,2,北京...原创 2020-03-13 21:53:42 · 764 阅读 · 0 评论 -
Flink中BloomFilter(布隆过滤器)和ValueState的结合使用
文章目录一、需求二、分析1、人数2、点击次数3、技术点三、代码实现1、数据的读取,做切割处理2、按照活动ID和事件类型分组3、调用process,自定义ValueState,对数据进行统计一、需求有以下数据:用户ID,活动ID,时间,事件类型,省份u001,A1,2019-09-02 10:10:11,1,北京市u001,A1,2019-09-02 14:10:11,1,北京市u001...原创 2020-03-13 08:34:44 · 8661 阅读 · 8 评论 -
Flink中Broadcast State(广播) 的理解和使用-nclk
文章目录一、Flink中广播Broadcast State1、使用目的2、使用方法二、需求1、需要广播的字典数据2、要关联字典的费广播数据三、代码深入理解1、将广播的流处理,广播到各个subTask中2、拉取非广播的流,将两者connect在一起3、调用底层的process api,将广播流和非广播流实现关联四、注意1、nc命令一、Flink中广播Broadcast State1、使用目的是...原创 2020-03-12 01:02:40 · 1733 阅读 · 0 评论 -
Flink之异步I/O案例(二)异步查询MySQL数据库
文章目录一、需求思考1、通过异步查询Mysql中的以下数据:2、思考二、代码实现1、添加依赖2、主线代码3、异步查询的MySql的Function四、技术点一、需求思考1、通过异步查询Mysql中的以下数据:2、思考Mysql不支持异步查询,那该怎么办呢?创建线程池和数据库连接池,来实现异步的并发查询。这样异步查询中,一个请求就是一个线程,一个请求对应一个连接。二、代码实现1...原创 2020-03-12 00:09:56 · 2619 阅读 · 3 评论 -
Flink之异步I/O案例(一)HttpClient异步查询高德API
文章目录1、异步IO2、代码1、异步IO2、代码原创 2020-03-11 22:49:22 · 2817 阅读 · 1 评论 -
基于Flink和kafka整合,程序异常时自动重启恢复,来实现exactly_once(Redis幂等性)
一、解读基于flink和kafka进行整合,当程序出现异常时自动重启数据恢复。就要做checkPoint,纪录偏移量Operator State,累加的次数计入keyedState,将checkPoint数据计入StateBackEnd1、思考:当做checkPoint时程序挂掉,然后程序自动重启,那距上次ck时,这段时间读的数据,岂不是重复读取重复计算了吗?程序即使数据重读,那...原创 2020-03-06 00:08:35 · 2766 阅读 · 4 评论 -
kafka中auto.offset.reset参数略解
我们在用Flink连接kafka进行实时数据处理的时候,程序中需要配置kafka的一些参数。如下: StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); Properties properties = new Properties();...原创 2020-03-05 13:22:47 · 2426 阅读 · 0 评论