- 博客(590)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 4.1.20 Flink-流处理框架-ProcessFunction API(底层 API)
1.写在前面 我们之前了解过,flink有分层API,最底层级的抽象仅仅提供了有状态流,它将通过过程函数(Process Function) 被嵌入到 DataStream API 中。底层过程函数(Process Function) 与 DataStream API 相集成,使其可以对某些特定的操作进行底层的抽象,它允许用户可以自由地处理来自一个或多个数据流的事件,并使用一致的容错的状态。除此之外,用户可以注册事件时间并处理时间回调,从而使程序可以处理复杂的计算。 ...
2021-03-10 23:29:46
248
原创 4.1.23 Flink-流处理框架-Flink中的状态管理之状态后端
目录1.状态后端是什么?2.状态后端的类型3.配置状态后端3.1 配置文件3.2 代码中针对单独job,设置状态后端1.状态后端是什么? 每传入一条数据,有状态的算子任务都会读取和更新状态,由于有效的状态访问对于处理数据的低延迟至关重要,因此每个并行任务都会在本地维护其状态,以确保快速的状态访问。状态的存储、访问以及维护,由一个可插入的组件决定,这个组件就叫做状态后端(state backend)。 状态后端主要负责两件事:1)本地的状态管理;2)...
2021-03-10 11:58:43
365
原创 4.1.22 Flink-流处理框架-Flink中的状态管理之状态编程-温度跳变报警
1.需求利用 Keyed State,实现这样一个需求:检测传感器的温度值,如果连续的两个温度差值超过 10 度,就输出报警。
2021-03-07 16:52:26
464
1
原创 4.1.21 Flink-流处理框架-Flink中的状态管理之算子状态+键控状态
目录1.写在前面2.有状态的算子和应用程序2.1算子状态(operator state)2.2键控状态(keyed state)1.写在前面 流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件,并根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过 90 度时发出警告。有状态的计算则会基于多个事件输出结果。以下是有状态计算的一些例子。所有类型的窗口。例如,计算过去一小时的平均温度,就是有状态的计算。 所有用于复杂事件处...
2021-03-04 16:48:40
734
1
原创 4.1.19 Flink-流处理框架-Flink中的时间语义和watermark水位线
1.Flink中的时间语义 在 Flink 的流式处理中,会涉及到时间的不同概念,如下图所示:Event Time事件创建时间:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink 通过时间戳分配器访问事件时间戳。绝大部分的业务都会使用 eventTime Ingestion Time进入时间:是数据进入 Flink 的时间。 Processing Time处理时间:是每一个执行基于时间操作的算子的本地系统时间...
2021-03-04 15:24:10
602
1
原创 4.1.18 Flink-流处理框架-Window API之窗口函数window function
目录1.window function-窗口函数2.其他可选API3.代码演示3.1TimeWindow3.2CountWindow3.3EventTimeWindow1.window function-窗口函数 window function 定义了要对窗口中收集的数据做的计算操作,主要可以分为两类:增量聚合函数(incremental aggregation functions) 每条数据到来就进行计算,保持一个简单的状态。典型的增量聚合函数有 ...
2021-03-03 17:08:41
401
1
原创 4.1.17 Flink-流处理框架-Window API之窗口分配器
目录0.写在前面1.TimeWindow-时间窗口1.1滚动时间窗口(Tumbling Windows)1.2滑动时间窗口(SlidingEventTimeWindows)1.3 三个时间窗口总结2.CountWindow-计数窗口2.1滚动窗口2.2滑动窗口2.3 两个计数窗口总结0.写在前面 我们可以用 .window() 来定义一个窗口,然后基于这个 window 去做一些聚 合或者其它处理操作。注意 window () 方法必须在 k...
2021-03-03 15:22:57
227
原创 4.1.16 Flink-流处理框架-Window API之Windows概述
目录1.写在前面2.Window的类型3.时间窗口(TimeWindow)3.1滚动窗口(Tumbling Windows)3.2滑动窗口(Sliding Windows)3.3会话窗口(Session Windows)1.写在前面 streaming 流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限 数据集是指一种不断增长的本质上无限的数据集,而 window 是一种切割无限数据 为有限块进行处理的手段。 Window 是无限数据流处理的核...
2021-03-03 14:06:24
183
原创 4.1.15 Flink-流处理框架-Flink流处理API之sink输出操作
目录1.写在前面2.输出到Kafka(source/sink)3.输出到Redis(sink)4.输出到Elasticsearch(sink)5.JDBC 自定义 sink1.写在前面Flink 没有类似于 spark 中 foreach 方法,让用户进行迭代的操作。所有对外的输出操作都要利用 Sink 完成。最后通过类似如下方式完成整个任务最终输出操作。stream.addSink(new MySink(xxxx))官方提供了一部分的框架的 sink。除此以外,需要用
2021-03-02 16:35:11
616
原创 4.1.13 Flink-流处理框架-Flink流处理API之实现 UDF 函数(更细粒度的控制流)
目录1.函数类(Function Classes) 补充小知识:静态内部类2.匿名函数(Lambda Functions)3.富函数(Rich Functions)1.函数类(Function Classes) Flink 暴露了所有 udf 函数的接口(实现方式为接口或者抽象类)。例如 MapFunction, FilterFunction, ProcessFunction 等等。 下面例子实现了 FilterFunction 接口:...
2021-03-02 10:46:04
401
原创 4.1.12 Flink-流处理框架-Flink流处理API之支持的数据类型总结
目录1.写在前面2.Flink支持的数据类型2.1 基础数据类型2.2Java 和 Scala 元组(Tuples)2.3Scala 样例类(case classes)2.4Java 简单对象(POJOs)2.5其它(Arrays, Lists, Maps, Enums, 等等)1.写在前面 Flink 流应用程序处理的是以数据对象表示的事件流。所以在 Flink 内部,我们 需要能够处理这些对象。它们需要被序列化和反序列化,以便通过网络传送它们; ...
2021-02-22 17:42:33
476
原创 4.1.11 Flink-流处理框架-Flink流处理API之Transform转换算子
1.基本转换算子1.1 mapmap算子属于基本转换算子,来一个数据处理一个。DataStream<Integer> mapStram = dataStream.map(new MapFunction<String, Integer>() { public Integer map(String value) throws Exception { return value.length(); }});1.2 flatMap扁平化算子DataS...
2021-02-21 22:59:56
538
原创 4.1.10 Flink-流处理框架-Flink流处理API之Source数据源
目录1.写在前面2.Source数据源2.1 从集合中读取数据2.2 从文件中读取数据2.3 以kafka消息队列的数据作为数据来源2.4 自定义Source1.写在前面 我们在创建完成环境之后,我们需要读取数据,我们可以从哪些地方读取数据呢?我们区分为集合、文件、kafka消息队列、自定义数据源。2.Source数据源2.1 从集合中读取数据 首先创建一个javaBean,传感器温度读数的数据类型SensorReadingpac...
2021-02-20 23:48:47
492
原创 4.1.9 Flink-流处理框架-Flink流处理API之Environment
目录1.写在前面2.Environment:环境2.1getExecutionEnvironment:得到执行环境2.2createLocalEnvironment:创建本地环境2.3createRemoteEnvironment:创建远程环境1.写在前面 我们主要研究dataStream的api,dataSet与之类似。source用来读取数据源,transform做转换计算,sink阶段主要用来输出计算数据。在这三个步骤之前,我们需要创建flink的执行环...
2021-02-20 22:40:01
674
原创 5.1.13 NoSQL数据库-Redis(键值key-value)-Redis缓存穿透、缓存击穿、缓存雪崩
目录1.写在前面2.缓存穿透(查不到数据)2.1 问题说明2.2 解决方案2.2.1布隆过滤器2.2.2缓存空对象3.缓存击穿(量太大,缓存过期)3.1 问题说明3.2 解决方案3.2.1设置热点数据永不过期3.2.2加互斥锁4.缓存雪崩(缓存集中过期失效+redis宕机)4.1 问题说明4.2 解决方案4.2.1redis高可用4.2.2限流降级(在SpringCloud讲解过!)4.2.3数据预热1.写在前面Red...
2021-01-19 20:38:56
243
原创 5.1.12 NoSQL数据库-Redis(键值key-value)-Redis哨兵模式
目录1.概念2.测试2.1、配置哨兵配置文件 sentinel.conf2.2、启动哨兵3.哨兵模式优缺点分析4.哨兵模式的全部配置1.概念 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工 干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑 哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵) 架构来解决这个问题。 谋朝篡位的自动版,能够后台监控主...
2021-01-19 10:52:00
202
原创 5.1.11 NoSQL数据库-Redis(键值key-value)-Redis主从复制
1.概念主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点 (master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。 Master以写为主,Slave 以读为主。 默认情况下,每台Redis服务器都是主节点; 且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。2.作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余的方式。 故障恢复:当主节点故...
2021-01-18 18:02:42
241
原创 5.1.10 NoSQL数据库-Redis(键值key-value)-Redis实现发布订阅
目录1.写在前面2.订阅/发布消息图3.命令总结4.测试5.原理6.缺点7.应用场景1.写在前面Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。微信、 微博、关注系统! Redis 客户端可以订阅任意数量的频道。2.订阅/发布消息图第一个:消息发送者, 第二个:频道 第三个:消息订阅者!下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5
2021-01-13 14:27:11
218
原创 5.1.9 NoSQL数据库-Redis(键值key-value)-Redis持久化
目录1.写在前面2.RDB(Redis DataBase)2.1 关于RDB2.2 RDB工作原理2.3 触发机制2.3.1save命令2.3.2 触发持久化规则2.3.3bgsave2.4 RDB的优缺点3.AOF(Append Only File)3.1什么是AOF3.2 aof文件错位3.3 AOF文件重写规则3.3AOF的优点& 缺点4.RDB和AOP选择4.1 RDB 和 AOF 对比4.2如何选择使用哪种持久化方式?...
2021-01-11 21:20:28
190
原创 2019年中科院信工所复试经验帖
总述: 今天是4月1日愚人节,距离复试结束已经3天了,很幸运收到了信工所拟录取通知。复试成绩83.74分。因为复试刚刚结束,趁着自己还没忘,想记录一些复试经验,给师弟师妹们考研复试做为参考。我一志愿报的二室,二志愿报的四室,均参加了复试。总流程: 信工所的2019年复试流程如下: 日期 时间 复试安排...
2021-01-11 17:19:31
16492
34
原创 Java8日期处理
目录1.java8之前的时间日期API1.1 java.lang.System类1.2 java.util.Date类1.3 java.text.SimpleDateFormat类1.4 java.util.Calendar 日历类2.java8中的日期处理API2.1Java 8中获取今天的日期2.2Java 8中获取年、月、日信息2.3Java 8中创建任意日期2.4Java 8中判断两个日期是否相等2.5Java 8中检查像生日这种周期性事件2...
2021-01-11 17:14:08
347
原创 5.1.8 NoSQL数据库-Redis(键值key-value)-Redis配置详解
目录1.写在前面2.具体信息2.1 单位2.2 包含2.3 网络2.4通用 GENERAL2.5 快照2.6REPLICATION 主从复制2.7SECURITY 安全2.8 CLIENTS客户端连接相关配置2.9 AOF相关配置3.原配置文件(未修改)1.写在前面 启动的时候,就通过配置文件来启动! 工作中,一些小小的配置,可以让你脱颖而出!行家有没有,出手就知道。自带的文件,先放在下面,待会儿一个个讲解一下。2.具体信息...
2021-01-11 14:17:51
415
原创 5.1.7 NoSQL数据库-Redis(键值key-value)-SpringBoot整合Redis
1.写在前面springboot 2.x后 ,原来使用的 Jedis 被 lettuce 替换。jedis:采用的直连,多个线程操作的话,是不安全的。如果要避免不安全,使用jedis pool连接池!更像BIO模式lettuce:采用netty,实例可以在多个线程中共享,不存在线程不安全的情况!可以减少线程数量,更像NIO模式源码分析:2.导入依赖<dependency> <groupId>org.springframework.b...
2021-01-10 00:42:07
249
原创 5.1.6 NoSQL数据库-Redis(键值key-value)-基础API之Jedis 详解
目录1.写在前面2.redis测试2.1 导依赖2.2 连接测试3.jedis中常用的API3.1 TestKey3.2TestString3.3TestList3.4TestSet3.5TestHash4.jedis操作事务1.写在前面是 Redis 官方推荐的 java连接开发工具! 使用Java 操作Redis 中间件!如果你要使用 java操作redis,那么一定要对Jedis 十分的熟悉!2.redis测试我们使用maven开发,...
2021-01-07 21:17:57
177
原创 5.1.5 NoSQL数据库-Redis(键值key-value)-Redis中的事务操作和监控
目录1.写在前面2.Redis事务操作过程2.1 正常执行事务2.2 取消事务(discurd)3.事务错误4.监控(redis实现乐观锁)4.1正常执行4.2 测试多线程修改值,使用watch可以当做redis的乐观锁操作(相当于getversion)1.写在前面 首先我们要知道,Redis的单条命令是保证原子性的,但是redis事务不能保证原子性Redis事务本质:一组命令的集合。----------------- 队列 set set ...
2021-01-07 19:52:02
191
1
原创 5.1.4 NoSQL数据库-Redis(键值key-value)-三种特殊数据类型
目录1.Geospatial(地理位置)2.Hyperloglog(基数统计)3.BitMaps(位图)1.Geospatial(地理位置)使用经纬度定位地理坐标并用一个有序集合zset保存,可以使用Zset命令来操作。Redis 的 Geo 在Redis3.2 版本就推出了! 这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人!命令 描述 举例 geoadd key longitud(经度) latitude(纬度) member [..]
2021-01-06 20:52:16
275
原创 5.1.3 NoSQL数据库-Redis(键值key-value)-五大数据类型
目录1.写在前面2.Redis-key3.五大数据类型3.1String(字符串)3.2List(列表)3.3Set(集合)3.4Hash(哈希)3.5Zset(有序集合)1.写在前面Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Se...
2021-01-06 17:48:05
829
原创 5.1.2 NoSQL数据库-Redis(键值key-value)-Redis介绍和安装
目录1.Redis入门1.1 redis是什么1.2 redis能干什么1.3 redis特性2.环境搭建2.1 windows安装2.2 linux安装3.测试redis性能3.1 redis-benchmark 命令参数3.2 简单测试4.redis基础知识补充4.1 redis默认有16个数据库4.2Redis是单线程的,Redis是基于内存操作的。1.Redis入门1.1 redis是什么 Redis(Remote Di...
2021-01-06 11:19:20
233
1
原创 5.1.1 NoSQL数据库-Redis(键值key-value)-NoSQL概述
1.为什么要用Nosql 用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发式增长! 这时候我们就需要使用NoSQL数据库的,Nosql 可以很好的处理以上的情况。1.1单机MySQL的年代90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去使用静态网页 Html ~ 服务器根本没有太大的压力! 思考一下,这种情况下:整个网站的瓶颈是什么?数据量如果太大、一个机器放不下了! 数据的索引 (B+ Tree),一个机器...
2021-01-06 11:02:16
562
原创 4.1.7 Flink-流处理框架-Flink On Yarn三种部署方式
目录1.写在前面2.两种在 yarn 上运行的模式2.1Session-cluster 模式2.2Per-Job-Cluster 模式3.Session-cluster 模式的启动方式4.Per-Job-Cluster 模式启动方式1.写在前面 以Yarn模式部署Flink任务时,要求Flink是有 Hadoop 支持的版本,Hadoop 环境需要保证版本在 2.2 以上,并且集群中安装有 HDFS 服务。2.两种在 yarn 上运行的模式Flink...
2020-12-28 20:31:25
1915
原创 4.1.1 Flink-流处理框架-Flink简介
目录1.Flink是什么2.为什么选择Flink3.哪些行业需要处理流数据4.传统数据处理架构4.1 事务处理4.2 分析处理5.流处理结构的演变5.1 第一代:有状态的流式处理5.2 第二代:lambda架构5.3 第三代:Flink架构6.Flink的主要特点6.1事件驱动型(Event-driven)6.2 流与批的世界观6.3 分层API7.Flink的其他特点8.Flink vs Spark Streaming1.Flink是什.
2020-12-28 20:19:01
374
原创 1.4.12 linux和高并发-shell编程-ha-hadoop脚本编写
目录1、简单了解2、脚本源码3、测试使用1、简单了解 $*表示传递给函数或脚本的所有参数,被双引号""包含时,“$*”会将所有的参数作为一个整体 延时函数sleep,默认以秒为单位,也可以自己指定延迟的单位。 sleep 1s 延迟一秒 sleep 1m 延迟一分钟 sleep 1h 延迟一小时 sleep 1d 延迟一天 2、脚本源码#!/bin/bashUSAGE="使用方法:sh ha-hadoop.sh start/stop/stat
2020-12-22 13:00:51
224
原创 1.4.11 linux和高并发-shell编程-查看集群进程脚本
call-cluster.sh#!/bin/bashUSAGE="使用方法:sh call-cluster.sh jps or sh call-cluster.sh 'jps;java -version'"if [ $# -eq 0 ];then echo $USAGE exit 1fiNODES=("h2node01" "h2node02" "h2node03")for NODE in ${NODES[*]};do echo "-----
2020-12-22 12:56:48
206
原创 2.1.8 hadoop体系之离线计算-hdfs分布式文件系统-HA(高可用)-Hadoop集群环境搭建
目录1.准备工作2.安装工作2.1、集群规划2.2、集群配置1. hadoop-env.sh2. core-site.xml3. hdfs-site.xml4. mapred-site.xml5. yarn-site.xml6. slaves2.3、启动集群(初始化工作)1. 启动3个Zookeeper2. 启动3个JournalNode3. 格式化NameNode4. 复制hadoop01上的NameNode的元数据到hadoop025. 在
2020-12-22 12:47:50
404
原创 4.1.6 Flink-流处理框架-HA-Flink集群环境搭建(Yarn模式)
目录1.前置准备2.安装HA-Flink集群环境搭建(Yarn模式)一、集群规划二、集群配置2.1 yarn-site.xml2.2 flink-conf.yaml2.3 masters2.4 slaves2.5 上传hadoop依赖包2.6 分发三、启动集群3.1 启动ha-hadoop集群3.2 启动Flink集群和任务历史服务器四、查看集群4.1 jps进程查看4.2 Web UI查看五、提交任务1.前置准备CentOS7、j
2020-12-21 19:20:14
522
原创 4.1.5 Flink-流处理框架-HA-Flink集群环境搭建(Standalone模式)
目录1.前置准备2.安装HA-Flink集群环境搭建(Standalone模式)一、集群规划二、集群配置2.1 flink-conf.yaml2.2 masters2.3 slaves2.4 上传hadoop依赖包2.5 分发三、启动集群3.1 启动ha-hadoop集群3.2 启动Flink集群和任务历史服务器四、查看集群4.1 jps进程查看4.2 Web UI查看五、提交任务1.前置准备CentOS7、jdk1.8、flink-1
2020-12-21 19:13:57
333
原创 4.1.4 Flink-流处理框架-Flink集群环境搭建(Standalone模式)
目录1.前置准备2.搭建Standalone模式的Flink一、集群规划二、环境搭建2.1 下载并解压2.2 配置环境变量2.3 修改配置2.4 分发三、启动集群3.1 启动ha-hadoop集群3.2 启动Flink集群和任务历史服务器四、查看集群4.1 jps进程查看4.2 Web UI查看五、提交任务1.前置准备CentOS7、jdk1.8、flink-1.10.1、hadoop-2.7.72.搭建Standalone模式的Fli
2020-12-21 19:10:03
371
原创 4.1.3 Flink-流处理框架-Flink-Local模式环境搭建
目录1.前置准备2.安装Flink-Local模式环境环境搭建2.1 下载并解压2.2 配置环境变量2.3 shell启动测试2.4 wordcount案例3.提交任务作业提交3.1 启动Flink3.2 提交作业3.3 查看结果1.前置准备CentOS7、jdk1.8、flink-1.10.12.安装Flink-Local模式环境环境搭建2.1 下载并解压下载Flink安装包,这里我下载的是flink-1.10.1-bin-sc...
2020-12-21 19:02:10
236
catVSdog_data深度学习猫狗分类任务数据集
2020-04-15
LaTex参考书籍(刘海洋入门+short快速)
2019-03-05
html5实现腾讯QQ登录界面背景动画特效(QQ背景动态)
2017-08-02
mysql创建视图遇到问题
2018-03-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