自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 java Flink(十六)checkpoint 检查点使用、状态恢复

Checkpoint是Flink实现容错机制最核心的功能,它能够根据配置周期性地基于Stream中各个Operator/task的状态来生成快照,从而将这些状态数据定期持久化存储下来,当Flink程序一旦意外崩溃时,重新运行程序时可以有选择地从这些快照进行恢复,从而修正因为故障带来的程序数据异常举例来说,如果从kafka消费数据进行逻辑计算,程序出错,我们就可以利用checkpoint恢复到上一次的状态,kafka的消费偏移量也会恢复到之前状态的偏移量。三种保存恢复介绍MemoryStateBa

2021-04-28 16:15:47 1284

原创 java Flink(十五)Flink单元测试 在Flink中进行单元测试 map、flatmap、状态、计时器等测试

今天记录一下flink单元测试的编写flink中的单元测试模块也是基于JUnit来实现的,本文主要介绍部分方法用来测试flink中的富函数、状态函数(例如process)以及最简单的map、flatmap等基本的JUnit操作建议百度学习。首先回顾一下这几种flink函数map是最基本的流操作,每次进来的流数据都会进行操作。flatmap是可以有选择的进行操作、输出 输出需要用到Collector状态函数例如process函数里边需要用到状态 状态用来保存之前的数据或者更新信息.

2021-04-26 16:14:30 2732 2

原创 python 连接kafka kafka.errors.NoBrokersAvailable: NoBrokersAvailable

今天搭建单机kafka报错kafka.errors.NoBrokersAvailable: NoBrokersAvailable这里我们打开配置文件/usr/local/etc/kafka/server.properties打开并修改配置:# returned from java.net.InetAddress.getCanonicalHostName().advertised.listeners=PLAINTEXT://127.0.0.1:9092保存退出运行jps杀掉kafk..

2021-04-22 10:31:08 2539

原创 解决sys.stderr.write(f“ERROR: {exc}“) ,卸载重装pip

今天在mac安装python2.7 安装pip报了这个错,记录一下解决办法。报错原因建议百度,是因为pip版本过高1、sudo rm /usr/local/bin/pip2、sudo easy_install pip==20.2.2搞定~

2021-04-21 17:51:16 7257 2

原创 java redis连接池、redis单例模式以及简单工具类

