自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (16)
  • 收藏
  • 关注

原创 Elasticsearch学习笔记(一)(最详细专题)

第1章 Elasticsearch概述01-开篇教学视频结构化数据非结构化数据半结构化数据02-技术选型Elasticsearch 是什么The Elastic Stack, 包括 Elasticsearch、 Kibana、 Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES, ES 是一个开源的高扩展的分布式全文搜索引擎,..

2021-07-26 15:35:40 1128

原创 大数据技术之(一) Spark-Core

第1章 Spark 概述1.Spark是什么Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。2.Spark and Hadoop在之前的学习中,Hadoop 的 MapReduce 是大家广为熟知的计算框架,那为什么咱们还要学习新的计算框架 Spark 呢,这里就不得不提到Spark 和Hadoop 的关系。首先从时间节点上来看:Hadoop 2006 年 1 月,Doug Cutting 加入Yahoo,领导Hadoop 的开发 2008 年 ..

2021-07-07 01:16:02 1035

原创 大数据技术之Kafka

(作者:尚硅谷大数据研发部)版本:V2.0文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、kafka概述1.1 消息队列(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)点对点模型通常是一个基于拉取或者轮询的消息.....

2021-07-06 23:48:38 1280 1

原创 锁消除和锁粗化

会将首尾相接,前后相邻且都是锁同一个对象的代码块,JIT即时编译器就会把这几个synchronized块合并为一个大块。因为正常都是多个线程去竞争同一把锁,但是当前代码中每调用一次m1方法就会创建一个。,也可以理解为每个线程对应了一把新的锁,没有竞争的情况,毫无意义,所以叫锁消除。IT(及时编译器)对锁的优化。

2023-04-10 14:45:47 304

原创 Redis实现分布式锁的7种方案,及正确使用姿势!

redis实现分布式锁的7种方案.

2023-04-09 00:05:58 875

原创 ClickHouse学习笔记(一):ClickHouse安装、数据类型、表引擎、SQL操作

是俄罗斯的Yandex于2016年开源的(DBMS),使用C++语言编写,主要用于(OLAP),能够使用SQL查询实时生成分析数据报告。

2023-03-29 23:15:14 1081

原创 Kafka面试专题及答案(26题)

数据传输的事务定义通常有以下三种级别:( 1)最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输 ( 2)最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输. ( 3)精确的一次( Exactly once) : 不会漏传输也不会重复传输,每个消息都传输被一次而且仅仅被传输一次,这是大家所期望的。

2023-03-25 00:23:22 720

原创 JAVA面试日常终结(二)

servlet 和 jsp 最主要的不同点在于,servlet 的应用逻辑是在 java 文件中,并且完全从表示层中的 html 里分离开来,而 jsp 的情况是 java 和 html 可以组合成一个扩展名为 jsp 的文件。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。克隆的对象可能包含一些已经修改过的属性,而 new 出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的“状态”就靠克隆方法了。

2023-03-14 23:50:59 150

原创 JAVA面试日常终结(一)

== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重写了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?不对,两个对象的 hashCode()相同,equals()不一定 true。

2023-03-14 23:47:22 131

原创 ClickHouse学习笔记(二):执行计划、建表优化、语法优化规则、查询优化、数据一致性

ClickHouse学习笔记(二):执行计划、建表优化、语法优化规则、查询优化、数据一致性

2023-03-14 01:17:50 843

原创 面试专栏(个人日常总结)

日常面试

2023-02-27 11:34:53 79

原创 关于Airflow跨DAG依赖总结

Airflow是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。Airflow独立于我们要运行的任务,只需要把任务的名字和运行方式提供给Airflow作为一个task就可以

2023-02-16 15:48:42 1732

原创 ClassNotFoundException 和 NoClassDefFoundError 有什么区别?

ClassNotFoundException 和 NoClassDefFoundError 有什么区别?

2022-12-01 23:22:32 130

原创 一文搞懂四种同步工具类

而CyclicBarrier是选手等待选手,是调用await()方法的线程互相等待,等待其他线程都运行好之后,再开始下一轮运行。CountDownLatch当中主要有两个方法,一个是await()会挂上锁阻塞当前线程,相当于裁判站在起始点等待,等待各位选手准备就绪,一个是countDown方法用于解锁,相当于选手准备好了之后调用countDown方法告诉裁判自己准备就绪,当所有人都准备好了之后裁判开发令枪。我举一个赛跑比赛的例子,赛跑比赛中必须等待所有选手都准备好了,裁判才能开发令枪。

2022-12-01 23:00:05 247

原创 Presto Event Listener开发

presto查询引擎插件开发

2022-08-09 18:49:22 372

原创 springboot如何快速实现多文件上传?

实现springmvc的批量多文件上传接口

2022-08-09 17:18:12 4443

原创 Activiti7审批流

Activiti7

2022-08-04 18:00:42 3616

原创 大数据技术之 Flink-CDC

大数据技术之 Flink-CDC

