摘要:
解决数据倾斜是大数据开发中比较重要的能力,这个现象指的是分布式集群中,由于数据分发的不当,导致某个节点要处理的错误过多,导致整个计算机任务迟迟结束不了,甚至可能节点出现OOM使得任务失败 处理数据倾斜的第一步就是定位到数据倾斜的位置以及理清数据倾斜的原因 这次数据倾斜模拟的是大key,也就是某个ke 阅读全文
摘要:
这个随笔是对徐葳(b站号:大数据1024_徐葳)老师关于RPC部分讲解的一个整理。 ##一、RPC含义 1、RPC全称是Remote Procedure Call远程程序调用,顾名思义就是通过网络向远程计算机请求服务,而无需知道底层网络技术的协议 2、RPC是典型的CS架构,提供服务的远程计算机充当 阅读全文
摘要:
在很多Mysql文章中都能见到不少“锁”,下面整理下常见的“锁” 1、按照并发策略分类 数据库的并发策略与Java类似,分为了三种 1.1 乐观锁 乐观锁认为一个用户读数据的时候,其他人不会修改它所读的那个数据,只在更新的时候会判断一下在此期间别人有没有更新过这个数据 1.2 悲观锁 悲观锁则相反, 阅读全文
摘要:
数据仓库能支持多种文件格式,如hive可以支持textfile,RCFile,SequenceFile,ORC,Parquet格式等,我们使用最多的是textfile,SequenceFile,ORC以及parquet格式。 TextFile TextFile的特点就是行存储,是hive默认存储格式 阅读全文
摘要:
##为什么需要保证唯一ID? 在单机服务架构中,数据库的每一个业务表的主键ID都是允许自增的,但是在分布式服务架构的分库分表的设计,使得多个库或者多个表存储了相同的业务表,如果没有一个全局的唯一ID设计方案,可能就导致了不同表(但业务逻辑是相同的)的ID相撞了。 虽然在不同数据库中,但是在用户层是无 阅读全文
摘要:
初始化的过程是给静态变量赋予指定值以及执行静态代码块的过程。 当遇到new,getstatic,putstatic,invokestatic指令时要进行初始化,也就是new实例化对象,调用静态变量以及静态方法时要对类进行初始化,第二就是如果初始化一个类,发现他的父类没有初始化,就需要先初始化他的父类 阅读全文
摘要:
Dog dog=new Dog()背后执行过程 这个涉及到字节码文件结构,类加载机制,堆,栈的认识等知识点。 在执行new的时候可以大致分为二个过程,初始化以及实例化,初始化就是类的加载过程,首先我们写的类的代码被jvm编译为字节码文件,然后这个字节码文件被加载到内存中,这个过程涉及到加载,验证,准 阅读全文
摘要:
这篇文章重点讲一下jvm的内存结构和内存模型的知识点。(2023.3.11) ##1、内存结构 jvm内存区域主要分为线程私有区域【程序计数器,虚拟机栈,本地方法栈】,线程共享区域【堆,方法区】,直接内存,其中线程私有区域和线程共享区域又统称为运行时数据区 程序计数器并不是物理存储器,而是jvm对物 阅读全文
摘要:
于2023.3.17日重写,之前写的还是太八股文太烂了一点逻辑都没有,这次重新写了之后,感觉数据库优化还是很有必要的,之前觉得不必要是我年轻了。 一、如何定位慢SQL语句 1、通过慢查询日志查询已经执行完的SQL语句 默认慢查询日志不会开启,需要手动设置,命令为 mysql> set global 阅读全文
摘要:
对类加载机制的学习(2023.3.10改) 对类加载模块的学习,要理解以下几个部分:class文件结构,类加载生命周期,类加载机制层次 ##1、字节码文件结构 对于java语言(或者其他基于jvm的语言,如scala)的编译运行过程为 java语言 >编辑器 >字节码文件 字节码文件 >jvm >机 阅读全文