/** * 获取redis连接池 */public final class RedisPro { private static final Logger log = LoggerFactory.getLogger(RedisPro.class); //Redis服务器地址 private static String redisHost = LoadProperties.getProperty("redis.host"); //Redis服务端口 priva.

2021-04-20 16:41:15 667

原创 java设计模式-建造者模式

建造者模式的定义:建造者模式是把产品跟产品建造过程进行解耦,又称作生成器模式。可以将复杂对象的建造过程、流程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。我们不需要知道内部的具体构造细节。简单小demo:import com.sun.org.apache.xerces.internal.impl.dv.xs.QNameDV;import org.apache.flink.table.planner.expressions.E;import org.apache.fli

2021-04-19 20:46:31 128

原创 java 解析json字符串数组嵌套,解析数组中的数组

今天碰到一个问题,记录一下需要解析json字符串数组中的数组中的数组,三层嵌套[ [ [1,2], [2,3] ] ]第一个方法,强制转换: Object s = JSONArray.parseArray(); for(List<List<Double>> l:(List<List<List<Double>>>)s){ for(List<Double> l1:l){ .

2021-04-16 14:46:02 1989

原创 java 读取文件内容写入kafka

package Project;import org.apache.kafka.clients.producer.KafkaProducer;import org.apache.kafka.clients.producer.ProducerRecord;import java.io.BufferedReader;import java.io.FileReader;import java.util.Properties;public class KafkaProducerDemo { .

2021-04-12 17:24:05 1163

原创 java Flink(十四)Flink实战之电商用户行为分析之统计热门商品并用Flink table api实现 使用:map、aggregate、process、定时器、filter

继续学习了Fklink,今天在网上学习Flink的实战视频,跟着写了一下代码。因为是学习,为了方便主要是用了读取文件的方式获取源数据,主要使用了滚动窗口、keyby、filter等功能。题目:统计某个时间段内,热门商品访问的前几名1、目录结构:1是存放bean对象类 2是放项目代码 3是文件路径2、pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.

2021-04-12 16:45:25 810

原创 java Flink(十三)Flink底层Process使用Demo以及示例 ---访问时间戳、watermark 以及注册定时事件以及侧输出流

Process:我们之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的。而这 在一些应用场景下,极为重要。例如 MapFunction 这样的 map 转换算子就无法访问 时间戳或者当前事件的事件时间。 基于此,DataStream API 提供了一系列的 Low-Level 转换算子。可以访问时间 戳、watermark 以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。 Process Function 用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的 window 函数

2021-04-07 17:06:47 2477

原创 java Flink(十二)Flink状态之键控状态(keyed state)

键控状态键控状态是根据输入数据流中定义的键(key)来维护和访问的。Flink 为每个键值维护 一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护 和处理这个 key 对应的状态。当任务处理一条数据时,它会自动将状态的访问范围限定为当 前数据的 key。因此,具有相同 key 的所有数据都会访问相同的状态。K键控状态是根据输入数据流中定义的键(key)来维护和访问的。Flink 为每个键值维护 一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护

2021-04-07 14:06:33 1401

原创 java Flink(十一)Flink状态之算子状态

状态编程:流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件,并 根据最后一个事件输出结果。有状态的计算则会基于多个事件输出结果。算子状态:算子状态的作用范围限定为算子任务。这意味着由同一并行任务所处理的所有 数据都可以访问到相同的状态,状态对于同一任务而言是共享的。算子状态不能由 相同或不同算子的另一个任务访问。package window;import beans.SensorReading;import kafka.KafkaConsumerPro;import

2021-04-07 10:29:35 1343

原创 java Flink(十)窗口模式配合Watermark的使用

Watermark的基本概念首先讲解一下Flink中的时间语义:Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的 日志数据中,每一条日志都会记录自己的生成时间,Flink 通过时间戳分配器访问事 件时间戳。Ingestion Time:是数据进入 Flink 的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器 相关,默认的时间属性就是 Processing Time。 如果我们的数据出现乱序,那么此时出现一个问题,.

2021-04-06 17:13:42 452

原创 java Flink(九)窗口模式之计数窗口 以及窗口模式中 触发器trigger 移除器evictor等用法介绍以及延迟处理

窗口模式的介绍见上文,本文简单记录计数窗口模式的使用以及触发器trigger 移除器evictor等用法.trigger() 名为触发器,定义window什么时候关闭,触发计算并输出结果.evictor()名为移除器,定义移除某些数据的逻辑.allowed;ateness(),允许处理迟到的数据.sideOutputLateDate,将迟到的数据放入侧输出流.getSideOutput,获取侧输出流计数窗口模式demopackage window;import bea.

2021-04-02 16:54:29 426

原创 java Flink(八)窗口模式之时间窗口 增量聚合以及全窗口模式计算

窗口模式简述:可以把无限的数据流进行切分为有线流的一种方式,它会将流数据分发到有限大小桶中进行分析。类型:时间窗口:按照时间段进行分桶,例如 8点-9点,9点-10点计数窗口:按照数据的个数进行分桶操作:Flink中我们用.window()来定义一个窗口,然后用这个window去做一些聚合或者其他处理操作。window()方法必须在keyBy之后才能使用。Flink提供了 .timeWindow 和 .countWindow来定义时间窗口跟计数窗口。计算:增量聚合函数:每

2021-04-02 16:01:23 2001

原创 面试准备(二)java 内存模型JMM 、内存通信等

一、简述JMM Java的内存模型JMM用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。JMM规范了Java虚拟机与计算机内存之间是如何协同工作的,规定了一个线程如何以及何时可以看到由其他线程修改后的共享变量的值,以及如何同步的访问共享变量。二、简述JMM模型下的线程间的通信 如果线程A与线程B之间要通信 步骤:1、线程A把本地内存A中更新过的共享变量刷新的主内存中去。 2、...

2021-04-01 20:48:10 82

原创 面试准备(一) java的垃圾回收机制GC概述以及回收算法

一、描述一下GC以及GC回收的算法1、Java GC采用了分代的思想,将java的堆内存分成新生代、年老代以及永久代。2、GC的主要算法:标记-清除、标记-压缩、复制算法3、什么是新生代: 新生代主要存储创建时间比较新的对象。新生代会被分为三个部分eden区、from区、to区。当我们创建对象时,jvm分配内存时,会在新生代的eden区寻找合适的内存区域。当eden内存不够时,会触发minor GC操作,它会把eden中存活的对象和from区的存活对象复制到to区。当to区的年龄超...

2021-04-01 20:26:08 153

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除