Perkinl
码龄8年
关注
提问 私信
  • 博客:892,193
    社区:2
    892,195
    总访问量
  • 128
    原创
  • 470,618
    排名
  • 3,489
    粉丝

个人简介:但行好事,莫问前程

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:甘肃省
  • 加入CSDN时间: 2017-04-19
博客简介:

数据工匠记

博客描述:
关注公众号 `数据工匠记` ,专注于大数据领域离线、实时技术干货定期分享!个人网站 www.lllpan.top
查看详细资料
个人成就
  • 获得438次点赞
  • 内容获得110次评论
  • 获得1,356次收藏
  • 代码片获得293次分享
创作历程
  • 2篇
    2023年
  • 17篇
    2022年
  • 33篇
    2021年
  • 34篇
    2020年
  • 14篇
    2019年
  • 74篇
    2018年
成就勋章
TA的专栏
  • 杂七杂八
    3篇
  • Redis
    2篇
  • kafka
    5篇
  • 设计模式
    4篇
  • Akka
    9篇
  • Scala
    1篇
  • 数据仓库
    4篇
  • 数据结构
    20篇
  • java
    57篇
  • hadoop
    28篇
  • Flink
    24篇
  • spark
    13篇
  • Linux
    11篇
  • 云服务器配置
    3篇
兴趣领域 设置
  • 大数据
    hadoophivestormsparketl
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

您的专属工作效率提升神器

提高我们的工作和学习效率,节省时间。
原创
发布博客 2023.06.12 ·
261 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis主从复制原理

Master节点在平时提供服务,另外一个或多个Slave节点在平时不提供服务(或只提供数据读取服务)。当Master节点由于某些原因停止服务后,再人工/自动完成Slave节点到Master节点的切换工作,以便整个Redis集群继续向外提供服务。
转载
发布博客 2023.02.09 ·
492 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

JVM之方法区、永久代、元空间三者

方法区实在虚拟机规范里面被定义的,不同的虚拟机对这个定义的实现不同,在HotSpot 虚拟机中在 jdk1.7 版本之前的方法区实现叫永久代(PermGen space),jdk1.8 之后叫做元空间(Metaspace)。
原创
发布博客 2022.08.31 ·
1827 阅读 ·
2 点赞 ·
1 评论 ·
10 收藏

利用SparkLauncher 提交Job

调用SparkLanuncher实例的startApplication方法,但是这种方式在所有配置都正确的情况下使用运行都会失败的,原因是startApplication方法会调用LauncherServer启动一个进程与集群交互,这个操作貌似是异步的,所以可能结果是main主线程结束了这个进程都没有起起来,导致运行失败。...
原创
发布博客 2022.07.27 ·
826 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

红黑树(基于2-3树等价)

红黑树是一种常见的自平衡二叉查找树,经常使用于关联数组、字典,在各类语言的底层实现中被普遍应用,Java的TreeMap和TreeSet就是基于红黑树实现的。
转载
发布博客 2022.06.28 ·
359 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

2-3查找树

2-结点,含有一个键(及其对应的值)和两条链接,左链接指向的2-3树中的键都小于该结点,右链接指向的2-3树中的键都大于该结点。3-结点,含有两个键(及其对应的值)和三条链接,左链接指向的2-3树中的键都小于该结点,中链接指向的2-3树中的键都位于该结点的 两个键之间,右链接指向的2-3树中的键都大于该结点。...
原创
发布博客 2022.06.24 ·
1190 阅读 ·
1 点赞 ·
3 评论 ·
2 收藏

AVL平衡二叉搜索树

AVL树定义如下:是平衡二叉树或者是一棵空树,或者是具有以下性质的二叉排序树:1. 每个节点的平衡因子只可能是 1、0、-1(绝对值 ≤ 1,如果超过 1,称之为“失衡”)2. 每个节点的左右子树高度差不超过 13. 因为每个结点的高度差不超过1,AVL树搜索、添加、删除的时间复杂度是 O(logn)......
原创
发布博客 2022.06.22 ·
352 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为什么RedisCluster设计成16384个槽?

1.如果槽位为65536,发送心跳信息的消息头达8k,发送的心跳包过于庞大。2.redis的集群主节点数量基本不可能超过1000个。3.槽位越小,节点少的情况下,压缩率高
转载
发布博客 2022.06.21 ·
910 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

并查集(union find)

并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。
原创
发布博客 2022.06.17 ·
571 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

字典树(Tire)

字典树,又称单词查找树,Tire树,是一种树形结构,是一种的哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串)
原创
发布博客 2022.06.14 ·
430 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线段树(SegmentTree)

线段树(segment tree)顾名思义, 是用来存放给定区间(segment or interval)内对应信息的一种数据结构。
原创
发布博客 2022.06.11 ·
728 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

最大索引堆(IndexMaxHeap)

