Flink
文章平均质量分 53
flink
Knight_AL
这个作者很懒,什么都没留下…
展开
-
Flink电商指标分析项目(7)_Flink实时数据同步系统开发
binlog日志格式分析测试日志数据{ "emptyCount": 2, "logFileName": "mysql-bin.000002", "dbName": "pyg", "logFileOffset": 250, "eventType": "INSERT", "columnValueList": [ { "columnName": "commodityId", "columnValu.原创 2021-03-18 11:00:44 · 909 阅读 · 0 评论 -
Flink电商指标分析项目(6)_实时数据同步系统介绍
目录实时数据同步系统目标业务同步系统需求分析业务场景`sqoop`解决方案一`logstash`解决方案二`canal`解决方案三![在这里插入图片描述](https://img-blog.csdnimg.cn/2021031017593999.png)Canal数据采集平台MySql安装`binlog`日志介绍开启`binlog`安装CanalCanal介绍Canal原理安装Canal实时数据同步系统目标理解canal数据同步解决方案安装canal实现Flink数据同步系统业务同步系统需求原创 2021-03-17 11:22:08 · 449 阅读 · 1 评论 -
Flink电商指标分析项目(5)_实时频道热点分析业务开发
目录实时频道热点分析业务开发业务介绍业务开发实时频道PV/UV分析业务介绍小时维度PV/UV业务开发天维度PV/UV业务开发小时/天/月维度PV/UV业务开发实时频道用户新鲜度分析业务介绍业务开发模板方法提取公共类实时频道地域分析业务开发业务介绍业务开发实时运营商分析业务开发业务介绍业务开发实时频道浏览器分析业务开发业务介绍业务开发实时频道热点分析业务开发业务介绍频道热点,就是要统计频道被访问(点击)的数量。分析得到以下的数据:频道ID访问数量频道ID1128频道ID2原创 2021-03-16 11:42:25 · 637 阅读 · 0 评论 -
Flink电商指标分析项目(4)_实时数据预处理
实时数据分析业务目标完成点击流日志数据预处理业务开发完成实时频道热点分析业务开发完成实时频道PV/UV分析业务开发完成实时频道用户新鲜度分析业务开发完成实时频道地域分析业务开发业务开发一般流程一般流程先对原始数据进行拓宽预处理将拓宽后的数据转换为要进行分析业务字段按照指定字段进行分组将组内数据划分到窗口中聚合计算将数据落地到hbase`预处理`的过程非常关键,它是业务的源头,如果预处理做得很好,后续业务的开发会变得简单很多点击流日志实时数据预处理业务分析为了方便原创 2021-03-15 14:57:04 · 808 阅读 · 0 评论 -
Flink电商指标分析项目(3)_HBaseUtil工具类开发
目录HBaseUtil工具类API介绍获取表存储数据获取数据批量存储数据批量获取数据删除数据HBaseUtil工具类 前面我们实现了Flink整合Kafka,可以从Kafka中获取数据进行分析,分析之后我们要把结果存入HBase中,为了方便操作,我们先提前编写一个操作HBase的工具类。HBase作为一个数据库,我们肯定要进行数据的增删改查,那么我们就围绕这几个操作进行开发。API介绍先来看下我们要编写的工具类的所有方法,我们先明确了目标,再进行开发。方法名用途参数说明返回值原创 2021-03-14 11:45:26 · 377 阅读 · 0 评论 -
Flink电商指标分析项目(2)_Flink整合kafka开发
目录Flink实时数据分析系统开发搭建【Flink实时数据分析系统】项目环境导入Maven项目依赖创建项目包结构导入实时系统Kafka/Hbase配置获取配置文件API介绍初始化Flink流式计算环境Flink添加checkpoint容错支持Flink整合KafkaFlink读取Kafa数据Kafka消息解析为元组Flink封装点击流消息为样例类封装Kafka消息为Message样例类Flink添加水印支持Flink实时数据分析系统开发前边我们已经开发完毕了上报服务系统, 我们可以通过上报服务系统把电商原创 2021-03-13 13:58:29 · 799 阅读 · 0 评论 -
Flink电商指标分析项目(1)_项目整体工程搭建
目录项目整体工程搭建工程结构上报服务系统开发Spring Boot简介导入Maven依赖创建项目包结构验证Spring Boot工程是否创建成功项目整体工程搭建工程结构本项目采用Maven构建,下面是我们的项目的整体工程架构。总工程为pyg,下面包含我们要开发的5个子模块。IDEA创建工程在指定目录创建父模块pyg,删除总工程的src目录在父模块配置Java版本为1.8<build> <plugins> <plugin>原创 2021-03-12 10:07:32 · 898 阅读 · 0 评论 -
Flink中定时器_获取第二天0点时间戳的问题
val ts = (ctx.timerService().currentProcessingTime() / (1000*60*60*24) + 1) * (1000*60*60*24)比如当前的时间(2020-10-10 17:47)是一个时间戳13位ctx.timerService().currentProcessingTime()获取当前处理的时间除(1000 * 60 * 60 * 24)是变成当前的日期10号(单位是天)加1变成11日乘(1000 * 60 * 60 * 24)又变成变原创 2020-12-07 22:37:42 · 582 阅读 · 0 评论 -
大数据之Flink(11) | 状态变成
TempChangeWarningimport learning.SensorReadingimport org.apache.flink.api.common.functions.{MapFunction, RichFlatMapFunction, RichMapFunction}import org.apache.flink.api.common.state.{ValueState, ValueStateDescriptor}import org.apache.flink.configurati原创 2020-11-20 21:44:04 · 274 阅读 · 0 评论 -
大数据之Flink(10) | 状态后端
MemoryStateBackend内存级的状态后端,会将键控状态作为内存中的对象进行管理,将它们存储在TaskManager的JVM堆上;而将checkpoint存储在JobManager的内存中。env.setStateBackend(new MemoryStateBackend())FsStateBackend将checkpoint存到远程的持久化文件系统(FileSystem)上。而对于本地状态,跟MemoryStateBackend一样,也会存在TaskManager的JVM堆上。en原创 2020-11-19 19:51:57 · 113 阅读 · 0 评论 -
大数据之Flink(9) | 状态管理_代码调用
对于定义state有两种方法ValueState第一种方法class MyProcessor extends KeyedProcessFunction[String,SensorReading,Int]{ lazy val myState:ValueState[Int] = getRuntimeContext.getState(new ValueStateDescriptor[Int]("my-state",classOf[Int])) override def processElement原创 2020-11-18 20:21:34 · 230 阅读 · 0 评论 -
大数据之Flink(8) | 侧输出流(SideOutput)
大部分的DataStream API的算子的输出是单一输出,也就是某种数据类型的流。除了split算子,可以将一条流分成多条流,这些流的数据类型也都相同。process function的side outputs功能可以产生多条流,并且这些流的数据类型可以不一样。一个side output可以定义为OutputTag[X]对象,X是输出流的数据类型。process function可以通过Context对象发射一个事件到一个或者多个side outputs。 需求:温度大于30输出一条流和温度小于30输原创 2020-11-17 16:00:54 · 893 阅读 · 0 评论 -
大数据之Flink(7) | KeyedProcessFunction
需求:检测每一个传感器是否连续上升,在10秒钟内import learning.SensorReadingimport org.apache.flink.api.common.state.{ValueState, ValueStateDescriptor}import org.apache.flink.api.java.tuple.Tupleimport org.apache.flink.streaming.api.functions.KeyedProcessFunctionimport org.原创 2020-11-16 19:38:09 · 316 阅读 · 0 评论 -
大数据之Flink(6) | 时间语义和Wartermark
时间语义和Wartermark一.Flink中的时间语义二.EventTime的引入三.Watermark基本概念Watermark的引入四.EvnetTime在window中的使用滚动窗口(TumblingEventTimeWindows)滑动窗口(SlidingEventTimeWindows)会话窗口(EventTimeSessionWindows)五.总结一.Flink中的时间语义Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的原创 2020-11-15 21:34:14 · 381 阅读 · 0 评论 -
大数据之Flink(5) | Sink
SinkKafkaRedisElasticsearchJDBC 自定义sinkFile教你如何看官网源码Kafka依赖<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-connector-kafka-0.11 --><dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-c原创 2020-11-14 20:04:40 · 249 阅读 · 0 评论 -
大数据之Flink(4) | Source
Source从集合读取数据从文件读取数据从socket中读取数据以kafka消息队列的数据作为来源自定义Source从集合读取数据import org.apache.flink.streaming.api.scala._//输入数据的样例类case class SensorReading(id:String,timestamp:Long,temperature:Double)object SourceTest { def main(args: Array[String]): Unit =原创 2020-11-13 22:26:05 · 159 阅读 · 0 评论 -
大数据之Flink(3) | Flink部署
Standalone模式一.Standalone模式安装提交任务(手动代码或者网页)一.Standalone模式安装解压缩 flink-1.10.0-bin-scala_2.11.tgz,进入conf目录中。1) 修改 flink/conf/flink-conf.yaml 文件:jobmanager.rpc.address: hadoop122)修改 /conf/slaves文件:hadoop13hadoop143)分发给另外两台机子:xsync flink-1.10.04)启原创 2020-11-11 22:08:03 · 179 阅读 · 0 评论 -
大数据之Flink(2) | Flink快速上手(wordcount)
快速上手一.搭建maven工程 Flink-Learningpom文件二.批处理wordcount三.流处理wordcount一.搭建maven工程 Flink-Learningpom文件 <dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11<原创 2020-11-09 20:37:52 · 205 阅读 · 0 评论 -
大数据之Flink(1) | Flink简介
Flink简介原创 2020-11-08 21:25:25 · 292 阅读 · 0 评论 -
Flink_CEP_4步骤
1.首先定义一个匹配的序列模式 2.将pattern应用在数据流上 3.定义一个测输出流标签,用来标明超时事件的测输出流 4.调用select方法,提取匹配事件和超时事件,分别进行处理转换输出自定义超时时间继承PatternTimeoutFunction自定义匹配处理函数PatternSelectFunction //1.定义一个匹配事件序列的模式 val orderPayPattern = Pattern .begin[OrderEvent]("create")...原创 2020-12-04 21:54:17 · 194 阅读 · 0 评论 -
Flink_CEP简介
目录一.什么是CEP二.CEP的特点三.Pattern API四.个体模式+组合模式+模式组个体模式模式序列(也叫组合模式)五.模式的检测六.匹配事件的提取七.超时事件的提取一.什么是CEP二.CEP的特点三.Pattern API四.个体模式+组合模式+模式组个体模式个体模式的条件模式序列(也叫组合模式)五.模式的检测六.匹配事件的提取七.超时事件的提取...原创 2020-10-30 22:36:34 · 580 阅读 · 0 评论 -
Flink-处理乱序数据和迟到数据的总结和解决办法
Flink有三重保证watermark可以设置延迟时间window的allowedLateness方法,可以设置窗口允许处理迟到数据的时间window的sideOutputLateData方法,可以将迟到的数据写入侧输出流我以我之前做的项目进行优化https://blog.csdn.net/qq_46548855/article/details/107170533看看乱序数据(大约最大时间相差50s,那么我设置成1分钟)提醒:尽量不要watermark不要设置成60s,因为10:13.50原创 2020-10-29 18:07:00 · 2340 阅读 · 0 评论 -
Flink:Caused by: java.lang.NumberFormatException: Not a version: 9
Exception in thread "main" org.apache.flink.shaded.guava18.com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NumberFormatException: Not a version: 9 at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(L原创 2020-10-28 22:03:30 · 504 阅读 · 0 评论 -
Flink-flatMapWithState
需求:监控温度传感器的温度值,如果温度值在10秒钟之内(processing time)连续上升,则报警。import org.apache.flink.api.scala._import org.apache.flink.streaming.api.TimeCharacteristicimport org.apache.flink.streaming.api.functions.timestamps.BoundedOutOfOrdernessTimestampExtractorimport or原创 2020-07-05 17:18:52 · 1034 阅读 · 0 评论 -
Flink---键控状态(keyed state)
键控状态是根据输入数据流中定义的键(key)来维护和访问的。Flink 为每个键值维护一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护和处理这个 key 对应的状态。当任务处理一条数据时,它会自动将状态的访问范围限定为当前数据的 key。因此,具有相同 key 的所有数据都会访问相同的状态。Keyed State 很类似于一个分布式的 key-value map 数据结构,只能用于 KeyedStream(keyBy 算子处理之后)。Flink 的 Keyed State原创 2020-07-03 22:51:43 · 2904 阅读 · 0 评论 -
Flink(process-KeyedProcessFunction和flatmap-RichFlatMapFunction)
需求:温度不能相差10 如果超过10就报警下面有两中方法实现 process和flatmapprocess-KeyedProcessFunctionimport org.apache.flink.api.common.state.{ValueState, ValueStateDescriptor}import org.apache.flink.api.scala._import org.apache.flink.streaming.api.TimeCharacteristicimport org原创 2020-07-03 22:46:03 · 1654 阅读 · 0 评论 -
Flink-TimerService 和 定时器(Timers)
Context 和 OnTimerContext 所持有的 TimerService 对象拥有以下方法:currentProcessingTime(): Long 返回当前处理时间currentWatermark(): Long 返回当前 watermark 的时间戳registerProcessingTimeTimer(timestamp: Long): Unit 会注册当前 key 的processing time 的定时器。当 processing time 到达定时时间时,触发 timer。原创 2020-07-03 22:03:08 · 2538 阅读 · 1 评论 -
Flink- KeyedProcessFunction
KeyedProcessFunction 用来操作 KeyedStream。KeyedProcessFunction 会处理流的每一个元素输出为 0 个、1 个或者多个元素。所有的 Process Function 都继承自RichFunction 接口,所以都有 open()、close()和 getRuntimeContext()等方法。KeyedProcessFunction[KEY, IN, OUT]还额外提供了两个方法: processElement(v: IN, ctx: Context, o原创 2020-07-03 21:58:32 · 1490 阅读 · 0 评论 -
Flink-maven(包括打包代码)
我的scala是2.11 flink是1.7.2<dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <version>1.7.2</version>原创 2020-07-03 20:35:13 · 1985 阅读 · 1 评论 -
Flink---侧输出流(SideOutput)
要求:将小于32℃输入到侧输入流,大于32℃输入到主流import org.apache.flink.api.scala._import org.apache.flink.streaming.api.TimeCharacteristicimport org.apache.flink.streaming.api.functions.ProcessFunctionimport org.apache.flink.streaming.api.functions.timestamps.BoundedOutOf原创 2020-07-03 20:14:47 · 1643 阅读 · 0 评论