2022-06-06 18:25:08 2191

原创 大数据技术之Canal(1.1.2版本-最新最全详解)

第 1 章 Canal 入门1.1什么是Canal 阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了同步杭州和美国异地机房的需求,从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。 Canal是用Java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前。Canal主要支持了MySQL的Binlog解...

2021-12-31 14:54:44 2275

原创 大数据技术之 Maxwell(1.29.2版本)(最新最全教程)

maxwell

2021-12-24 17:20:33 9804

原创 深入浅出23种设计模式(最全面)

前言有一些重要的设计原则在开篇和大家分享下,这些原则将贯通全文: 面向接口编程,而不是面向实现。这个很重要,也是优雅的、可扩展的代码的第一步,这就不需要多说了吧。 职责单一原则。每个类都应该只有一个单一的功能,并且该功能应该由这个类完全封装起来。 对修改关闭,对扩展开放。对修改关闭是说,我们辛辛苦苦加班写出来的代码,该实现的功能和该修复的 bug 都完成了,别人可不能说改就改;对扩展开放就比较好理解了,也就是说在我们写好的代码基础上,很容易实现扩展。 创建型模式比较简单,但

2021-12-10 10:03:02 624

原创 HDFS SecondaryNameNode的checkpoint流程示意图

为什么需要checkpoint?NN和2NN工作机制:思考:NameNode中的元数据是存储在哪里的?首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的FsImage。这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦N

2021-12-03 16:10:55 262

原创 HDFS读写流程(最新史上最详细)

