自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 符号表的实现

什么是符号表?符号表的实现代码

2022-08-19 20:28:40 466 1

原创 数据结构——堆

■ 如果一个节点的位置为k,则它的父节点的位置为[k/2],而它的两个子节点的位置分别为2k和2k+1.这样,在不使用指针的情况下,我们也可以通过计算数组的索引在树中上下移动:从a[k] 向上一层,就令k/2,向下一层就令k等于2k或2k+1。○ 堆是完全二叉树,除了树的最后一层节点不需要是满的,其他的每一层从左到右都是满的,如果最后一层节点不是满的,那么要求左满右不满。● 通过堆顶元素下沉调整堆,把最大的元素放到堆顶,此时最后一个元素不参与堆的调整,因为最大的数据已经在数组的最右边。...

2022-08-18 08:33:55 465

原创 使用jdbc实现自定义连接池

使用jdbc实现自定义连接池。

2022-08-16 17:51:23 678 1

原创 队列的原理和实现代码

优先队列、最大优先队列、最小优先队列、索引优先队列的原理和代码实现

2022-08-16 15:16:24 219

原创 Mybatis学习笔记

Mybatis学习笔记Mybatis简介特性● 支持定制化SQL、存储过程以及高级映射的优秀的持久层框架● 避免几乎所有的JDBC代码和手动设置参数以及获取结果集● 可以使用简单的XML或注解用于配置和原始映射,将接口和java的POJO映射成数据库中的记录● mybatis是一个半自动化的ORM框架如何使用Mybatis?● 在maven过程中的pom文件引入依赖● 在resources目录下创建Mybatis核心配置文件● 创建mapper接口● 创建Mybatis映射文件

2022-05-13 11:58:03 290

原创 Kafka——学习笔记

Kafka学习笔记1.Kafka概述1.1 定义传统定义:一个分布式的基于发布、订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。发布、订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类型,订阅者只接收感兴趣的消息最新定义:一个开源的分布式事件流平台(Event Streaming Platform),被千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。1.2 传统消息队列的应用场景传统的消息队列的主要应用场景包括:缓

2022-04-07 09:17:17 295 1

原创 Hive 函数使用——窗口函数

Hive 函数使用1. 常见的三种运算符关系运算符关系运算符是二元运算符,执行的是两个操作数的比较运算。每个关系运算符都返回boolean类型结果(true or false)•等值比较: = 、==•不等值比较: <> 、!=•小于比较: <•小于等于比较: <=•大于比较: >•大于等于比较: >=•空值判断: IS NULL •非空判断: IS NOT NULL•LIKE比较: LIKE•JAVA的LIKE操作: RLIKE•RE

2022-03-29 19:07:28 2020

原创 Hive参数配置

Hive参数配置1. Hive CLL$HIVE_HOME/bin/hive是一个shellUtil,通常称之为hive的第一代客户端或者旧客户端,主要功能有两个用于交互式或批处理模式运行Hive查询,注意,此时客户端,需要并且能够访问的是Hive metastore服务,而不是hiveserver2服务用于hive相关服务的启动,比如metastore服务常见命令-e <quoted-query-string> 执行命令行-e参数后指定的sql语句 运

2022-03-28 09:15:28 219

原创 HiveSQL 数据操控、查询语言(DML、DQL)

HiveSQL 数据操控、查询语言(DML、DQL)1 Load——加载数据将数据load加载到表中时,hive不会进行如何转换,加载操作是将数据文件移动到与Hive表对应的位置的纯复制/移动操作。语法LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]LOAD DATA [LOCAL] INPATH 'file

2022-03-27 22:09:51 3204

原创 Hive数据定义语言(DDL)概述

Hive数据定义语言(DDL)概述1.什么是DDL语言?数据定义语言 (Data Definition Language, DDL)是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言,这些数据库对象包括database(schema)、table、view、index等。核心语法由CREATE、ALTER与DROP三个所组成。DDL并不涉及表内部数据的操作。完整建表语法树CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXIS

2022-03-25 21:18:40 2136

原创 Hive-学习笔记

Hive-学习笔记1 Hive概述什么是Hive?Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。Hive由Facebook实现并开源。为什么使用Hive?使用Hadoop

2022-03-25 15:39:50 1767

原创 广播变量和累加器——学习笔记

广播变量为什么会用广播变量?本地list对象被发送到每个分区的处理线程上使用,也就是一个executor内,其实存放了两份一样的数据,executor是进程,进程内资源共享,这两份数据没有必要,造成内存资源浪费。如果将本地list对象标记为广播变量对象,那么当出现上述情况下,spark就会给每个executor来一份数据,而不是像原本那样,每个分区的处理线程都来一份,节省内存使用广播变量后,每个executor只会收到一份数据集,内部的各个线程(分区)共享这一份数据集使用方法# 1.将本地l

