自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZERO的博客

普普通通

  • 博客(74)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Apache HBase

对Apache HBase 进行的简单分析和学习。

2022-06-03 15:35:46 591 1

原创 分布式消息队列:kafka

分布式消息队列:kafka高可用性,可靠性 ,可扩展性,高吞吐量消息队列中间件消息队列作为中间件,通常应用在分布式系统中;分布式系统需要保证消息的持久化;同时解决幂等问题:网络发生抖动时,消息队列能对同样的数据进行去重,数据排序(能让consumer收到顺序消息)应用场景异步处理注册系统,客户发送的邮件注册内容会放在一个数据库,请求会放在一个消息队列。服务器有空的时候处理请求,发送消息回去注册流程客户端提起请求给服务器,服务器根据客户端的数据操作DB(把客户端的注册请求写入到

2022-05-25 18:35:20 1256

原创 内存泄漏浅析

内存泄漏核心:什么时候有,在哪个地方基本判断方式1.htop/top;肉眼观察htop(1)CPU状态区域(2)整体状态区域(3)内存状态区域(4)进程状态区域(5)管理控制区域top2.mtrace使用方式:对原文件加上-ggcc -g test.cexport MALLOC_TRACE=a.log ./a.out unset MALLOC_TRACE #记得执行完后unset变量,否则可能运行其他命令可能覆盖log mtrace a.out a.log

2022-05-25 18:31:36 531 1

原创 服务器6种epoll用法

服务器6种epoll用法前言:网络Socket服务器socket是什么:其一,这是一个文件;其二,它里面存的是所有客户端 Socket 文件的文件描述符。客户端连接服务器过程:当一个客户端连接到服务端的时候,操作系统就会创建一个客户端 Socket 的文件。然后操作系统将这个文件的文件描述符写入服务端程序创建的服务端 Socket 文件中。服务端 Socket 文件,是一个管道文件。如果读取这个文件的内容,就相当于从管道中取走了一个客户端文件描述符。[外链图片转存失败,源站可能有防盗

2022-05-16 11:15:27 878

原创 分布式存储泛型应用:Spanner

分布式存储泛型应用:Spanner前言摘要Spanner 是谷歌公司研发的全球分布式、同步复制数据库。它是通过数据分片存储在多个Paxos状态机上和特有的TrueTime API来实现外部一致性的分布式事务,对于常见的三种业务模式:非阻塞的读、不采用锁机制的只读事务、快照读/原子模式变更进行并发控制。介绍spanner是一个可扩展的,数据全球分布的数据库。存储方式:通过数据分片,把数据分片存储在多个Paxos状态机上。支持外部一致性的分布式事务。可靠性:复制技术具有全球可用性和地理局部性(

2022-05-16 11:14:46 959

原创 MySQL事务

MySql的事务MySQL连接过程客户端发起请求MySQL主线程把客户端fd添加到select里select选择适当时候接受clientfdMySQL分配连接线程去处理客户端请求子线程任务:循环读取sql语句,执行语句事务的目的数据库需要数据的完整性(约束;主键,自增,外键,触发器)确保数据库从一个一致性状态转换到另一个一致性状态,确保数据库完整性。事务的特性(ACID)原子性A:一系列操作序列,要么都做(commit),要么都不做(rollback)。一致性C:一致性检测(完

2022-05-16 11:13:26 256

原创 LSM-tree基本原理及应用

LSM-tree基本原理及应用LSM-tree是什么log-structed merge-tree日志结构的:系统日志是不会出错的,只需要在后面追加。所以日志结构就代指追加型结构。原理:把磁盘看做一个日志,在日志中存放永久性数据及其索引,每次都添加到日志的末尾。文件传输(存取)大多是顺序的,提高磁盘带宽利用率。LSM-tree是专门为key-value存储系统设计的,主要业务是查找和插入。LSM的特点是利用磁盘的顺序写,写入速度比随机写入的B-树更快。LSM-tree来自哪里Bigta

2022-05-16 11:10:07 2531 1

原创 基于分布式结构的分布式计算:MapReduce 浅析

Map Reduce介绍编程模式应用场景分布式grep,用于文件内字符串查找,太熟悉了URL访问频率统计逆向Web-Link图逆序索引分布式排序MapReduce实现执行预览Master节点失效检测失效处理文件存储任务颗粒度备用任务效率技巧分区函数顺序存储combiner函数输入输出类型边界效应出错处理:跳过损坏记录状态信息计数器对于前面的一些补充master数据结构容错worker失效master失效出错处理机制当map和reduce操作不确定时存储位置任务粒度备用任务4.技巧分割函数文件顺序性保证com

2022-03-08 17:50:44 2521

原创 Linux脚本编程

Linux脚本编程使用多条命令写一个简单地shell引用遍量反引号(波浪线那个键)重定向使用多条命令写一个简单地shell第一行 #!bin/bash 不能出错啊,不然你觉得bad interpreter什么意思??引用遍量$+变量名用户变量赋值不需要$反引号(波浪线那个键)允许将shell命令输出赋给变量。test=date,在markdown里面也有这个功能重定向...

2021-11-30 14:29:09 1910

原创 Linux命令行与shell编程——shell与环境变量

shell与环境变量定义全局环境变量局部环境变量一些比较离谱的环境变量设置环境变量定义全局环境变量局部环境变量一些比较离谱的环境变量设置环境变量

2021-11-27 10:30:20 2288

原创 Linux命令行与shell编程——shell进程监测、磁盘管理、文件管理

shell高级应用监测程序ps参数灵活组合-ltop结束进程监测磁盘空间1.mount2.umount3.df4.du处理数据1.数据排序sort-k和-t2.搜索数据grep正则和grep3.压缩数据bzip2gzipzip4.归档数据tar总结监测程序查看哪些程序在运行ps参数灵活组合显示所有进程同时扩展输出-ltopps是进程系统某一时刻的快照,用top可以实时追踪系统进程分配情况,但是会进入top终端(自己在linux上试一下)。和它类似的还有top -f,也可以实时追踪文件

2021-11-26 11:47:28 1837

原创 Linux命令行与shell编程——shell简单应用

shell简单应用

2021-11-26 11:18:09 2000

原创 Linux命令行与shell编程——概述

Linux命令行与shell编程——概述Linux内核的主要功能系统内存管理管理可用物理内存创建和管理虚拟内存软件程序管理硬件设备管理设备的文件节点文件管理系统Linux内核的主要功能系统内存管理管理可用物理内存创建和管理虚拟内存       硬盘上的存储空间就是虚拟内存,这块区域叫做交换空间。内核通过不断交换物理内存与交换空间之间的页来让系统拥有远大于内存的空间。     &

2021-11-16 14:10:25 1005

原创 软件工程第六章——详细设计

详细设计结构化程序设计结构化程序控制结构(三种节点)正规程序基本程序封闭结构结构化定理结构化程序设计结构化程序控制结构(三种节点)正规程序正规子程序:正规程序中,仍是正规程序的部分基本程序封闭结构并行用;串行用-前面提到的三种基本控制结构(顺序结构、选择结构、循环结构)和两个扩充控制结构(多分支结构、UNTIL循环结构)都是基本程序。复合程序由基本程序组成,因此满足单入单出结构,这样的程序叫做结构化程序。结构化定理...

2021-11-15 14:44:19 2602

原创 后台开发:进程间通信

进程间通信简介管道简介最简单的进程间通信可以通过文件共享来实现,在同一台机器上,一般的方式有:管道,消息队列,共享内存,信号量,在不同的机器上一般用套接字。管道父子进程之间不共享数据段和堆栈段,有血缘关系的进程之间用无名管道就可以通信,一般进程之间使用有名管道进行通信。管道是一种单向传输机制,管道所传输的是无格式的字节流,且缓冲区大小有限制。...

2021-11-13 15:59:38 334

原创 软件工程第五章——总体设计

总体设计总体设计过程模块化定理(龙军)耦合数据耦合控制耦合公共耦合内容耦合结论内聚高内聚功能内聚:10顺序内聚:9中内聚通信内聚:7过程内聚:5低内聚时间内聚:3逻辑内聚:1偶然内聚:0顺序内聚和过程内聚启发式准则图形工具层次图,HIPO图结构图面向数据流的设计方法数据流图转化为数据流设计变换设计事务设计总体设计过程层次——抽象,模块——求精模块化定理(龙军)耦合数据耦合两个模块之间只通过参数进行数据传递,是最低程度的耦合,因为模块之间一定会相互调用,除非全都用静态变量。控制耦合

2021-11-09 16:43:06 459

原创 软件工程第四章——形式化说明技术

形式化说明技术自然语言形式化语言优点应用准则*![在这里插入图片描述](https://img-blog.csdnimg.cn/5500a0db76954f4d9791344b02c02894.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5peg5ZCN5LmL6L6IWkVSTw==,size_20,color_FFFFFF,t_70,g_se,x_16)有穷状态机法(FSM)P

2021-11-09 15:22:13 193

原创 软件工程第三章——需求分析

需求分析需求分析的任务确定需求功能需求性能需求可靠性和可用性需求出错处理需求接口需求约束通过合适工具分析系统需求导出系统逻辑模型修正系统开发计划与用户沟通获取系统需求的方法需求分析的任务确定需求功能需求客户需求里的功能部分性能需求根据客户需求,确定响应速度,处理速度,主存和磁盘容量,安全性。可靠性和可用性需求可靠性:一个雷达一个月不能出现两次以上的故障。可用性:任何时刻,主机或备用机上至少有一个雷达是可用的,一个月内任何一台机器上,该系统不可用时间不超过总时间2%出错处理需求系统发现

2021-11-09 14:58:08 241

原创 软件工程第二章——可行性研究

可行性研究问题定义阶段可行性研究的任务可行性分类技术可行性经济可行性操作可行性社会可行性可行性研究步骤数据流图例子命名数据流图的作用问题定义阶段可行性研究的任务用最小的代价在尽可能短的时间内确定问题是否有解,以及是否值得去解。占成本的5~10%可行性分类技术可行性经济可行性操作可行性社会可行性可行性研究步骤数据流图例子命名数据流图的作用数据字典...

2021-11-09 14:37:44 141

原创 软件工程第一章——软件工程学概述

软件工程学概述软件危机典型表现原因消除软件工程定义基本原理软件工程方法学三要素分类软件生命周期(重要)软件定义问题定义可行性分析需求分析软件开发总体设计详细设计编码和单元测试综合测试运行维护软件过程(重要)瀑布模型快速原型模型增量模型增量模型与前两者的区别优点缺点螺旋模型喷泉模型Rational过程敏捷编程与极限编程软件危机计算机开发维护过程中的一系列问题。典型表现1.对成本和进度的估计不准确。2.已完成的软件不符合需求。3.质量问题。4.软件难以维护。5.缺乏文档。6.软件成本上升。

2021-11-09 14:12:31 422

原创 后台开发:网络IO模型

网络IO模型简介7.1四种网络IO模型阻塞IO模型线程池连接池非阻塞IO模型多路复用IO模型异步IO模型非阻塞IO和异步IO的区别7.2 select简介       IO操作分为同步IO和异步IO,二者的区别在于,执行IO操作时,用户进程是否拥有控制权。       IO操作中,设备之间的差别,导致网络通信需要等待。一般分为:  &nbs

2021-11-05 14:58:02 259

原创 后台开发:Linux进程

linux进程前言:线程的可重入机制进程的组成程序-->进程进程创建过程:进程退出正常退出异常退出exit和return的区别exit和_exit的区别僵尸进程,孤儿进程前言:线程的可重入机制       线程同步问题,本质都是为了解决“函数不可重入”的问题。可重入函数,指的是多于一个任务同时使用一个程序而不会出现数据错误。不可重入函数只能有同时一个程序使用,必须通过锁/信号量互斥的访问,或者在代码关键部分禁用中断。&nbs

2021-11-03 23:51:38 82

原创 如何解决kv存储:Google Bigtable 浅析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档初读Google Bigtable什么是Bigtable数据模型行列时间戳API其他功能支持单行事务单元格可以作为整数计数器支持服务器在地址空间内执行客户端的脚本建立块结构什么是BigtableBigtable是一个分布式的存储系统,可以支持PB级别的数据。对于不同数据量和延迟需求的应用都有灵活、高性能的解决方案。Bigtable和数据库有很多相似之处。Bigtable不支持完整的关系数据模型,而是提供了可以对数据部署和格式动态控制

2021-09-29 14:42:59 458

原创 windows和linux文件互传

windows和linux文件互传准备具体操作准备安装xshell和xftp,官网。具体操作1.打开linux系统,进入命令行,输入ip addr,找到linux本机的ip地址,输入ssh userid@ip地址,回复yes,相当于打开了P2P的linux端。2.打开windows,网络和internet设置,更改适配器选项,详细信息,可以查看windows的ip地址,打开xshell。建立连接,连接ip为windows本机ip,用户身份验证是inux系统的用户名和密码。点击即可建立连接.

2021-09-14 20:20:24 1657

原创 计算机体系结构的基本概念

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档计算机体系结构的基本概念冯.诺依曼计算机计算机体系结构计算机指令系统计算机组成/微体系结构计算机硬件计算机系统的层次概念从计算机语言的角度看待计算机系统的分级第一级:微程序级第二级:传统机器级第三级:操作系统虚拟机第四级:汇编语言虚拟机第五级:高级语言虚拟机第六级:应用程序虚拟机按照计算机的层次结构,不同级程序员看到的计算机有不同的属性,也就是不同语言的特性。低层及其属性对高层程序员是透明的。冯.诺依曼计算机存储器,运算器,控制器,输

2021-09-13 11:02:26 808

原创 配置单节点Hadoop

配置单节点Hadoop准备工作下载并解压添加环境变量修改对应文件修改D:/hadoop-2.7.2/etc/hadoop/core-site.xml配置修改D:/hadoop-2.7.2/etc/hadoop/mapred-site.xml配置:在D:/hadoop-2.7.2目录下创建data目录,作为数据存储路径修改D:/hadoop-2.7.2/etc/hadoop/hdfs-site.xml配置修改D:/hadoop-2.7.2/etc/hadoop/yarn-site.xml配置:初始化节点,运行

2021-09-10 15:11:24 285

原创 分布式文件存储:Google File System 浅析

Google File SystemGFS是什么DFS系统分类网络文件系统(NFS)Andrew系统(AFS)KASS系统(KFS)DFS系统具体介绍网络文件系统(NFS)设计目标部分功能分布式文件系统 (KFS)Chunk 服务器(chunk的中文就是“块”)客户端客户端的缓存一致性问题分布式系统负载均衡策略GFS是什么GFS是谷歌的分布式文件管理系统,因此,我们首先来了解一下什么是分布式文件管理系统。DFS文件系统是计算机存储、管理数据的基本方式,当信息量足够大(单台服务器无法支撑现有业务量时

2021-08-04 11:03:54 2213

原创 云计算中的Server Consolidation

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档云计算中的Server ConsolidationServer Consolidation & Server Virtualization服务器虚拟化定义和分类1.按照虚拟化平台分类完全虚拟化准虚拟化操作系统虚拟化2.按虚拟化架构分类裸金属寄居3.按虚拟化层次硬件分类硬件辅助虚拟化软件辅助虚拟化为什么要服务器虚拟化?虚拟化与云计算服务器虚拟化优点灵活效率高稳定云计算云计算的分类公有云IAAS:提供虚拟机PAAS:提供虚拟机和在虚拟机

2021-06-07 23:56:35 953 4

原创 矩阵连乘题解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档矩阵连乘题目一、题目分析二、变量说明p数组2.读入数据总结题目计算一系列矩阵相乘所需要的最少步骤数。一、题目分析两个矩阵相乘的必要条件是第一个矩阵的列和第二个矩阵的行相同。假设第一个矩阵是pq,第二个矩阵是qr,那么所需要的计算步骤是pqr次。因此假设有n个矩阵,只需要n+1个空间就可以表征这些矩阵的性质。为了便于下标处理,矩阵从下标1开始。二、变量说明p数组代码如下(示例):import numpy as npimp

2021-06-07 23:56:15 461

原创 操作系统复习:进程

操作系统复习:进程一、进程前驱图进程状态的切换进程挂起和阻塞的区别进程控制块PCB进程切换的过程内核功能:中断处理、适中管理、原语操作创建进程的关系进程的通信消息传递方式2.线程总结一、进程前驱图后者对前者有依赖关系进程状态的切换进程挂起和阻塞的区别 理解一:挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切 的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成只有一..

2021-06-07 23:54:05 138 1

原创 跳表+图的中心问题+快排与堆排

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档算法复习一、跳表二/图的中心问题三/快速排序和堆排序二、使用步骤1.引入库2.读入数据总结一、跳表定义:为一个值有序的链表建立多级索引,比如每2个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层。其中down表示down指针,指向下一级节点。以此类推,对于节点数为n的链表,大约可以建立log2n-1级索引。像这种为链表建立多级索引的数据结构就称为跳表。查找方式:从最上面一层索引开始,假设寻找y,在第一层索引找到x和z

2021-06-07 23:49:35 193 1

原创 算法实验报告—DP

算法实验报告——DP最长公共子序列(LCS)题目代码运行结果计算矩阵连乘题目题目分析变量说明p数组dp【i】【j】核心思想分析代码运行结果凸多边形的最优三角划分题目最优子结构证明递推关系代码防卫导弹题目思路代码石子合并题目思路代码运行结果01背包问题思路其他的dp数组最长公共子序列(LCS)题目    一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1, x2,…, xm>,则另一序列Z=<z1, z2,…, zk>是X的子序列是指存在一

2021-06-03 11:28:14 466

原创 Python实验报告二——机器学习与航空数据分析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Python实验报告2——航空公司数据分析数据预处理数据预处理import numpy as npimport pandas as pdfrom sklearn.preprocessing import StandardScalerairline_data = pd.read_csv("../data/air_data.csv", encoding="gb18030")

2021-06-03 00:20:44 6905 2

原创 Python实验1——网络爬虫及数据可视化

获取网页def getHtml(stack_code): data = requests.get("http://quotes.money.163.com/trade/lsjysj_" + stack_code + ".html#06f01", headers={"user-agent": "Mozilla/5.0"}) # 获得一个请求得到的静态网页 return data.text爬的网站是网易财经的股票历史交易记录。经过观察发现,不同股票历史交易记录的区

2021-05-20 21:00:48 12189 3

原创 算法实验报告2——贪心

算法实验报告2——贪心目录一、背包问题题目思路细节代码运行结果二、照亮的山景题目思路细节代码运行结果三、搬桌子问题题目思路细节代码运行结果四、八皇后问题题目思路细节代码运行结果目录一、背包问题题目有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。物品 A B C D E F G重量 35 30 60 50 40 10 25价值 10 40 30 50 35 40 30思路把所有物品的平均价值求出..

2021-05-20 18:04:25 1439

原创 素数测试

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档素数测试前言:两种高效的求mod方法一、(a*b)%n二、(a*b)%nMiller-Rabin测试前言:两种高效的求mod方法一、(a*b)%n代码如下:public long multiple(long a,long b,long n){ long ans = 0; while(b > 0){ if((b & 1) == 1){

2021-05-19 00:00:52 239

原创 算法实验报告(第k小的数+重数+棋盘覆盖问题)

算法实验报告1目录快速排序及第k小数思路代码运行结果重数题目思路代码运行结果棋盘覆盖问题题目思路代码运行结果目录快速排序及第k小数思路快速排序的性质:当一次排序完成后,左边元素一定比基准元素小,右边元素一定比基准元素大。因此选择第k个元素作为基准,设置左右两个哨兵,当哨兵相遇的时候证明这一趟排序已经完成,此时虽然基准左右是无序的,但是大小是已知的。代码package Algorithms_算法.实验;import java.util.Arrays;public class q..

2021-05-17 15:05:54 747

原创 并查集应用:敌人和朋友

package Algorithms_算法.作业.Friend_Enemy_并查集;public class UnionSet { private int []unions,enemy,rank; int[][] relations; char[] f_or_e; public UnionSet(int[][] relations, char[] f_or_e) { this.relations = relations; this.f_o

2021-05-09 11:24:34 284

原创 矩阵的LU分解和求逆

package Algorithms_算法.Class._Matrix;import java.util.Arrays;public class LU { double[][] matrix; double[][] expand_Matrix; double[][] reverse_matrix; double[][] l; double[][] u; public void initialize(double[][] matrix){

2021-04-22 16:47:16 895

原创 2021-4-12算法复习

二分搜索二分搜索的一种应用:求最大(最小值),可以建立一个检验函数,用x代表其中的值,返回解是否可行的boolean,然后在主函数中用左边界表示一定成立的解,右侧表示一定不可能的解,不断把中值代入方程检验,缩小范围,直到得出近似解。1.n根绳子能剪出k根最长多长的绳子。2.求牛舍给定情况下,两头牛之间的最大距离。3.求物品的最大平均价值。(wi,vi已知)主函数:public double solve(int n,int k,double[] ripes){ double lef

2021-04-12 22:06:33 57

二分图.md

二分图.md

2022-03-08

master数据结构.md

master数据结构.md

2022-03-08

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

TA关注的人

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