索引堆是对堆这种数据结构的优化,是利用真正元素的索引值来组成一个堆,可以映射出一个最大堆或者最小堆,索引堆可分为最大索引堆 (IndexMaxHeap) 和最小索引堆 (IndexMinHeap)
原创
发布博客 2022.06.08 ·
249 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【源码篇】Kafka客户端发送消息

在上一篇文章中,已经介绍了初始化 KafkaProducer 基本流程。当客户端对 KafkaProducer 完成完成后,可以调用 send() 方法将数据发送至kafka broker集群。图中描述了当客户端调用#send方法后的一系列逻辑处理。本文将主要对客户端发送消息的主要流程进行梳理,核心区域(元数据获取、分区操作、Re cordAccumlator、Sender线程唤醒)等核心代码会在后续的文章中单独分析。获取集群元数据当向broker中发送数据时,极其重要的一步是获取到集群的元数据信息
原创
发布博客 2022.04.23 ·
2907 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【源码篇】Kafka生产者内存管理BufferPool

我们都知道kafka生产者Send一条记录并没有直接发送到kafka服务端,而是先将它保存到内存 (RecordAccumulator) 中,用于压缩之后批量发送,这里内存的创建和释放是比较消耗资源的,为了实现内存的高效利用,基本上每个成熟的框架或者工具都有一套内存管理机制,kafka的生产者使用 BufferPool 来实现内存 (ByteBuffer) 的复用。红色和绿色的总和代表 BufferPool 的总量,用totalMemory表示(由buffer.memory配置);绿色代表可使用的空间,
原创
发布博客 2022.03.28 ·
3101 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

【源码篇】KafkaProducer初始化

kafka源码对 java 和 gradle 版本有适配要求,否则导入源码会编译不通过,笔者引用各版本如下。Kafka源码3.0java版本11grade版本7.4.1图解KafkaProducer流程源代码分析上图对 kafka 生产者初始化的整体流程进行了简单的梳理,接下来我们从代码层面对整体流程进行一个复原。源码导入idea后都会看到一个example工程包,这个包里面有生产者和消费者的例子,可以作为源码学习的切入口。在初始化生产者之前会设置一些配.
原创
发布博客 2022.03.25 ·
1963 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

零拷贝技术

磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存区,可以有效的减少磁盘的访问次数。这次,我们就以「文件传输」作为切入点,来分析 I/O 工作方式,以及如何优化传输文件的性能。为什么要有 DMA 技术?在没有 DMA 技术前,I/O 的过程是这样的:CPU 发出对应的指令给磁盘控制器,然后返回;磁盘控制器收到指令后,于是.
转载
发布博客 2022.03.21 ·
261 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Kafka术语:AR、OSR、ISR、HW和LEO以及之间的关系

kafka 多副本Kafka 为分区引入了多副本(Replica)机制,通过增加副本数量可以提升容灾能力。同一分区的不同副本中保存的是相同的消息(当然在同一时刻,副本之间可能并非完全一样),副本之间是“一主多从”的关系,其中leader副本负责处理读写请求,follower副本只负责与leader副本的消息同步。副本处于不同的broker中,当leader副本出现故障时,从follower副本中重新选举新的leader副本对外提供服务。Kafka通过多副本机制实现了故障的自动转移,当Kafka集群中某个b
原创
发布博客 2022.03.18 ·
3110 阅读 ·
1 点赞 ·
2 评论 ·
8 收藏

Kafka在Zookeeper存储结构

在Kafka2.8之前,Kafka强依赖zookeeper,2.8版本之后Kafka可以采用KRaft(Kafka Raft)模式,逐步去除对zookeeper的依赖(依然兼容)。在zookeeper中存储了很多kafka元数据信息, 例如 「Broker的注册信息」、「Topic的信息」 、 「运维操作临时信息 」、 「配置信息」等等其他信息。/brokers/topics/[topic]: 存储某个topic的partitions所有分配信息{ "version": "版本编号目前固定为数字.
原创
发布博客 2022.03.17 ·
1716 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

一文读懂Jvm垃圾回收机制

Java垃圾回收本文主要摘自《深入理解Java虚拟机》,内容较多,尽量全面概括了 Java 垃圾回收机制、垃圾回收器以及内存分配策略等内容。了解 Java 垃圾回收之前,需要先了解 Java内存区域Java 垃圾回收机制垃圾回收主要关注 Java 堆Java 内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由 JIT 编译器进行一些优化),因此这
转载
发布博客 2022.02.21 ·
225 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

责任链模式(参照netty)

1. 概念讲解责任链模式(Chain of Responsibility Pattern)为请求创建了一个处理对象的链(就好比于工厂的流水线作业一样,工人干完一个程序交由下一个工人进行操作,下一个工人干完后又交由下下一个工人进行操作)。发起请求和具体处理请求的过程解耦:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递。2. 如何实现责任链模式?处理器抽象类:定义了处理请求的接口或者抽象类,提供了处理请求的的方法和设置下一个处理者的方法。具
原创
发布博客 2021.11.05 ·
288 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏
加载更多