- 博客(26)
- 资源 (10)
- 收藏
- 关注
原创 Hudi系列文章7-RFC24 Flink 写入流程优化
此篇文章主要针对官方 RFC-24 进行分析, RFC-24 主要针对当时Hudi 整合 Flink 存在的 4 个瓶颈提出的一些解决思路, 这个思路决定了后续 Flink 写 Hudi 的基本框架,所以是想了解 Flink 写 Hudi 最重要的一个 RFC
2023-10-30 17:37:33 308
原创 Hudi-源码-索引-bloom 索引
Bloom 索引是 Hudi 中非常重要的一个索引,他利用 Bloom 过滤器进行快速确认原理: 利用存在 parquet 文件 Footer 的Bloom 过滤器过滤,然后挨个遍历符合的文件优化手段有哪些缓存range 修剪树化优缺点优点存储空间少简单缺点假阳性问题Flink 无法使用小文件问题(不确定)如何消除假阳性影响把所有阳性(符合条件)的文件全部打开都真正遍历一遍, 查看RecordKey 是否真的在文件中。
2023-10-19 17:26:59 190
原创 Hudi Flink-索引机制-index
Hudi 系列文章在这个这里查看 https://github.com/leosanqing/big-data-study索引(Index)是 Hudi 最重要的特性之一,也是区别于之前传统数仓 Hive 的重要特点, 是实现 Time Travel, Update/Delete,事务 等重要特性的基础。
2023-10-08 20:30:50 361
原创 springboot banner是怎么加载的
前言我们肯定很好奇,当我们启动 springboot 的时候,这个下面的 banner 是怎么打印出来的呢?以及我们可不可以定制我们自己的banner,那我们就进入一下 SpringBoot 的源码,看下他是怎么加载的吧PS:文章同步更新于Github–Java-Notes,如果某些图片看不了可以直接从这个上面观看源码分析项目结构入口private Banner printBanner(ConfigurableEnvironment environment) { // 判断是否
2020-06-28 14:17:32 866
原创 ELK、Kafka日志搜集
前言使用 ELK+Kafka 首先需要安装相应的软件,我安装的都是 6.4.3的版本,不同的版本可能会有冲突。一些地方可能更改其中这几个工具的作用分别是FileBeat 收集过滤日志文件。将日志文件收集后发送至kafkaKafka 作为日志的吞吐程序,消息中间件LogStash 从Kafka 中取出数据,然后发送至 ESES 作为日志的检索工具Kibana 作为日志可视化工具如...
2020-04-14 17:50:08 343
原创 Java8 stream流的演示
前言我们前面说了 lambda表达式,这次我们就将下JDK8的另一个新特性,流(Stream)stream和lambda搭配使用效果更佳,(如果你没有学过lambda表达式,最好先学习下lambda表达式)看着逼格也更高,也更简洁我们就拿之前的lambda表达式的举例我们需要找出集合中所有的 男同学 按照年龄从小到大排序 并且打印出来,我们就这样写studentList.stream(...
2020-02-11 13:48:02 206
原创 jdk8 lambda表达式
前言项目代码在本级目录下的lambda_demo中说起 JDK8 的新特性,总绕不过两个,一个是流(stream),一个就是 lambda表达式。因为 引入 lambda 表达式 可以说是 Java 的一次革命性的尝试,因为lambda表达式是函数式编程,把函数方法参数化。而之前的 Java 是面向对象的,非常非常严格的。甚至可以说是呆板。但是 Java的之前的那种风格 或者说设定并不...
2020-02-11 13:29:39 524
原创 JDK8 stream流的骚操作
前言我们前面说了 lambda表达式,这次我们就将下JDK8的另一个新特性,流(Stream)stream和lambda‘搭配使用效果更佳,(如果你没有学过lambda表达式,最好先学习下lambda表达式)看着逼格也更高,也更简洁我们就拿之前的lambda表达式的举例我们需要找出集合中所有的 男同学 按照年龄从小到大排序 并且打印出来,我们就这样写studentList.stream...
2020-02-10 15:32:22 946
原创 redis配置和使用
前言我们通过和数据库的交互获取数据,但是某些数据加载会严重影响性能,因为查询数据库是一个比较耗时的事情。我们能不能提高查询数据的效率?这个时候我们就需要使用 redis了。(当然提升查询效率不只有redis)如果图片链接失效可以直接在github上看,而且更新更及时,也更加有条理。在项目模块有相关文章https://github.com/leosanqing/Java-Notes目前已经有...
2020-02-08 12:13:49 255
原创 ReentrantLock源码分析
ReentrantLock,在面试的时候也是高频问题。他是一个可重入锁(同样的还有 Synchronized) ,可重入的意思是,当一个资源被一个线程拿到并加了锁之后,这个线程还可以再次进入这个资源,然后再次加锁。锁的count++。当count==0,之后,才表示这个锁被释放,其他线程可以抢夺那么他是怎么实现的呢?我们进入到ReentrantLock的源码中进行分析
2019-07-28 10:38:44 129
原创 轻量级锁、重量级锁都是啥玩意
在JDK1.6以后,为了减少消耗,锁进行了很多的升级。并且有了四种状态,从低到高- 无锁状态- 偏向锁状态- 轻量级锁状态- 重量级锁状态下面就介绍一下这四种不同等级的锁
2019-07-03 08:35:40 9177 1
原创 对象内存布局
在HotSpot中,对象在内存中存储的布局可以分为三个区域:- 对象头- 实例数据- 对齐填充下面我们就挨个说下这三个东西到底是啥,有啥东西一定要重点注意第一个对象头里的东西,因为讲并发时**锁优化**还有**对象创建**会用到这个
2019-06-17 22:13:20 99
原创 Java现在还比C++执行慢吗?——JVM运行期优化
是不是很多人的印象中,Java要比C++运行的慢?如果现在还停留在这个想法,那或许该更新下想法了,因为Java近几年在运行优化方面做了非常多的研究和改进,可以说已经基本不怎么输于C++的运行速度了。我们参照HotSpot虚拟机的优化来说明,不同虚拟机肯定是不同的,但是也有参考价值。
2019-05-16 15:36:31 539
原创 需要上级先处理的双亲委派模型
我们打仗的时候,另外一个陌生的队伍让你调兵支援,你是自作主张,还是向上级汇报,让上级处理,请求上级指示,按照指示行动呢?
2019-05-13 12:48:04 456
原创 类加载都经历了啥
前言前面介绍了字节码的读法,下面就是把字节码存入到内存中,那么他又是怎么加载的这些字节码文件的呢?我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关可以点个star,剑指offer题解(Java版),设计模式。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repo大纲 什么是类加载加载验证...
2019-05-13 09:58:07 170
原创 能看懂的字节码-下
前言上一篇看得懂的字节码讲了怎么看字节码,以及字节码中的魔数、版本号和常量池部分,这篇文章接着字节码顺序往下将。请一定要看了上一篇之后再看这一篇,因为有绝对的逻辑关系,不看上一篇这篇基本看不懂。如果这篇文章中有我没有讲到怎么出现的东西,(比如程序的代码,javap工具,查看字节码的工具等)就是我在上一篇文章中已经提到过的,可以查看我的上一篇文章来找到答案。上一篇地址 能看懂的字节码-上我...
2019-05-13 09:56:46 318
原创 能看懂的字节码-上
大纲文章目录大纲前言Class文件结构需要记的Class文件格式严格限定,不可更改准备程序软件打开命令行魔数概念Class文件的魔数版本号常量池范围有什么怎么看最后下篇预告前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请...
2019-05-13 09:55:01 272
原创 从原始到最新的垃圾回收器
垃圾回收器是垃圾回收的具体实现,这里只讲Hotspot虚拟机的7中不同的垃圾回收器。- 新生代 - Serial - ParNew - Parallel Scavenge- 老年代 - CMS - Serial Old - Parallel old- 二者皆可的 G1(JDK1.9之后,成为默认的收集器)- ZGC(文章中会提到)
2019-05-13 09:49:06 776 2
原创 Java内存区域和内存模型
大纲前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repoJava内存区域(内存结构)是面试的时候,问到JVM相关一定会问的东西,但是很多人有些概念是搞混的重要阅读这篇文章前,一个重要的概念要弄...
2019-05-13 09:36:24 117
原创 为啥HashMap的长度一定是2的n次方
大纲文章目录大纲前言谨记最大长度为什么table长度一定是2的n次方2的n次有什么好处分布均匀计算方便JDK 1.8改动计算索引需要对比1.7扩容前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repo...
2019-05-13 09:27:50 796
原创 HashMap传入参数,初始长度为多少
大纲文章目录大纲前言创建函数时,传入初始长度0,1,2,3,4……15,16,数组table长度为多少前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repo创建函数时,传入初始长度0,1,2,3,4...
2019-05-12 23:19:02 3810
原创 JVM垃圾回收
大纲文章目录大纲前言哪些内存需要回收第一部分第二部分方法区的回收废弃常量无用的类什么时候回收引用计数法思路缺点可达性分析法思路可以作为GC Root的对象引用强引用软引用弱引用虚引用如何回收标记-清除缺点标记-复制过程不足标记-整理过程缺点分代收集算法Hotspot中算法实现枚举根节点安全点作用概念选取标准如何完成安全区域总结Java 和 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成...
2019-05-12 23:16:24 129
原创 HashMap-put源码分析(带注释)
大纲文章目录大纲写在前面本文结构脉络个人理解语句以及中文注释HashMap 的数据结构数组+链表为啥采用这种方式源码中的变量名数组链表其他put元素步骤那么假如我现在执行下面的语句,他到底怎么执行第一条语句-构造函数第二条语句put函数hash 函数,计算哈希值改进的目的putValue函数返回值分析putValue函数条件计算索引resize函数调用的情景执行逻辑源码注释重要:扩容后元素的位置...
2019-05-12 23:12:03 1053
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人