- 博客(99)
- 资源 (12)
- 收藏
- 关注
原创 4.时间与窗口
本质上来说就是一个自定义规则,计算窗口中每个数据记录,然后与一个事先定义好的阈值做比较,丢弃超过阈值的数据记录。定时器服务在Flink中叫作TimerService,TimeService是在算子中提供定时器的管理行为, 包含定时器的注册和删除。在实际的生产中Punctuated方式在TPS很高的场景下会产生大量的Watermark,会对下游算子造成一定计算压力,适用于实时性要求较高和TPS低的场景。窗口合并时按照窗口的起始时间进行排序,然后判断窗口之间是否存在时间重叠,重叠的窗口进行合并。
2023-08-08 22:05:01
477
原创 3.核心抽象
在运行时刻,DataStream的API调用都会被转换为 Transformation,然后从Transformation转换为实际运行的算子,而。当前版本Flink的批流在API并没有统一,所以有流计算(StreamExecutionEnvironment)和批处理(ExecutionEnvironment)两套执行环境。RuntimeContext是Function运行时的上下文,封装了Function运 行时可能需要的所有信息,让Function在运行时能够获取到作业级别的 信 息。
2023-08-07 23:02:43
445
原创 2.Flink应用
2.1 数据流DataStream:DataStream是Flink数据流的核心抽象,其上定义了对数据流的一系列操作 DataStreamSource:DataStreamSource 是 DataStream 的 起 点 , DataStreamSource 在StreamExecutionEnvironment 中 创 建 , 由 StreamExecutionEnvironment.addSource(SourceFunction)创建而来,其中SourceFunction中包含了Da
2023-08-06 00:07:53
1224
原创 Flink CEP(三)pattern动态更新(附源码)
线上运行的CEP中肯定经常遇到规则变更的情况,如果每次变更时都将任务重启、重新发布是非常不优雅的。本文将介绍CEP Pattern动态注入的原理和实现,文末附上源码地址。
2023-08-05 23:49:48
2732
3
原创 1.Flink概述
Master的角色是JobManager, 负责集群和作业管理。Slave的角色是TaskManager,负责执行计算任务。
2023-07-25 23:06:26
1128
原创 Day2、Hive json_tuple性能比get_json_object更高吗?为什么?
get_json_object与json_tuple的性能基本没有差别,差别在于二者的功能不一样。lateral view适用于一行->多行的场景,lateral view + json_tuple对开发者友好,但是性能损耗较大,除非有嵌套多字段解析和炸裂操作,否则不建议使用。文章分享就到这里,有误的地方欢迎指出,也欢迎大家关注我的公众号咸鱼说数据一起讨论数据开发的相关内容。
2022-10-14 21:26:36
2061
原创 二、Redis持久化
Redis提供了两种持久化方式RDB(全量数据快照)和AOF(命令日志记录)。RDB全量快照,开销大,适用于数据冷备和复制传输。AOF记录日志,适用于实时持久化。
2022-07-16 21:59:49
814
原创 Paxos一致性算法详解
Paxos一致性算法详解1.问题描述假设有一组可以提出提案的进程集合,那么对于一个一致性算法来说需要保证以下几点:在这些被提出的提案中,只有一个会被选定。 如果没有提案被提出,那么就不会有被选定的提案。 当一个提案被选定后,进程应该可以获取被选定的提案信息。而且为了满足安全一致性,有如下要求:要求只有被提出的提案才能被选定。 只能有一个提案被选定。 如果某个进程认为某个提案被选定了,那么这个提案必须是真的被选定的那个。在Paxos一致性算法中,有Proposer、Acceptor
2020-12-06 21:42:25
572
3
原创 最小生成树算法复习
Leecode最小生成树问题汇总求最小生成树是数据结构中图的一种重要应用,一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。而求最小生成树有两种算法,一种是Prim算法,一种是Kruskal算法。1.Prim算法Prim 算法求最小生成树,它的要求是从一个带权无向完全图中选择 n-1 条边并使这个图仍然连通 (也即得到了一棵生成树 ),同时还要考虑使树的权最小。Prim算法的适用范围:MST(Minimum Spannin
2020-11-30 23:35:47
252
原创 Day1、为什么JDK1.8中HashMap从头插入改成尾插入
Day1、为什么JDK1.8中HashMap从头插入改成尾插入头插入和尾插入是什么意思,首先我们知道,HashMap的实现原理是数组+单链表的形式,当出现hash冲突的时候,元素会以链表的形式存储,JDK1.7中元素插入链表是从头部插入,JDK1.8中是从尾部插入。看看JDK1.8中HashMap的源码,从头捋一遍。存储方式 //以数组的形式存储Hash值,当存在hash冲突时使用单链表存储 transient Node<K,V>[] table; /**
2020-10-11 16:22:06
4979
2
原创 Java基础之多线程
目录一、基本概念进程线程多线程相互关系同步和异步并发和并行二、多线程的使用1.继承Thread类2.实现Runnable接口3.线程池一、基本概念进程进程是程序的一次执行过程,是系统执行程序的基本单位,所以进程是动态的。程序的一次运行就是进程从创建、运行到消亡的过程。线程线程是操作系统能够运算调度的最小单位,是进程中的一个单一顺序的控制流,它被包含在进程中,是进程的实际运作单位。一个进程可以并行多个进程,每个线程并行执行不同的任务。
2020-08-10 19:11:50
414
原创 SBT、MAVEN、IVY的区别与联系
java.lang.NoClassDefFoundError: scala/reflect/internal/Trees用maven写Scala程序的时候,报以下错误。Error:scalac: Error: scala/reflect/internal/Reporterjava.lang.NoClassDefFoundError: scala/reflect/internal/Rep...
2020-05-14 03:58:54
2033
原创 Spark调度解析
transformationflatmap,先map再flatcollect慎用actions宽窄依赖只要是shuffle,就是宽依赖,spark根据算子来判断是宽依赖还是窄依赖宽窄依赖是为了任务的切割DAG优化:一个job会被切分为多个stage,碰到宽依赖就会切分一下有几个pipeline就有几个task,stage2有4个task...
2020-04-12 17:20:22
374
原创 从源码看HashMap和HashTable的区别
从源码看HashMap和HashTable的区别继承的父类不同:HashMap继承是AbstractMap类,Hashtable继承的是Dictionary。初始容量不同:HashMap的默认容量是16,而且规定了它的容量只能是2的整数次幂;Hashtable的默认容量是11,最小值是1,最大值为2的31次方-9.扩容方式不同:HashMap扩容新容量=旧容量*2,Hashtable新容量=旧容量*2+1.线程是否安全:HashMap是线程不安全的,Hashtable线程安全;后者的put方法使用
2020-04-03 21:44:23
256
原创 寒假作业 && 剪邮票
寒假作业package lanqiao.lanqiao_2016;/** * Created by ministrong on 2020/3/5. * 寒假作业 现在小学的数学题目也不是那么好玩的。 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ (如果显示不出来,可以参见【图1.jpg】) 每个方块代表1...
2020-03-30 15:23:47
171
原创 Spark持久化策略_缓存优化
Spark持久化策略_缓存优化RDD的持久化策略当某个RDD需要进行频繁复用的时候,spark提供RDD的持久化功能,可以通过使用persist()、cache()两种方法进行RDD的持久化。如下所示://scalamyRDD.persist()myRDD.cache()为什么要使用持久化?因为RDD1经过Action生成新的RDD2之后,原先的RDD1就会被从内存中删...
2020-03-26 23:12:00
575
原创 煤球数目 && 生日蜡烛 && 搭积木
煤球数目2016年题目的难度明显感觉比2017年简单不少。package lanqiao.lanqiao_2016;/** * Created by ministrong on 2020/3/4. * * 煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .....
2020-03-04 13:58:46
325
原创 分巧克力 && 油漆面积
分巧克力package lanqiao;import java.util.Scanner;/** * Created by ministrong on 2020/3/2. * * 标题: 分巧克力 儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。 为了公平起见,小明需要从...
2020-03-03 16:56:08
188
原创 IDEA Unable to import maven project: See logs for details
IDEA Unable to import maven project: See logs for details用maven开发spark的时候遇到的问题,maven无法导入项目依赖。这是因为maven的版本高于IDEA导致的。解决方法:可以在官网http://maven.apache.org/docs/history.html查看与你的idea版本匹配的maven版本进行下载,然后安...
2020-03-01 21:08:39
243
原创 最大公共子串 && 正则问题
最大公共子串标题:最大公共子串最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。请分析该解法的思路,并补全划线部分缺失的代码。public ...
2020-02-29 15:06:54
303
原创 字母组串
标题:字母组串由 A,B,C 这3个字母就可以组成许多串。比如:"A","AB","ABC","ABA","AACBB" ....现在,小明正在思考一个问题:如果每个字母的个数有限定,能组成多少个已知长度的串呢?他请好朋友来帮忙,很快得到了代码,解决方案超级简单,然而最重要的部分却语焉不详。请仔细分析源码,填写划线部分缺少的内容。public class A{ ...
2020-02-28 14:15:51
414
原创 方格分割
package lanqiao;/** * Created by ministrong on 2020/2/27. * 标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 如图:p1.png, p2.png, p3.png 就是可行的分割法。 试计算: 包括这3种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一...
2020-02-28 13:39:44
241
原创 大数据面试(二)之常见SQL on Hadoop生态圈
Hive:将对应sql转化成执行引擎的作业:MapReduce/Spark/TezImpala:得提供足够的内存Presto:JDDrill:能够跨数据源,比如说连接HDFS和关系型数据库Phoenix:HBase(基于RowKey)Spark SQL:去官网去看看定义他们的MetaStore是一致的:框架之间共享元数据信息。Hive on Spark:...
2020-02-26 17:59:11
502
原创 迷宫
填空题:package lanqiao;/*** * 标题:迷宫 X星球的一处迷宫游乐场建在某个小山坡上。 它是由10x10相互连通的小房间组成的。 房间的地板上写着一个很大的字母。 我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R表示走到右边的房间, U表示走到上坡方向的房间, D表示走到下坡方向的房间。 X星球的居民有点懒,不愿意费力思...
2020-02-25 13:41:50
268
原创 大数据面试复习(一)之HDFS概况
HDFS架构概况HDFS核心组件的职责HDFS数据流程HDFS写数据流程1)blocksize=128/64/256,默认是128M2)几个副本 3/2/1配置在HDFS配置文件client来完成将数据分成block的工作。HDFS读数据流程HDFS高可用HA准备两个NN,一个active,一个standby(同步active ...
2020-02-19 16:21:38
219
原创 JAVA正则表达式
目录Java正则表达式概述捕获组正则表达式语法Pattern类方法Matcher类方法8. 字符串转换整数 (atoi)Java正则表达式概述正则表达式可以用来搜索、编辑或处理文本。在Leetcode中偶尔会碰见使用Java正则表达式处理字符串的题目。正则表达式试图通过定义一个模式来对字符串进行匹配。要学习java正则表达式,首先需要了解三个类。...
2020-02-15 14:36:30
357
原创 java中的堆——优先队列
目录java中的堆——优先队列215. 数组中的第K个最大元素PriorityQueue的特点源码解析PriorityQueue常用方法java中的堆——优先队列215. 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,...
2020-01-15 23:58:40
840
原创 广度优先搜索.etc(随时更新)
127. 单词接龙给定两个单词(beginWord和 endWord)和一个字典,找到从beginWord 到endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设...
2020-01-06 11:29:30
175
原创 Leetcode链表问题
目录Leetcode链表问题链表翻转问题Q1_25. K 个一组翻转链表Q2_24. 两两交换链表中的节点链表合并问题Q3_21. 合并两个有序链表Leetcode链表问题对刷到的链表问题进行一下汇总。(持续更新)链表翻转问题Q1_25. K 个一组翻转链表给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或...
2019-12-04 19:43:27
276
原创 Spark算子
目录Spark算子RDDRDD的属性RDD的创建常用的RDD算子RDD缓存机制RDD的Checkpoint(容错机制)RDD依赖关系和Spark任务中的StageSpark算子RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合...
2019-11-13 22:03:16
173
1
原创 Spark的安装与部署
目录Spark的安装与部署Spark概述Spark特点Spark与MapReduce对比Spark体系结构Spark部署伪分布式部署完全分布式Spark的安装与部署Spark概述Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为A...
2019-11-02 03:46:46
453
原创 Scala的控制结构与函数
Scala的控制结构与函数控制结构scala和其他编程语言之间一个根本性的差异。在Java或C++中, 我们把表达式(比如3 + 4)和语句(比如if语句)看做两样不同的东西。表达式有值,表达式有值,而语句执行动作。在Scala中,几乎所有构造出来的语法结构都有值。这个特性使得程序更加精简,也更易读。 if表达式有值。 块也有值——是它最后-一个表达式的值。 Sc...
2019-10-25 02:15:32
418
转载 Trie前缀树
Trie前缀树简介Trie (发音为 "try") 又经常叫前缀树,字典树等等,是一种树数据结构,用于检索字符串数据集中的键。在计算机科学中,trie是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有...
2019-10-19 23:34:07
299
Solar System.zip解压vs直接运行
2020-04-06
glad+glfw+glew.zip
2020-05-12
贝塞尔曲线表面解压vs直接运行
2020-05-12
Star Rotation(恒星旋转)vs可直接运行
2020-03-31
Display of 3D model(加载3D网格模型解压vs直接运行)
2020-03-31
Azkaban.zip
2019-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人