
基础运维
琅晓琳
计算机软件编程,主要编程语言有C++,python和java,之前从事深度学习研究,有caffe开发基础,目前从事数据库的开发和维护。
展开
-
系统运维系列 之gpload的简单实用
gpload的简单实用转载 2024-01-25 10:25:45 · 217 阅读 · 1 评论 -
系统运维系列 之将Tomcat添加进服务启动
进入tomcat安装目录的bin位置下,在命令提示符中输入,service.bat install。转载 2023-06-19 20:47:48 · 1318 阅读 · 0 评论 -
系统运维系列 之linux中通过sed命令直接修改文件内容
sed是实现对流的编辑。通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件。但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的办法显得很麻烦。转载 2023-02-19 13:16:07 · 467 阅读 · 1 评论 -
系统运维系列 之CSV文件读取时内容中包含逗号的处理方法
CSV文件默认逗号分隔,但是如果在内容中包含逗号,则会导致分隔失败或者数组下标匹配越界的问题。原创 2022-08-02 13:52:12 · 5768 阅读 · 0 评论 -
系统运维系列 之记载一次windows系统下tomcat启动报错的问题
1 问题简介最近遇到一个问题,在windows系统下部署tomcat项目,cmd命令启动时频繁报错,比如Unsupported major.minor version 52.0,且cmd界面上打印出来的日志为乱码;最后在关闭tomcat时发现关不掉,出现项目挂起但是无法关闭的问题。2 Unsupported major.minor version 52.0分析:比较普遍的问题,简单来说,就是执行代码的jdk版本低于编译的jdk版本,对于Spring项目来说,排查步骤如下:查看项目中的jdk版本;修原创 2022-05-27 11:28:16 · 605 阅读 · 0 评论 -
系统运维系列 之Clickhouse数据类型整理
Clickhouse支持的数据类型在 system.data_type_families 表中检查数据类型名称以及是否区分大小写,这个表中存储了 ClickHouse 支持的所有数据类型。select * from system.data_type_families limit 10;Int说明ClickHouse 中整形分为 Int8 、 Int16 、 Int32 、 Int64 来表示整数不同的取值范围,其末尾数字正好代表占用字节的大小( 8 位 =1 字节),整形又包含有符号整形和无符。转载 2022-05-25 21:00:27 · 331 阅读 · 0 评论 -
系统运维系列 之greenplum vacuum清理删除数据命令
1 PostgreSQL清理表膨胀之vacuumPostgreSQL的表膨胀清理就需要依赖vacuum,vacuum的主要任务就是清理表和索引中不需要的数据(dead tuples),为新加入的数据清理出来空间。 vacuum完成清理工作后,那些空间并没有真正被释放给操作系统,只能被vacuum清理过的表和索引所利用。2 PostgreSQL清理表膨胀之vacuum fullVacuum Full和Vacuum最大的不同就是,Vacuum Full是物理删除dead tuples,并转载 2022-05-24 14:08:26 · 1167 阅读 · 0 评论 -
系统运维系列 之greenplum常用的toolkit和catalog监控语句
1 表膨胀相关查询-- 该视图显示了那些膨胀的(在磁盘上实际的页数超过了根据表统计信息得到预期的页数)正规的堆存储的表。select * from gp_toolkit.gp_bloat_diag;--所有对象的膨胀明细select * from gp_toolkit.gp_bloat_expected_pages;2 表倾斜的相关信息-- 该视图通过计算存储在每个Segment上的数据的变异系数(CV)来显示数据分布倾斜。select * from gp_toolkit.gp_skew_c转载 2022-05-24 10:52:14 · 300 阅读 · 0 评论 -
系统运维系列 之MySQL部分学习整理5
1 应用场景在mysql数据库中查找数据,要求是数据为日期不连续数据,输入一个日期查询日期所在周指定周几的数据和上几周对应时间段数据(一个月内)。关于此问题网上资料未曾有明确的解决方案,本篇博客整理相关解决流程。2 解决方案2.1 数据库查询全量数据,在业务层做相关筛选(这里不在赘述相关方法)。2.2 数据库中直接按照要求查询相关数据。step1 按照要求取指定周几的日期--+0代表取输入日期当周的周一,-1代表周二...-6代表周日,依次类推--含义为取0520这一天所在周的周一对应的日期原创 2022-05-23 20:05:15 · 137 阅读 · 0 评论 -
系统运维系列 之IP地址和子网划分介绍
1 简介接上一篇博客:关于A类,B类,C类IP地址的网段和主机数的计算方法2 详细内容(1) 子网掩码IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信;远程网络中的主机要相互通信必须通过本地网关来传递转发数据。(2) 子网掩码的概念及作用子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用;只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使转载 2022-05-20 10:11:55 · 275 阅读 · 0 评论 -
系统运维系列 之java中需要转义的特殊字符
在Java中,不管是String.split(),还是正则表达式,有一些特殊字符需要转义,这些字符是:( [ { / ^ - $ ¦ } ] ) ? * + . 转义方法为字符前面加上"\",这样在split、replaceAll时则不会报错;//replace和replaceAll区别://replace的参数是char和CharSequence,既可以支持字符替换,也可以支持字符串替换;//replace原创 2022-05-18 16:29:24 · 2324 阅读 · 0 评论 -
系统运维系列 之Clickhouse数据库学习集锦(增删改查操作)
1 简介本篇内容涉及一些增删改查操作,包括数据库、表,重点介绍字段的增加/删除操作,其中包含的内容均实际测试通过。2 Clickhouseclickhouse是一款MPP架构的列式存储数据库,它拥有完备的管理功能,所以它称得上是一个DBMS,而不仅仅是一个数据库。它具备了如下的基本功能:(1) DDL:可以动态创建、修改或者删除数据库、表、视图,无需重启服务;(2) DML:可以动态查询、插入、修改或者删除数据;(3) 权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性;(原创 2022-05-17 14:44:09 · 2126 阅读 · 0 评论 -
系统运维系列 之异常抛出后代码执行问题(java应用)
1 问题描述throw new Excpetion()之后,程序并没有向下继续运行,抛出异常后直接跳出,后面的功能不再执行。//抛出异常:Exception in thread "main" java.lang.NumberFormatException//不会执行后面的输出语句public static void main(String[] args) { String s = "a1b2c3"; if(s.equals("a1b2c3")) { throw new NumberFormat原创 2022-05-16 14:09:27 · 1369 阅读 · 0 评论 -
系统运维系列 之HashMap底层实现原理和应用
1 介绍(1)HashMap是Java中最常用的集合类框架,也是Java语言中非常典型的数据结构;(2)HashMap是基于哈希表的Map接口的非同步实现。元素以键值对的形式存放,并且允许null键和null值,因为key值唯一(不能重复),因此,null键只有一个;(3)HashMap不保证元素存储的顺序;(4)HashMap是线程不安全的。2 HashMap的默认负载因子是0.75,而不是0.5或者是整数1呢?临界值(threshold) = 负载因子(loadFactor) * 容量(c原创 2022-05-14 20:45:28 · 363 阅读 · 0 评论 -
系统运维系列 之容器为空和为null的区别
1 概述本篇博客接上一篇博客:系统运维系列 之java.lang.NullPointerException出现原因研究和解决方案分析继续探讨容器为空和为null的区别。2 主要内容(1) 指针异常都是因为调用null对象的方法,就是一个对象还没有没有正常初始化 就先调用它的方法;程序在使用或访问一个对象的引用时,而该对象等于null则被抛出。(2) Java中新建一个list对象,默认值是空,而非null;而当我们连接数据库查询返回集合,当没有查询到数据时,返回的集合便是null。(3) 使用原创 2022-05-13 20:40:18 · 1253 阅读 · 0 评论 -
系统运维系列 之java中实现多线程的方式补充
1 介绍接本专题博客之 系统运维系列 之java中实现多线程的方式 上篇博客提到多线程使用的4种方式,分别是:实现方式1:继承Thread类,重写该类的run方法;实现方式2:实现Runnable接口,并重写该接口的run()方法;实现方式3:通过Callable和FutureTask创建线程;Callable接口实际上是属于Executor框架中的功能类,Callable接口与Runnable接口的功能类似,但提供了比Runnable更加强大的功能;Callable可以在任务结束的时候提供一原创 2022-05-06 11:31:39 · 139 阅读 · 0 评论 -
系统运维系列 之Clickhouse数据库学习集锦(接查询优化问题整理)
1 简介ClickHouse是一个用于联机分析 (OLAP)的列式数据库管理系统(DBMS),来自于俄罗斯本土搜索引擎企业 Yandex 公司,是为世界第二大web分析平台(Yandex.Metrica)所开发2016年开源,开发语言是C++,是一款PB级的交互式分析数据库。ClickHouse的性能超过了目前市场上可比的面向列的DBMS,每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。OLAP介绍:OLAP技术主要通过多维的方式来对数据进行分析、查询和生成报表,它不同于传统的OLTP处原创 2022-05-02 18:07:42 · 1522 阅读 · 0 评论 -
系统运维系列 之Java中synchronized详解及应用
synchronized是Java中的关键字,被Java原生支持,是一种最基本的同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象。 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象。 3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象。 4. 修改一个类,其作用的范围是synchronized后面括号括转载 2022-04-26 20:42:43 · 177 阅读 · 0 评论 -
系统运维系列 之Clickhouse查询优化问题记录整理
ClickHouse 2016年开源的,由俄罗斯IT公司Yandex开发,是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),而且查询性能优越。主要特点:面向列+向量执行;自己管理存储(非Hadoop);线性可扩展,高可靠(通过shard+replication实现);DDL(数据定义语言):可以动态地创建、修改或者删除数据库、表和视图,而无需重启服务;DML(数据操作语言):可以动态地查询、插入、修改或删除数据;权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全原创 2022-04-26 16:48:37 · 1585 阅读 · 0 评论 -
系统运维系列 之linux常用命令整理与应用
前言:shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制;shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。1 字符串拼接:(1)变量拼接字符串temp1=ABCtemp2=DEFecho $temp1"123"输出:ABC123echo ${temp1}123输出:ABC123(2)变量结果拼接引号echo "$temp2"输出:DEFecho '$tem原创 2022-04-20 12:03:09 · 1155 阅读 · 0 评论 -
系统运维系列 之Socket和ServerSocket的简单介绍(java应用)
Socket类代表一个客户端套接字,即任何时候连接到一个远程服务器应用时构建所需的socket。现在,要实现一个服务器应用,需要不同的做法。服务器需随时待命,因为不知道客户端什么时候会发来请求,此时,我们需要使用ServerSocket,对应的是java.net.ServerSocket类。ServerSocket与Socket不同,ServerSocket是等待客户端的请求,一旦获得一个连接请求,就创建一个Socket示例来与客户端进行通信。 Client代码:import java.io.Buf转载 2022-04-15 19:44:21 · 317 阅读 · 0 评论 -
系统运维系列 之系统文件pagefile.sys的介绍
pagefile.sys文件是操作系统的虚拟内存文件,如果用户经常运行大型程序,建议保留。参考资料:https://blog.youkuaiyun.com/xrinosvip/article/details/81352823?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth转载 2022-04-14 17:57:49 · 439 阅读 · 0 评论 -
系统运维系列 之系统文件Hiberfil.sys的介绍
Hiberfil.sys文件位于系统盘的根目录下,它是 win10 休眠功能(Hibernation)中将内存数据与会话数据保存到电脑硬盘、以便于win10计算机断电重新启动后可以快速恢复会话所需的内存镜像文件。主要参考资料为:https://blog.youkuaiyun.com/xishining/article/details/108177579 Win10优化:系统文件Hiberfil.sys介绍...转载 2022-04-14 17:46:10 · 481 阅读 · 0 评论 -
系统运维系列 之List实现深拷贝(java应用)
浅拷贝调用方法:遍历循环复制:List<String> destList=new ArrayList<String>(srcList.size()); for(String p : srcList){ destList.add(p); } 使用list.addAll()方法:List<String> destList=new ArrayList<String>(); destList.addAll(srcList);深拷原创 2022-04-07 21:15:03 · 917 阅读 · 0 评论 -
系统运维系列 之在Windows下可以查看文件夹大小的工具TreeSize Free
给大家推荐一个在Windows下可以查看文件夹大小的工具TreeSize Free。下载链接:https://customers.jam-software.de/downloadTrial.php?language=EN&article_no=80参考资料:https://blog.youkuaiyun.com/qq_33204709/article/details/111661871...转载 2022-02-27 09:36:19 · 4264 阅读 · 0 评论 -
系统运维系列 Map集合的时间value值按照先后顺序排序
1 前言【在实际开发过程中可能会遇到这种场景-干货亲测有效】Map中的value值是时间字符串形式,在输出的时候想按照时间先后的顺序倒序或者正序输出map中的值,遇到这种类似的问题可以按照本篇博客中的方法去做。2 知识背景【Map的分类】java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap:(1)Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可原创 2022-01-08 14:31:56 · 1241 阅读 · 0 评论 -
系统运维系列 之关于A类,B类,C类IP地址的网段和主机数的计算方法
网段转载 2021-12-27 15:11:16 · 3644 阅读 · 0 评论 -
系统运维系列 之Kafka查询不到正在消费的的消费组信息
1 问题背景【怪怪怪】目前消费者组正常消费,但是通过kafka manager监测不到consumer组的消费信息;前期出现的问题是一台Kafka的服务器down掉,连接不上集群,是不是和这个现象有关系呢?2 排查思路【期待解决】2.1 详细解析 kafka manager 的使用在添加Clusters时需要注意几个参数问题:Enable JMX Polling:是否开启 JMX 轮训,该部分直接影响部分 kafka broker 和 topic 监控指标指标的获取,例如每秒流入的消息数,每原创 2021-11-20 16:06:58 · 6449 阅读 · 0 评论 -
系统运维系列 之Kafka手动设置offset(经典方法总结)
1 问题背景在使用Kafka消费数据过程中,消费程序可能出现运行问题,导致消费不及时,消息堆积很多;尤其是消息消费后需要进行一列后处理,这种情况下就需要考虑一些方法来进行消费参数的设置。2 举例测试集群中有3台服务器,分别设置为Kafka的3个分区,分别为分区1,分区2和分区3,由于消费者出现运行问题,导致无法消费数据或者仅消费1到2个分区的数据,这时候分区中堆积的数据很多,达到百万级别甚至千万级别,由于消息消费后需要进行后续处理,按照正常速度消费需要较长时间才可以消费完这些堆积数据,且消费过程中会影原创 2021-10-25 19:33:49 · 11578 阅读 · 1 评论 -
系统运维系列 之linux系统下常用查找命令整理
1 前言网上关于linux命令大多写的很细很全,但是真正使用起来需要根据自己的场景进行拼接,本博客建立在实际场景下,在实际问题中使用linux查找命令。2 grep命令使用场景:查找日志中的关键词,并且限定时间范围。cat /log/AAA.log |grep BBB |grep 'Tue Sep 10 14:2[0-9]'解释:这条命令的含义是在AAA.log下面查看Tue Sep 10 14点20分-Tue Sep 10 14点29分时间段内带有BBB关键词的日志。使用场景:查找日志中多个原创 2021-09-14 17:30:25 · 217 阅读 · 0 评论 -
系统运维系列 之MySQL部分学习整理4
1 存储引擎查看数据库表创建命令:SHOW CREATE TABLE tab1;支持的存储引擎:MylSAM:快速存储;InnoDB:带有事务回滚机制;MemorycsvArchive修改存储引擎的方式:通过修改MySQL配置文件实现default-storage-engine = engine通过创建数据表命令实现CREATE TABLE tab_name(…)ENGNE = enging(引擎名);通过修改数据表的命令实现修改存储引擎ALTER TABLE tab_原创 2021-08-30 21:26:52 · 128 阅读 · 0 评论 -
系统运维系列 之MySQL部分学习整理3
1 存储过程语法结构:举例:无参CREATE PROCEDURE sql() SELECT VERSION();调用:CALL sql();有参IN:DELIMITER //(更改执行符号的命令)参数与语句中的字段不要重复,不要重复!如果p_id改成id,则会全部删除!CREATE PROCEDURE removeCID(IN p_id UNSIGNED)BEGINDELECT FROM class_type WHERE id = p_id;END//调用:CALL r原创 2021-08-30 19:02:56 · 139 阅读 · 0 评论 -
系统运维系列 之MySQL部分学习整理2
1 字符函数使用举例:CONCAT_WS相比于CONCAT可以简化语句SELECT CONCAT(id,’-’,age) AS path FROM user;SELECT CONCAT_WS(’-’,id,age) AS path FROM user;SELECT FORMAT(id,3) AS num FROM user;SELECT LEFT(‘abcdef’,2); —> ab举例:SELECT LENGTH(TRIM(’ ABC ‘)); —> 3原创 2021-08-29 19:05:39 · 223 阅读 · 0 评论 -
系统运维系列 之MySQL部分学习整理1
1 前言本部分对于MySQL数据库工作机制及其语法做一个整理,用于之后重点内容的查询和交流。2 包含内容数据库工作机制、语法基础、重要内容整理、语句优化、效率提升等。3 MySQL的字段约束3.1 其中AUTO_INCREMENT必须和PRIMARY KEY一起使用,但PRIMARY KEY则不需要,自增从1开始;3.2 每个数据表中只能有一个PRIMARY KEY,且不为空,保证唯一性;3.3 唯一约束:UNIQUE KEY,可以保证记录的唯一性,可以为空值,每张数据表可以有多个唯一约束;原创 2021-08-29 17:24:59 · 233 阅读 · 0 评论 -
系统运维系列 之Kafka配置分析及参数含义
补充:kafka manager 中lag的正数、0、负数的含义:正数:就是kafka数据积压了,消费速度小于生产速度;0:生产者和消费者速率基本相当,说明2者都工作正常;负数:说明kafka的消费者干活很快,分分钟就处理完消费的数据,供小于求。...转载 2021-08-19 16:55:20 · 1187 阅读 · 0 评论 -
系统运维系列 之MySQL联合索引的使用分析
1 前言日常优化中可能会遇到相同的数据在本地执行很快但是在服务器上执行很慢的问题,或者无论是在本地还是在服务器上都执行的很慢,可以分为两个方面排查2 第一部分本地执行速度 > 服务器执行速度一般这种情况比较少见,服务器性能要好于本地电脑,当出现这种情况时可以按照以下步骤排查:2.1 查看物理CPU个数和内核个数:查看物理CPU个数:cat—>cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l查看服务器CPU内核个原创 2021-08-09 20:13:44 · 145 阅读 · 0 评论 -
系统运维系列 之堆栈理解(java应用)
1 概述java虚拟机内存分为:堆(heap)、栈(stack)、方法区(method area)等,整体来说:堆:new出来的数组或者对象;栈:存储局部变量;方法区:代码区;寄存器:给CPU使用。2 详细介绍堆:存放创建好的对象和数组(数组也是对象,new出来的对象存放在堆中),JVM中只有一个堆空间,它被所有线程共享;堆是一个不连续的内存空间,分配灵活,速度慢;栈:方法执行的内存模型(属于线程私有,不属于线程共享),先进后出,后进先出,栈存储局部变量。栈由系统自动分配,速度快,栈是一个连原创 2021-07-29 21:38:20 · 264 阅读 · 0 评论 -
系统运维系列 之linux服务器中部署项目连接oracle数据库出现Connection reset(接maven项目中连接oracle数据库的那些坑专题)
1 前言继续研究maven项目中连接oracle数据库,期间已经遇到了一些问题并已整理在前面的博客中,本文继续补充遇到的问题。本博客中整理的专题是继续接maven项目中连接oracle数据库的那些坑专题的2.2部分。2 问题整理问题描述:Oracle数据库IO异常:Connection reset解决方法1:修改$JAVA_HOME/jre/lib/security路径下的java.security文件,有如下几种修改方法:把securerandom.source=file:/dev/random原创 2021-07-04 18:20:50 · 1590 阅读 · 0 评论 -
系统运维系列 之实现servlet上传下载文件(java应用)
1 前言本篇博客列举了几种常用的文件上传与下载的代码实现方式和postman的模拟方式,列举了当遇到request为null的排查方法,其中在代码逻辑上没有问题的情况下,一般文件相关的request为空,需要排查structs2过滤器的配置。2 文件上传添加依赖:以下方法不仅仅需要这两个jar包,如有需要可自行添加依赖,本部分只提供几种文件上传的方式。<dependency> <groupId>commons-io</groupId>原创 2021-07-03 18:58:40 · 205 阅读 · 0 评论 -
系统运维系列 之实现Ftp上传下载文件(java应用)
1 添加依赖:首先给工程添加maven依赖,pom.xml文件中添加:<dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>1.4.1</version></dependency>2 参考代码:以下是Ftp工具类:package com.test.ut转载 2021-07-03 18:25:35 · 138 阅读 · 0 评论