- 博客(34)
- 收藏
- 关注
原创 【mysql】更新操作是如何执行的
上面这条sql执行时,分析器会通过词法和语法解析得知这是一条更新语句,优化器决定要使用ID这个索引,然后执行器负责具体执行找到这一行然后更新。redo log(重做日志)和binlog(归档日志)
2024-05-22 23:46:03
1161
原创 【mysql】 查询是如何执行的
一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎,如下图所示。MySQL 可以简单分为 Server 层和存储引擎层两部分:Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDBMyISAMMemory等多个存储引擎。
2024-05-22 00:28:11
428
原创 jackson - java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to XXX
class Person<T> implements java.io.Serializable { private String name; private T car; ... //setter ...// getter}class BenzCar implements java.io.Serializable { private String color; private int price; ... //setter ...// getter} public st
2021-10-26 10:24:32
761
原创 git仓库删除历史记录,变更仓库为纯净的全新仓库
往git上提交时,会保留历史记录,这些记录中可能会包含有由于粗心提交的账户或密码之类的敏感信息,可以按照如下步骤删除这些历史记录,形成一个全新的仓库1.Checkout git checkout --orphan latest_branch2. Add all the files git add -A3. Commit the changes git commit -am "commit message"4. Delete the branch git bran
2021-08-31 14:21:01
429
原创 使用log4j2对日志脱敏
Mask & filter sensitive data in log4j2log4j V1 版本可以通过继承org.apache.log4j.PatternLayout类来实现日志的脱敏,如下所示.public class CustomPatternLayout extends org.apache.log4j.PatternLayout { @Override public String format(LoggingEvent event) { String
2021-08-31 14:12:06
8875
2
原创 hadoop 3.1.0安装
一. 创建新用户并修改密码与相应权限1.1 创建一个新用户(以hadoop为例)# 可以使用cat /etc/group | grep hadoop 查看hadoop用户是否存在$ cat /etc/group | grep hadoophadoop:x:1000:# 用户名为hadoop(可取符合规则的任意用户名),使用/bin/bash作为shellsudo useradd -m hadoop -s /bin/bash# 添加用户时同时指定用户组,id,以及用户主目录# sudo use
2021-02-23 15:37:41
1314
原创 从RDD中获取记录对应的输入文件名
如题,在某些场景下,需要知道正在处理的文件名。这种情况下可以使用wholetextfile(),它返回一个由fileName和fileContents组成的PairRdd。wholetextfile()把整个文件的内容放在单个记录, 这意味着如果我们读取一个2 gb大的文件,整文件的数据(2 gb)都会被当做单独一行记录放入RDD, 这显然是不利于生产效率的, 为了克服这种情形可以读取数据分割, 采用以下方法:package com.rick.spark;import java.util.Iterat
2021-02-21 17:40:43
237
原创 java正则匹配字符串中小括号内容
java正则匹配字符串中小括号内容正则表达式 预搜索(零宽断言)String content = "COPY FROM(IN1) TO(TEMP0) USING(CTL1) \n COPY FROM(TEMP0,IN2) TO(TEMP1) USING(CTL2)\n SPLICE FROM(TEMP1) TO(COMB1) ON(71,23,CH) WITHALL WITH(1,70) WITH(99,510) \n";Pattern pattern = Pattern.compile("(?
2021-02-09 16:03:39
1672
1
原创 windows 创建自定义服务
sc create ServiceName binPath=“PathToExecutableApp” start=delayed-autoeg:sc create customServiceName binPath="E:\software\UniAccessAgent-windows-amd64-v1.11.1\UniAccessAgent.exe" start=delayed-auto
2021-01-12 11:22:00
590
原创 linux ulimit
查看#查看open filesulimit -n #查看线程stack大小ulimit -s#查看pengding signalsulimit -i#查看当前用户所有限制指标信息ulimit -a修改可以通过shell 命令修改, 只针对当前shell有效示例:# 命令中的 H 表示 hard,S 表示 soft[root@host~]# ulimit -Hn 65536[root@host ~]# ulimit -Sn 65536修改 /etc/security/
2020-12-16 16:39:29
142
原创 centos 7 固定局域网IP
昨天搭建了flink on yarn的环境,一切配置妥当之后运行了一个example,没毛病。今天开机再提交job到yarn时发现集群跑不起来了,看了一下ip才发现虚拟机的IP变了,今天更改了一下配置将ip固定了。1) 首先查看对应机器的ip是什么,执行ifconfg$ ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST&g...
2020-02-01 22:18:47
333
原创 Linux系统中环境变量查看与修改
Linux系统中环境变量按生存周期来划分,可分为两类:永久的:需要修改配置文件,变量永久生效。临时的:使用export命令声明即可,变量在关闭shell时失效。设置变量的三种方法在/etc/profile文件中添加变量【对所有用户生效(永久的)】用VI编辑器在**/etc/profile**文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。例如:编辑/et...
2020-01-15 20:39:01
628
原创 Hadoop--HDFS理论、读写流程(二)
Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。HDFS集群:负责海量数据的存储,集群中的角色主要有 NameNode / DataNode / SecondaryNameNode。YARN集群:负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager/NodeManagerMapReduce:它其实是一个应用...
2019-08-26 14:27:09
261
原创 Hadoop--初识Hadoop(一)
一、什么是HadoopThe Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.设计原则:移动计算,而不是移动数据, 即计算向数据移动。二、hadoop特点扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(...
2019-08-26 10:32:44
343
原创 JAVA并发-Condition接口
任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括wait()、 wait(long timeout)、notify()以及notifyAll()方法,这些方法与synchronized同步关键字配合,可以实现等待/通知模式。Condition接口Condition接口提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但...
2019-08-19 18:06:36
141
原创 JAVA并发-读写锁
读写锁不同于互斥锁和重入锁,读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。读写锁在实现多线程同时读,写线程阻塞所有其它读写线程的功能时,只需要在读操作时获取读锁,写操作时获取写锁即可。一般情况下,读写锁的性能都会比排它锁好,因为大多数场景读是多于...
2019-08-15 18:16:36
902
原创 深入理解JVM-Java代码在JVM中是如何运行的?
Java代码有很多种不同的运行方式,比如可以在开发工具中运行,可以双击执行 jar文件运行,也可以在命令行中运行,甚至可以在网页中运行。但这些执行方式都离不开JRE(Java Runtime Environment),也就是Java 运行时环境。Java 程序员经常接触到的 JDK(Java 开发工具包)同样包含了 JRE,并且还附带了一系列开发、诊断工具(如 jps,jstat,jmap,jc...
2019-08-15 16:31:01
1651
原创 JAVA并发-重入锁ReentrantLock
一、ReentrantLock重入锁ReentrantLock,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对 资源的重复加锁。除此之外,该锁的还支持获取锁时的公平和非公平性选择。synchronized关键字隐式的支持重进入,比如一个synchronized修饰的递归方法,在方法执行时,执行线程在获取了锁之后仍能连续多次地获得该锁。ReentrantLock虽然没能像sync...
2019-08-14 15:07:36
181
原创 JAVA并发-Lock接口与队列同步器AQS
锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。一、Lock接口在Lock接 口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能...
2019-08-13 17:09:16
187
原创 JAVA并发-Java内存模型角度分析双重检验锁(Double Check Lock)
单例模式中的懒汉模式大家都很熟悉,我们看一下下面的代码是否有问题:public class Singleton { private static Singleton singleton; private Singleton(){ } public static Singleton getInstance(){ if(singleton == nul...
2019-08-12 16:48:46
223
原创 JAVA并发-volatile关键字深入解析
Java语言规范对volatile的定义Java语言提供了volatile,在某些情况下比锁更加方便,volatile是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新...
2019-08-07 16:11:03
268
原创 JAVA并发-synchronized的底层原理与应用
前言synchronized作为java关键字,在多线程并发编程中一直是一个很重要的角色,java SE 1.6之前其一直被人称为重量级锁,但是1.6对synchronized进行了各种优化,有些情况下它并没有那么重了。synchronized 应用方式利用synchronized实现同步的基础: java中的每一个对象都可以作为锁,具体表现为以下三种形式。对于普通同步方法,锁住的...
2019-08-01 15:23:03
145
原创 SpringBoot自动配置原理源码分析
上图是Spring Boot Reference Guide中的摘抄,解释:spring boot自动配置功能会基于你添加的jar依赖尝试自动配置你的spring应用,例如,如果HSQLDB在你的类路径中,并且你还没有手动配置任何数据库连接bean,那么spring boot将会为你自动配置一个内存数据库。你需要选择性地添加@EnableAutoConfiguration或者@Spring...
2019-07-26 16:56:12
180
原创 mysql事务及锁机制
mysql服务器逻辑架构本文是对mysql锁、事务、并发控制的一个总结在计算机中,锁是协调多个进程或县城并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来说,锁对于数据库而言...
2019-07-26 14:41:44
277
原创 hashMap原理解析(jdk1.8)
概述HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效...
2019-07-24 10:29:34
188
原创 Managing Your Boss
Creating a good working relationship with your boss is critical to your success—and to theirs.The relationship with your boss is critical to your success or failure. Yes, the relationship between you...
2019-07-23 10:15:01
430
原创 Session和Cookie的区别与联系
0 概念理解无状态的HTTP协议:协议,是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。会话(Session...
2019-06-12 16:04:17
175
原创 Ubuntu 16.04 server安装docker ce
(1)准备工作卸载可能存在的docker旧版本。# 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本sudo apt-get remove docker docker-engine docker.io containerd runc更新apt包索引(2)安装docker ce更新apt包索引sudo apt-get update安装以下包使...
2019-05-20 16:29:34
502
原创 Linux查看CPU,内存,硬盘信息命令
系统uname -a # 查看内核/操作系统/CPU信息head -n 1 /etc/issue # 查看操作系统版本cat /proc/cpuinfo # 查看CPU信息hostname # 查看计算机名lspci -tv # 列出所有PCI设备lsusb -tv ...
2019-05-10 13:54:22
163
原创 ubuntu nfs-server/client安装配置
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以像访问本地文件一样透明地读写位于远端NFS服务器上的文件。配置NFS服务器:1)安装nfs serverapt-get install nfs-kernel-server2)配置
2018-01-13 15:28:00
5252
原创 ImportError: No module named XXX 错误解决方法(Windows)
window环境下使用pycharm编辑器来写Python时,由from *** import *** 语句导致控制台输出ImportError: No module named ***时,显而易见是由于未找到名为***的模块。遇到这类问题,首先要确认是否已经安装过该模块。以from bs4 import BeautifulSoup 语句为例,如果控制台输出ImportError: No mo
2018-01-11 10:03:32
7648
原创 mysql 有就更新 没有就插入
数据持久化的过程中,有时会遇到这样的需求:当数据库表中存在符合某种条件的数据时,需要去更新它,不存在时,则需要新增,也就是insertOrUpdate操作,本文主要讲解MySQL中的INSERT ... ON DUPLICATE KEY UPDATE语句,该语句是基于唯一索引或主键使用,比如一张表中含有a,b,c三个字段,字段a被加上了unique index,并且表中已经存在了一条a为1的一...
2018-01-10 15:41:26
13032
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人