2022-03-20 17:37:12 1366

原创 RDD常用算子

RDD常用算子1.什么是RDDRDD(Resilient Distributed Dataset)弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合所有的运算以及操作都建立在RDD数据结构的基础上可以认为RDD是分布式的列表或数组,抽象的数据结构,RDD是一个抽象类Abstract Class泛型Generic Type2.RDD的五大特征RDD是有分区的RDD的分区是RDD数据储存的最小单位一份RDD的数据,本质上是分隔

2022-03-18 09:56:07 511

原创 Spark概述

Spark概述1.what is spark?定义:Apache Spark 是用于大数据规模处理的统一分析引擎Spark的核心数据结构是以RDD一种分布式内存抽象,使得程序员能够在大规模数据集群中做内存计算,并且有一定的容错方式Spark借鉴了MapReduce思想发展而来的,保留了其分布式计算的优点并改进了其明显的缺陷,让数据存储在内存中提高了运行速度,并且提供了丰富的操作数据的API提高了开发速度Spark可以计算结构化、半结构化、非结构化、等各种类型的数据结构,同时也支持使用pyt

2022-03-17 09:07:23 286

原创 Yarn常用命令

Yarn常用命令yarn application 查看任务列出所有Applicationyarn application -list根据Application状态过滤:yarn application -list -appStates 状态(所有状态:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、FILLED)yarn application -list -appStates FINISHEDKil

2022-03-14 09:55:22 1335

原创 Hadoop_Yarn学习笔记