Namenode 和 DatanodeHDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace),以及客户端对文件的访问。负责元数据(hdfs的目录结构及每一个文件的块信息【块的id,块的副本数量,块的存放位置<datanode>】)的存储,namenode的实时的完整的元数据存储在内存中;namenode还会在磁盘中(dfs.namenode

2021-12-03 15:19:31 9016 1

原创 亚马逊S3的使用

一、下载s3browser客户端1、进入下载页面进行下载下载亚马逊S3客户端地址2、使用客户端进行连接公司亚马逊服务连接成功之后的界面如下:可以一目了然的看到上传之后的文件和文件目录存储结构。二、亚马逊AmazonS3的使用1、引入pom依赖<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</ar..

2021-11-01 16:19:03 8397 4

原创 血缘上传文件总结

上传接口 @PostMapping("/upload") @ApiOperation(value = "Excel上传") public Result<LineageUploadVo> upload(@RequestParam(name = "file") MultipartFile multipartFile) { String fileAbsolutePath = null; LineageUploadVo lineageUpl..

2021-11-01 15:30:29 84

原创 使用git config --global设置用户名和邮件

安装好git后,在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。git config --global user.name "bryan sun"git config --global user.email "[email protected]"注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用

2021-08-31 11:34:10 1960

原创 kafka工作流程分析

工作流程分析  上面介绍了kafka的基础架构及基本概念,不知道大家看完有没有对kafka有个大致印象,如果对还比较懵也没关系!我们接下来再结合上面的结构图分析kafka的工作流程,最后再回来整个梳理一遍我相信你会更有收获!发送数据  我们看上面的架构图中,producer就是生产者,是数据的入口。注意看图中的红色箭头,Producer在写入数据的时候永远的找leader,不会直接将数据写入follower!那leader怎么找呢?写入的流程又是什么样的呢?我们看下图:    发送的

2021-08-12 14:13:37 369

原创 使用二进制方式搭建K8S集群(不推荐)

准备工作在开始之前,部署Kubernetes集群机器需要满足以下几个条件一台或多台机器,操作系统CentOS 7.x 硬件配置:2GB ,2个CPU,硬盘30GB 集群中所有机器之间网络互通 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像导入节点 禁止swap分区步骤创建多台虚拟机,安装Linux系统 操作系统的初始化 为etcd 和 apiserver 自签证书 部署etcd集群 部署master组件【安装docker、kube-apiserver、kube

2021-08-09 21:09:56 138

原创 使用kubeadm方式搭建K8S集群

使用kubeadm方式搭建K8S集群kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:# 创建一个 Master 节点kubeadm init# 将一个 Node 节点加入到当前集群中kubeadm join <Master节点的IP和端口 >Kubeadm方式搭建K8S集群使用kubeadm方式搭建K8s集群主要分为以下几步准备三台虚拟机,同时安装操作系统CentOS 7

2021-08-05 22:29:05 231

原创 大数据技术之Flink

1.1 初识 FlinkFlink 起源于 Stratosphere 项目,Stratosphere 是在 2010~2014 年由 3 所地处柏林 的大学和欧洲的一些其他的大学共同进行的研究项目,2014 年 4 月 Stratosphere 的 代 码被 复制 并捐赠 给了 Apache 软件基 金会, 参加 这个 孵化项 目的 初始 成员 是 Stratosphere 系统的核心开发人员,2014 年 12 月,Flink 一跃成为 Apache 软件基金 会的顶级项目。 在德语中,Fl.

2021-08-04 15:24:00 404

原创 17_垃圾回收器

垃圾回收器GC分类与性能指标垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类型。Java不同版本新特性语法层面:Lambda表达式、switch、自动拆箱装箱、enum API层面:Stream API、新的日期时间、Optional、String、集合框架 底层优化:JVM优化、GC的变化、元空间、静态域、字符串常量

2021-08-03 14:51:33 148

原创 16_垃圾回收相关概念

垃圾回收相关概念System.gc()的理解在默认情况下,通过system.gc()者Runtime.getRuntime().gc() 的调用,会显式触发FullGC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。然而system.gc() )调用附带一个免责声明,无法保证对垃圾收集器的调用。(不能确保立即生效)JVM实现者可以通过system.gc() 调用来决定JVM的GC行为。而一般情况下,垃圾回收应该是自动进行的,无须手动触发,否则就太过于麻烦了。在一些特殊情况下,如

2021-08-03 14:48:07 83

原创 15_垃圾回收相关算法

垃圾回收相关算法标记阶段:引用计数算法在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。那么在JVM中究竟是如何标记一个死亡对象呢?简单来说,当一个对象已经不再被任何的存活对象继续引用时,就可以宣判为已经死亡。判断对象存活一般有两种方式:引用计数算法和可达性分析算法。引用计数算法(Reference

2021-08-03 14:44:08 114

原创 14_垃圾回收概述

垃圾回收概述概念这次我们主要关注的是黄色部分,内存的分配与回收什么是垃圾在提到什么是垃圾之前,我们先看下面一张图从上图我们可以很明确的知道,Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要我们手动的收集。垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集有三个经典问题:哪些内存需要回收? 什么时候回收? 如何回收?垃圾收集机制是Java的招牌

2021-08-03 14:40:02 61

原创 13_StringTable

StringTableString的基本特性String:字符串,使用一对 ”” 引起来表示 String s1 = "mogublog" ; // 字面量的定义方式 String s2 = new String("moxi"); string声明为final的,不可被继承 String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示string可以比较大小 string在jdk8及以前内部定义了final char[] value用

2021-08-03 13:54:18 71

原创 12_执行引擎

执行引擎执行引擎概述执行引擎属于JVM的下层,里面包括 解释器、及时编译器、垃圾回收器执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之

2021-08-03 13:46:49 96

原创 11_直接内存

直接内存 Direct Memory不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存通常,访问直接内存的速度会优于Java堆。即读写性能高。因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存。 Java的NIO库允许Java程序使用直接内存,用于数据缓冲区使用下列代码,直接分配本地内存空间int BUFFER =

2021-08-03 13:43:57 51

原创 10_对象实例化内存布局与访问定位

对象实例化内存布局与访问定位对象实例化面试题对象在JVM中是怎么存储的? 对象头信息里面有哪些东西? Java对象头有什么?从对象创建的方式 和 步骤开始说对象创建方式new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法 Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器 Constructor的newInstance(XXX):反射的方式,可以调用空参的,或者带参的构造器.

2021-08-03 13:40:19 62

原创 9_方法区

方法区前言这次所讲述的是运行时数据区的最后一个部分从线程共享与否的角度来看ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理栈、堆、方法区的交互关系下面就涉及了对象的访问定位Person:存放在元空间,也可以说方法区 person:存放在Java栈的局部变量表中 new Person():存放在Java堆中方法区的理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一...

2021-08-02 17:47:09 108

原创 8_堆

堆堆的核心概念堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。堆内存的大小是可以调节的。《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread.

2021-08-02 17:43:16 85

万得小黄车编程考试代码

万得小黄车编程考试代码

2023-04-03

17_垃圾回收器.pptx

垃圾回收器

2021-05-21

16_垃圾回收相关概念.pptx

垃圾回收相关概念

2021-05-21

15_垃圾回收相关算法.pptx

垃圾回收相关算法

2021-05-21

14_垃圾回收概述.pptx

垃圾回收概述

2021-05-21

13_StringTable.pptx

StringTable

2021-05-21

12_执行引擎.pptx

执行引擎

2021-05-21

11_直接内存.pptx

直接内存

2021-05-21

10_对象的实例化内存布局与访问定位.pptx

对象的实例化内存布局与访问定位

2021-05-21

05_虚拟机栈.pptx

虚拟机栈

2021-05-21

04_程序计数器.pptx

程序计数器

2021-05-21

03_运行时数据区概述及线程.pptx

运行时数据区概述及线程

2021-05-21

02_类加载子系统.pptx

类加载子系统

2021-05-21

01_JVM与Java体系结构.pptx

JVM与Java体系结构

2021-05-21

Mycat分布式架构之Mycat入门到精通.rar

Mycat入门到精通视频

2021-05-12

java基础详细视频rar

java基础详细视频

2021-05-12

java基础详细笔记.zip

java基础详细笔记

2021-05-12

空空如也

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

TA关注的人

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