Hadoop_Yarn学习笔记1.什么是Yarn?Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序Yarn基础架构主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-372wjg2C-1647175251860)(Hadoop生态圈

2022-03-13 20:45:10 112

原创 Hadoop数据压缩_学习笔记

Hadoop数据压缩概述优点:以减少磁盘IO,减少磁盘储存空间缺点:增加CPU开销压缩原则运算密集型的·Job,少用压缩IO密集型的Job,多用压缩MR支持的压缩编码压缩算法对比介绍压缩性能的比较压缩方式选择压缩方式选择时重点考虑:压缩、解压缩速度、压缩率(压缩后储存大小)、压缩后是否可以支持切片Gzip压缩优点:压缩率比较高缺点:不支持切片,压缩、解压缩速度一般Bzip2压缩优点:压缩率高,支持切片缺点:压缩/解压缩速度慢Lz

2022-03-13 13:27:22 1793

原创 MapReduce框架原理_学习笔记

MapReduce框架原理1.切片与MapTask并行度决定机制MapTask并行度决定机制数据块:Block是HDFS物理上把数据分成一块一块。数据块是HDFS储存数据单元。数据切片:数据切片只是在逻辑上对输入进行切片,并不会在磁盘上将其切分成片进行储存。数据切片是MapReduce程序计算输入数据的单位,一个切片会对应一个MapTask。一个Job的Map阶段并行度由客户端在提交Job时的切片数决定每一个Split切片分配一个MapTask并行实例处理默认情况下,切片

2022-03-13 12:52:38 2133

原创 MapReduce概述学习笔记

Hadoop生态圈之MapReduce1. MapReduce概述定义:MapReduce是一个分布式运算程序的编程框架,是用户开发基于Hadoop的数据分析应用的核心框架MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上优点:MapReduce易于编程它简单的实现了一些接口,就可以完成一个分布式程序,这个分布式程序可以发布到大量廉价的PC机器上运行。也就是说你你写一个分布式程序,跟写一个简单的串行程序

2022-03-09 19:03:56 1874

原创 HADOOP序列化学习笔记

HADOOP序列化1.序列化概述序列化就是把内存中的对象,转换成字节系列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到的字节序列化(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象2.为什么要序列化一般来说,“活的”对象只生存在内存中,关机断点就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机上,然而序列化可以储存“活的”对象,可以将“活的”对象发送到远程计算机上。3.为什么不用Java的序列化Java的序

2022-03-09 19:03:20 105

原创 Hadoop_HDFS常用shell命令

HDFS常见shell命令记得先启动集群1.基本语法​ hadoop fs 具体指令 或者 hdfs dfs具体指令(两个是完全一样的)2. 常用命令(-mkdir)创建文件夹:hadoop fs -mkdir 文件名(-moveFromLocal 或者 -put)从本地剪切粘贴到HDFS:hadoop -moveFromLocal 本地文件夹路径 HDFS文件路径(-copyFromLocal)从本地文件系统中拷贝文件到HDFS路径中去:hadoop fs -cop

2022-03-07 18:21:37 1034

原创 Hadoop生态圈之HDFS学习笔记

Hadoop生态圈之HDFS1.HDFS定义HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位。其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器中各自的角色HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变了2.HDFS的优缺点优点:高容错性:数据自动保存多个副本。它通过增加副本的形式,提高容错性某一个副本丢失以后,它会自动恢复适合处理大数据

2022-03-07 17:02:59 607

原创 Hadoop生态圈

Hadoop生态圈1.什么是Hadoop?Hadoop是由Apache基金会所开发的分布式系统架构。主要解决,海量数据的存储和海量数据的分析计算问题广义上来说,Hadoop通常是指一个更加广泛的概念——Hadoop生态圈2.Hadoop有那些优势?高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或储存出现故障,也不会导致数据的丢失。高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快

2022-03-07 09:43:34 4886

原创 数据库连接池学习笔记

数据库连接池相关概述1.背景实际开发中,当我们需要使用大量生命周期短的连接对象时,频繁的创建和销毁连接对象是非常消耗资源的,针对这种情况,就出现了数据库连接池,在连接池中放一些连接对象,用的时候从里面拿,用完之后在放回去,这样做的好处就是:节约资源,提高效率。2.概述数据库连接池也叫DBCP(Data Base Connection Pool),里面定义的是连接对象,用的时候可以从里面拿,用完之后在放回去。3.分类DBCP:属于Apache软件基金组织的,不能自动回收空闲连接。C3P

2022-03-04 20:46:41 554

原创 JDBC学习笔记

JDBC简介概述:全称叫Java Data Base Connectivity,Java数据库连接技术,就是通过Java代码来操作的一种操作。接口有:Connection,statement,PreparedStatement,ResultSet类有:DriverManager回顾:集合:就是通过Java代码来储存数据的一种技术接口:Collection,Set,List,Map,Iterator类:ArrayList,LinkedList,HashSet,HashMap,pro

2022-03-04 19:44:33 512

原创 Zookeeper学习笔记

Zookeeper简介概述:Zookeeper是一个开源的分布式,为分布式应用提供协调服务的Apache项目Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责储存和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出反应。特点Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。集群只要半数以上节点存活,Zooke

2022-03-03 22:33:46 382

原创 存放数据的方式有哪些?

存放数据的方式有哪些?变量,常量,数组,集合:只能对数据进行临时性的存储,程序执行后,数据就丢失了IO流:可以对数据进行永久性存储,但是不方便用户进行精细化管理数据库:指的是存储数据的仓库,本质就是严格文件系统,可以有规律的对数据进行存储,方便用户进行CURD。数据库才是实际开发中,我们真正存储数据的地方。...

2022-03-02 15:38:39 429

原创 XML简介

XML简介概述:全称Extensible Markup Language,扩展的标记语言,属于W3C公司(万维网联盟)的产品,一般用于储存数据的。标记语言:就是由标签组成。前边的标签叫开始标签(开放标签),后边的标签叫结束标签(也叫闭合标签)没有结束标签的标签叫:自闭和标签,例如:<xml />XML和HTML的区别:xml标签都是自定义的,html标签是预定义的xml的语法严格,html语法松散xml是存放数据的,html是展示数据的...

2022-03-02 15:34:02 131

原创 注解相关概念学习笔记

注解相关概念注解简介:概述注解(Annotation),也叫元数据。一种代码界别的说明。他是JDk1.5以后版本引入的一个特性,与类、接口、枚举是在同一个层次作用:编写文档:通过代码里标识的注解生成文档(例如:生成文档doc文档)代码分析:通过代码里标识的注解对代码进行分析(例如:注解的反射)重要的:因为在框架中通常会采用注解的方式来代替配置文件,在通过反射获取注解中的配置信息编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查(例如:override)常

2022-03-01 10:35:11 186

原创 反射学习笔记

反射反射的概述是指在程序运行时区获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译器就完成确定,在运行期仍然可以扩展获取Class类对象的三种方式三种方式分类类名.class属性对象名.getClass()方法Class.forName(全类名)方法反射获取构造方法并使用Class类获取构造方法对象的方法Construct<?>[] getConstructors()

2022-03-01 09:02:33 51

原创 类加载器学习笔记

类加载器类加载类加载描述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果不出现意外情况,JVM将会连续完成这三个步骤,所有有时也把这三个步骤统称为类加载或者类初始化类的加载指将class文件读入内存,并称为创建一个java.lang.Class对象任何类被使用时,系统都会之建一个java.lang.Class对象类的连接验证阶段:用于检验被加载的类是否有正确的内部结构,并和其他类协调一致准备阶段:负

2022-03-01 08:12:58 61

原创 Junit单元测试学习笔记

Junit单元测试测试分类:黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值白盒测试:需要写代码的。关注程序具体的执行流程Junit介绍Junit是一个java语言的单元测试框架,属于白盒测试,简单理解为可以取代Java的main方法。junit属于第三方工具,需要导入jar包后使用。Junit的使用编写测试类,简单理解Junit可以用于取代Java的main方法在测试类方法上添加注解 @Test@Test 修饰的方法要求:public void 方法名(){…

2022-02-28 22:39:49 170

原创 序列化和反序列化学习笔记

什么是序列化什么是反序列化?序列化就是在保存数据时,保存数据的值和数据类型反序列化就是在恢复数据时,恢复数据的值和数据类型需要让某个对象支持序列化机制,则必须让其是可序列化的,为了让某个类是可序列化的,该类必须实现如下两个接口之一:Serializable:这是一个标记接口,没有方法Externalizeble:该接口有方法需要实现,因此我们一般情况下实现Serializable接口什么是对象流?提供了对基本类型或对象类型的序列化和反序列化的方法ObjectOutputStre

2022-02-28 18:28:30 68

原创 Maven学习笔记

Maven学习笔记Maven基本介绍什么是Maven?Maven是项目进行模型抽象, 充分运用的面向对象的思想, maven可以通过一小段描述信息来管理项目的构建, 报告和文档的软件项目管理工具Maven的作用管理项目中的jar包:不需要在进行拷贝jar包,只需要在maven项目中给定jar包坐标,maven项目自动中maven仓库中下载指定的jar包,如果这个jar包依赖于其他的jar包,此时全部下载下来maven提供一套项目的生命周期:项目生命周期包括:编译,测试,打包,部署,运行ma

2022-02-28 15:47:50 77

原创 节点流和处理流的区别和联系

节点流和处理流基本介绍节点流可以从一个特定的数据源读写数据,如:FileReader、FileWriter处理流(叶叫包装流)是连接在以存在的流(节点流或处理流)之上,为程序提供更为强大的读写功能,更加灵活多变。如BufferReader、BufferWriter。节点流和处理流的区别和联系节点流是底层流,直接和数据源相接处理包装节点流,即可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入和输出。处理流对节点流进行包装,使用了修饰器设计模式,不会直接与数据源相连。处理流的

2022-02-22 19:40:28 2836

原创 IO流原理及流的分类

IO流原理及流的分类Java IO流原理I/O是input/Output的缩写,IO技术是非常常用的技术,用于处理数据传输,如读、写文件,网络通讯等。Java程序中,对于数据的输入/输出操作以流(stream)的方式进行。Java.io包下提供了各种“流”类和接口,用于获取不同种类的数据,并通过方法输入或输出数据。输入Input:读取外部数据(磁盘、光盘等储存设备的数据)到程序(内存)中。输出Output:将程序(内存)数据输出到磁盘、光盘等储存设备中。流的分类按操作数据单位不同分为:

2022-02-22 19:24:42 124

原创 JAVA中会出现释放锁的情况

释放锁以下操作会释放锁当前线程的同步方法、同步代码块执行结束当前线程在同步代码块、同步方法中遇到break、return。当前线程在同步代码块、同步方法中出现了未处理的Error或Exception,导致异常结束当前线程在同步代码块、同步方法中执行了线程对象的wait()方法,当前线程暂停,并释放锁...

2022-02-20 22:07:32 184

原创 互斥锁的基本介绍

互斥锁基本介绍java在java语言中,引入了对象互斥锁的概念,来保证共享数据操作的完整性每个对象都对应一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。关键字synchronize与对象的互斥锁联系。当某个对象用synchronize修饰时,表明该对象在任一时刻只能用一个线程访问同步的局限性:导致程序的执行效率要降低同步的方法(非静态的)的锁可以是this,也可以是其他对象(要求是同一对象)同步方法(静态的)的锁为当前类本身注意事项同步方法如果没有使

2022-02-20 22:02:11 400

原创 继承Thread VS 实现Runnable的区别

继承Thread VS 实现Runnable的区别从java的设计来看,通过继承Thread或者实现Runnable接口来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thread类本身就实现了Runnable接口实现Runnable接口方式更加适合多个线程共享一个资源的情况,并且避免了单继承的限制,所以推荐使用Runnable接口线程常用方法start底层会创建新的线程,调用run,run就是一个简单的方法调用,不会启动新线程线程优先级的范围interrupt,中断程序,但并没有真

2022-02-20 21:48:32 1294

原创 Lambda表达式和匿名内部类的区别

Lambda表达式和匿名内部类的区别所需类型不同匿名内部类:可以是接口,也可以是抽象类,还可以是具体类Lambda表达式:只能是接口使用限制不同:如果接口中有且仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类如果接口中多于一个抽象方法,只能使用匿名内部类,而不能使用Lambda表达式实现原理:匿名内部类:编译之后,产生一个单独的.class字节码文件Lambda表达式:编译之后,没有单独的.class字节码文件。对应的字节码会在运行的时候动态生成。

2022-02-14 17:40:46 257

空空如也

空空如也

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

TA关注的人

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