自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何学习一门计算机技术

开发团队和设计团队对于产品的命名一般是有原因的,不是随便起的,就算是随便起的,也是有原因的。所以明白这些词语的取意,就比较容易理解这个技术架构的设计思想,一般取意于自然界。学习者对于技术方面的架构觉得不容易理解的时候,可能可以考虑从开发者给软件取名称的原因的角度考虑,大部分应该能和自然界的事物和语言联系起来。为什么会有这个东西。比如为什么会有C语言这门编程语言,为什么会有Python,它比在它之前的语言有什么优点,为什么有了别的语言,还会开发出Python解释器,来解释Python语法写出的代码。

2025-04-03 10:49:40 26

原创 git的作用,以及和github的区别

一般应该是,这个目录里面的数据经常改变的时候。而且你和他不想一起把这个文件夹越改越乱的话,两个人想法不一样,或者这个文件夹里面的东西,你是主要的开发者,别人是开源的参与者,那么你就可以不让别人修改主分支,但是可以拉一个新分支出去,就是fork,他在上面随便改,甚至也可以删掉,但是不影响你主分支的修改,如果他改的想合并到你的主分支上,就可以发一个pull request,就是请求你拉他的修改,把他修改的东西和你的分支进行一个合并。所以,git,github,分支都不是必要的,包括tag,看你需不需要而已。

2025-03-30 18:59:39 972

原创 git在实践使用中的操作流程

拉最新代码,减少修改之后冲突的可能性,比如别人修改了同一个文件,你也修改这个文件,如果你没有git pull拉下来他最新的修改版本的话,不在他改过的基础上再去改的话,你从自己本地的仓库和工作区旧的版本的这个文件上改,等push的时候可能就会有冲突,如果先git pull了,在最新的文件上进行你的修改,再push的时候,冲突的可能性就减少了。3. git add 指定的文件,放到暂存区,或者git add . 所有修改了的数据,从工作区添加到暂存区./git/index和./git/object中。

2025-03-28 01:13:06 195

原创 图片解释git的底层工作原理

不同的分支是不同的指针指向不同的commit的持续变化。7. HEAD_4和branch_d也是同样的理论,区别是,这个commit_2打了一个TAG,这个TAG是给commit_2贴的一个标签,方便人类识别,可以通过这个TAG来访问这个commit_2,打TAG的目的是,在很多的commit中,每一个commit都是用哈希值代表的,人们在工作中,不容易通过hash值和当时commit的msg来确定这个commit是干嘛的,所以对于重要的commit,可以打一个或多个TAG来指定这个commit是干嘛的。

2025-03-28 01:02:20 797

原创 五个步骤,学习技术的小循环,可能还行

这些AI可以给学习者提供验证的命令,学习者自己可以打开Windows git软件,在一个test目录里面做实验,实验的结果就是问题的答案,如果有看源码的习惯,会对这个技术的底层设计和每一个细节的设计有更准确的理解,如果遇到这个技术的疑难问题,教程解决不了,AI不知道,实验也不知道从哪里做起,这个时候看源码,应该是最接近解决问题的方式,或者不一定解决,但是应该能知道问题出现在哪里,因为说白了,计算机相关的东西都是人设计的,使用者看懂设计者是怎么设计的,就知道大概情况了。

2025-03-23 11:36:43 309

原创 git的底层原理

git的每次commit都会产生一个校验和,这个校验和是通过SHA-1算法算的(Secure Hash Algorithm 1),SHA-1是一种加密散列函数,用于生成数据的唯一固定大小的哈希值。在Git中,这个哈希值用于标识对象(如commit、tree、blob等),保证了数据的完整性和版本的唯一性。这个值是唯一的,相当于保存了每一次提交的目录树结构和具体的文件的情况。如果要切换到这个状态,或者使用这个状态,用hash值作为索引就能找到这个快照。算出来的校验和长度越来越长,也越来越安全。

2025-03-22 13:08:04 505

原创 git_version_control_proper_practice

所以在v1.8.5之后不用再打tag,需要等到下个版本准备h-uat测试的时候,开始打v1.8.6-rc0,然后h-uat和压测环境测试的过程中,发生的修改,打v1.8.6-rc1、v1.8.6-rc2这样的tag,然后打包完成生产部署包之后,这个包已经发往生产环境之后,打一个v1.8.6 -a -m "official version for release v1.8.6"的tag。后面需要新环境部署这个版本的时候,可以checkout v1.8.5这个正式版的标签,来使用这个版本的部署仓。

2025-03-22 11:55:14 375

原创 git tag以及git

git tag。

2025-03-20 00:00:46 255

原创 python语法

(自己之前写的python文件的名称,不包含.py的后缀)聚合函数爱写谁写谁,但是非聚合函数中,GROUP。[模块 | 类 | 变量 | 函数 | *](空格、 换行\n、 制表符\t等)

2025-03-16 19:00:10 581

原创 python和devops

改变了的用计算一个新的sha-1值,用指针指向这个对象,同时又有一个目录树的状态对应着每次commit。python的报错,要看最下面一行,最下面一行应该是原始的错误所在行,但是捕获错误可以从最高层捕获。git的存储机制有点类似于copy on write技术,给每一个对象计算一个sha-1值,readlines()读取文件的全部内容,会把读取到的内容赋值给一个列表变量。read()读取文件的全部内容,会把读取到的内容赋给一个字符串变量。网页就是一个文件,是一个在网上的文件。可以把一个图片下载到本地。

2025-03-16 12:25:02 316

原创 开发还是运维?

你会说,特斯拉就不投广告,那么厉害,是的,就跟有的特工,特种兵就是那么厉害,什么都会,什么都很厉害,就像各行各业基本都有一些人非常非常厉害。这个时候可能就有人要抬杠了,玩游戏从来不买皮肤,什么零充,好像还挺引以为傲的,如果是这样,对于端游,可能也会去网吧玩,对于手游,可能不想一直用运行速度低的手机,想换手机,有的是不去网吧,也不换手机,就用旧手机,但是旧手机也是手机,总不能用小灵通打网络游戏,不去网吧,也不买皮肤,在自己住的地方用自己的电脑玩游戏,自己的电脑如果是很旧的,也不太能玩,掉帧严重,搞不了。

2025-03-15 11:25:00 761

原创 操作系统基础历史等

把操作系统看作向应用程序提供基本抽象的概念,是一种自顶向下的观点。从这个角度看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他IO接口设备的分配。栈stack是一种特殊的线性表,像烤串、弹夹、碟子,物理存在为内存的一片区域,stack是一种数据结构。控制卡片有$JOB $LOAD $RUN $END,还有一个$FORTRAN卡片,这些基本的控制卡片是现代shell和命令解释器的先驱。操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。

2025-03-15 10:39:10 174

原创 现代操作系统一点点

把操作系统看作向应用程序提供基本抽象的概念,是一种自顶向下的观点。从这个角度看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他IO接口设备的分配。user–>operation system–>设备驱动程序(device driver)–>设备控制器(是插在电路板上的一块芯片或一组芯片)–>设备本身(设备本身有个相对简单的接口,这个接口已经被标准化了,SATA就是其中一种接口)栈stack是一种特殊的线性表,像烤串、弹夹、碟子,物理存在为内存的一片区域,stack是一种数据结构。

2025-01-27 22:00:05 801

原创 数据库底层存储的基本逻辑

linux只能够的swap是利用了虚拟内存机制中页面可以在内存和磁盘之间移动的特性实现的。HDD中是sector扇区和cluster簇的概念,不存在类似于SSD中的“页”的概念。block 是由多个storage page页组成,是SSD中最小的擦除单位。在SSD固态硬盘中,block块是由多个storage page页组成。一个数据库可以分散存储在多个磁盘上,一个磁盘也可以包含多个数据库。一个表空间可以分散到多个磁盘上,一个磁盘上也可以有多个表空间;1. 数据库、表空间、磁盘是多对多的关系。

2025-01-25 11:18:18 216

原创 OpenStack基础架构

openstack是一套IaaS云的解决方案,是一个开源的云计算管理平台。

2025-01-23 21:47:24 230

原创 RH442关于操作系统的一点基础

写Python不涉及内存分配,写C语言涉及栈内存是系统分的,堆内存是程序员自己去分,C语言的程序员写到系统级程序的时候,很多内存得自己去分,自己分完了之后,还得回收。也就是内存跑了,内存被某些进程占用之后不释放,就一点一点没有了,这个程序每跑一次,内存就被占用了一点,而且不释放,这样一点一点,久而久之内存就漏完了,系统崩溃。脏内存释放不了,在内存里面改了,但是还没有写到硬盘上的数据,叫脏数据,这一部分数据占用的内存,叫脏内存。内存泄漏一般发生在动态请求内存之后,函数结束之后,堆内存没有释放。

2025-01-15 20:58:01 169

原创 来说数据库

这个stored,是一个形容词,所以形容词不是关键,关键是它形容了什么,所以关键是procedure这个词,这个词是过程的名词形式,也就是说,整个的意思是存储了的过程。然后把这些常用的步骤封装起来,就是一个叫过程的东西了,就是procedure,那么stored procedure就是系统弄好的,整理好的,DBMS数据库管理系统安装的时候,开发者们都写好的,放在这个数据库管理系统里面的一些功能,这些功能就是存储好的过程,所以非常熟练之后,叫存储过程,那么专业人士和专业人士的对话就显得是高效的。

2025-01-07 23:55:33 569

原创 若要把普通表转成分区表,就需要先新建分区表,然后把普通表中的数据导入新建分区表。 具体怎么导入?

创建分区表:定义分区键和分区策略。导入数据:使用语句将数据从原表导入到分区表。验证数据:确保数据已正确导入。删除原表(可选):如果确认数据导入成功,可以删除原表。重命名分区表(可选):如果希望分区表的名称与原表相同,可以重命名分区表。通过这些步骤,可以在 GaussDB 中顺利地将普通表转换为分区表,并确保数据的一致性和完整性。

2025-01-05 17:45:31 296

原创 gaussdb怎么查询一个表所在的表空间的总大小和可用大小,用GB为单位表示?

确定表所在的表空间:使用adm_tables视图。查询表空间的总大小和可用大小:使用和函数。这些查询将帮助你准确地了解表空间的存储情况,从而更好地进行数据库管理和优化。

2025-01-05 17:40:10 690

原创 gaussdb中怎么查询一个表有多少GB

在 GaussDB 中,你可以使用多种方法来查询表的大小,包括使用系统视图和内置函数。:获取表及其索引和 TOAST 数据的总大小。:获取表本身的数据大小。:获取表的所有索引的总大小。adm_tables:提供表的详细信息,包括总大小、数据大小和索引大小。通过这些方法,可以准确地了解表的存储大小,从而更好地进行数据库管理和优化。

2025-01-05 17:34:47 709

原创 dolphinscheduler的工作流源数据是从db拿的吗

创建工作流当用户通过 DolphinScheduler 的 Web 界面创建或编辑工作流时,工作流的定义会被序列化为 JSON 格式,并存储在表中。任务定义每个工作流中的任务定义也会被存储在表中,包括任务的类型、参数、依赖关系等。调度信息工作流的调度信息(如调度时间、调度策略)存储在表中。Apache DolphinScheduler 使用数据库来存储工作流定义、任务定义、调度信息、实例信息等。通过数据库,DolphinScheduler 能够高效地管理和调度复杂的大数据任务和运维任务。

2025-01-05 12:43:16 1060

原创 Python的各种各样基础

集合里面可以放元祖,集合里面要放不能变的,不能放可变的,不能放列表和字典。集合里面的元素是唯一的,不能向列表那样,里面有重复的元素,集合里面的数据类型不是唯一的,可以有各种各样的数据类型。数值不为0的数字以及非空的字符串、元祖、列表和字典都为真值;Python按照缩进表达代码的逻辑关系,其他语言的缩进可能主要是用来看着美观一点的,而python的缩进跟yaml语法有点像,就是用缩进表达语法的层级关系的。列表的长度是列表中元素的数量,而列表的长度是从0开始计数的,所以列表的长度值刚好也对应了元素的下标。

2025-01-05 12:17:04 847

原创 opengauss架构图

资料来源:04+轻松上手openGauss之openGauss+对象管理(上)_哔哩哔哩_bilibili 资料来源:04+轻松上手openGauss之openGauss+对象管理(上)_哔哩哔哩_bilibili

2024-12-16 23:31:35 207

原创 关于opengauss

创建一个用户,系统就会自动创建一个与用户名相同的schema,所以一般,在DBeaver中,看到很多schema,而且每个schema都有名称,基本上每个schema的所有者的名称,也就是owner的名称也就是schema的名称,所有写sql语句的时候,就可以加条件owner = 'schema_name' 和 owner in 'schema_name'理论上,分区表的不同分区可以分布在不同的表空间中,但实际中的设定,应该是以同一个分区表的不同分区是应该分布在同一个表空间中的。

2024-12-14 22:28:33 885

原创 关于GaussDB

SELECT TABLE_NAME, TABLESPACE_NAME FRON ADM_TABLES WHERE OWNER = '' AND TABLE_NAME LIKE '' # 查询一个库中的表的表名称和表空间的对应关系。schema也类似于namespace,就跟C盘D盘这种盘符一样,主要是为了隔离,进行精细化管理,而且相互隔离的空间内,可以有重复的资源,比如重复的表名称。- **数据库**:逻辑上独立的数据集合,每个数据库都有自己的配置和安全设置。

2024-12-08 12:47:59 1345

原创 在windows操作系统上,用git与github账户连接

9. 用git clone 命令可以下载github上的代码仓库到本地,可以下自己仓库的代码,也可以下载其他仓库的代码,比如kubernetes的仓库的代码。4. 用记事本方式打开公钥文件,复制其中内容,粘贴至github页面的key的内容框里面。5. 在git bash命令行,用命令验证连接github账号。1. 进入项目目录下,右键,如图,打开git bash命令行。点击页面左上角的logo图标,然后点击Home,进入Ho。7. 再次使用验证命令,效果如下,说明已经连接成功。1.2 github账号。

2024-11-24 22:13:15 686

原创 program基础,for_C

muti是多小型机(电脑)上做个操作系统就用uni为小型机写的操作系统就叫unixunix最开始用汇编语言写的最开始的语言里面fortune里面就用了function现代programlang的python里面用的def其实就是定义一个function其实翻译成数学概念再从计算机角度去理解可能。

2024-11-17 09:14:59 317

原创 Dev-C++项目没有调试信息,解决方法

Dev-C++调试提示“项目没有调试信息,您想打开项目调试选项并重新生成吗”解决方法原文链接:Dev-C++调试提示“项目没有调试信息,您想打开项目调试选项并重新生成吗”解决方法测试版本Dev-C++ 5.11,有效。在下载完DEV-C++以后进行第一次调试时,系统弹出以上窗口,点击“Yes”按钮后编译器出现秒退的情况。

2024-11-17 08:34:44 1109

原创 编程语言基础,各种各样

首先,为什么要有编程语言,编程语言是干什么用的?跟人们的吃喝拉撒睡有什么关系,一般来讲,人有一个常规的吃喝拉撒睡和一定的交际,参与社会活动,基本上应该就够了,关于个人价值的实现,各种成就等,似乎不是必需品,而吃喝拉撒睡是实实在在的必需品。那么,在社会的发展中,为什么会出现编程语言呢,它有什么用呢。说白了,应该可以这么认为,编程的目的主要是让机器帮人们干活。比如,进行农业耕种的时候,和收获的时候,有机器帮人们进行一些劳动,那么人们就可以减少一些辛苦,让机器帮人们进行这些步骤,比如播种,还有农作物长成之后的收获

2024-11-16 11:32:20 812

原创 接口测试整体框架

接口测试1. 接口接口,也叫api(Application Programming Interface,应用程序编程接口),接口(Interface)是指不同软件组件或系统之间进行交互的点。接口定义了组件之间如何通信,包括数据的请求、接收和响应的方式。后端的程序会给前端用,后端的程序怎么给前端用,一般是后端编写接口,提供给前端使用接口本质上是开发人员写的函数或方法不是所有函数或方法都是接口,但接口一般都是函数或方法使用接口的主要目的就是分工合作,加快开发一个软件由很多接口组成。

2024-11-14 22:07:56 1018

原创 k8s更新

kubectl改进:增加了对-o作为--output的简写支持,以及对kubectl wait的--for=create选项的支持。改进了kubectl describe命令,现在能够更好地显示服务和Ingress的详细信息。调度器队列提示:调度器现在可以更有效地处理节点事件,减少内存使用,并加快对集群事件的处理速度。改进了kubectl logs命令,当 Pod 未找到时会显示所在的命名空间,方便定位问题。Kube-proxy:优化了对服务和端点变化的同步,减少了不必要的网络带宽使用。

2024-11-13 22:13:22 756

原创 dolphinscheduler

例如,在一个基于Spark的机器学习项目中,它可以安排数据准备任务、模型评估任务的执行顺序,并且合理的分配集群资源给这些任务。1. 从可用把镜像导入到本地主机之后,没有执行schema纲要,这一步,直接执行了all up这一步,alert和master的容器起不来,api的容器会unhealthy,所以登录界面打不开。有个注意的点是,docker-compose之前是一个独立的软件,docker 20.10.0版本之后,变成docker的一个子命令了,所以直接docker compose起项目就可以了。

2024-11-13 22:10:53 1125

原创 hadoop大数据平台

如果在物理机上部署服务的话,keepalived高可用感觉很实用,装个软件,配个虚拟ip,就跟那个虚拟路由器是一个工作原理。批量操作的时候,感觉ansible还有点绕,直接在命令行写循环,也挺好用的,有的也可以用windterm等软件的同步输入。hadoop\zookeeper\kafka都是java写的,也都是apache基金会的开源项目。看了hadoop的视频,感觉其他软件的配置都简单多了,hadoop是真的步骤多。hadoop的namenode有点像k8s的etcd。

2024-11-13 22:04:50 285

原创 python基础大杂烩

那么像运维过程中,代码执行后的返回值,一般就设置为,执行ok的话,就是返回值是0,如果有报错的话,返回值就是1。return返回值的目的,是为了再次使用它,如果不用return,而用print,就不能再使用了。如果文件不大,可以用for循环,因为for循环是先把这个文件的数据拉到内存中的。不同对象的属性,可能各不相同,就是各个对象是独立的个体,每个对象有自己的样子。len()函数,是统计队列的长度,这个队列包括列表的元素和字符串中的字符。时间的比较,可以用格式化时间的格式比较,也可以用时间戳的格式比较。

2024-11-13 22:03:15 1102

原创 k8s集群安装

harbor支持镜像复制,负载均衡,分布式多台harbor,镜像同步复制,还可以负载均衡官方对于k8s的部署方式,推荐容器化部署官方把服务做成镜像,下载镜像、启动即可用官方工具kubeadm部署官方为了部署方便,还专门编写了一个kubeadm的集群管理工具在集群中,用kubeadm进行配置管理和部署kubeadm 用来初始化集群的指令kubectl 用来与集群通信的命令行工具kubelet 在集群的每个节点上,用来启动pod和容器等离线部署用本地容器镜像部署。

2024-10-20 11:30:35 1210

原创 关于k8s中,存储卷的使用

PV 持久卷和普通的 Volume 一样, 也是使用卷插件来实现的,只是它们拥有独立于任何使用 PV 的 Pod 的生命周期。尽管 PersistentVolumeClaim 允许用户消耗抽象的存储资源, 常见的情况是针对不同的问题用户需要的是具有不同属性(如,性能)的 PersistentVolume 卷。参见基于运行示例的详细演练。k8s的主要作用在于,docker产生了如此多的既有隔离性,又有算力的容器,对于其的自动化管理。所以,k8s在初步了解的时候,管理员接触到的信息是,容器编排管理工具。

2024-10-18 00:45:31 1234

原创 k8s和ipvs、lvs、ipvsadm,iptables,底层梳理,具体是如何实现的

(这里说一下,常用的snat源地址网络地址转换,内网机器上外网就是在这个点做改变,把数据包的源ip,本来是内网ip,出站的时候改成公网ip,就可以访问公网服务了,这个操作,的点,就是在内核模块netfilter的postrouting这个点上来执行的,具体操作方式是netfilter内核模块的提供的命令行工具iptables,然后在命令行设置规则,netfilter在内核层面就是运用这些规则)总结的是,iptables调用netfilter模块,可以实现流量更精细的控制,等于说,功能多。

2024-10-16 18:26:00 2417

原创 关于k8s集群高可用性的探究

你可以设置 HA 集群:使用堆叠(stacked)控制平面节点,其中 etcd 节点与控制平面节点共存 使用外部 etcd 节点,其中 etcd 在与控制平面不同的节点上运行 在设置 HA 集群之前,你应该仔细考虑每种拓扑的优缺点。堆叠(Stacked)etcd 拓扑 堆叠(Stacked)HA 集群是一种这样的拓扑, 其中 etcd 分布式数据存储集群堆叠在 kubeadm 管理的控制平面节点上,作为控制平面的一个组件运行。因此,你应该为 HA 集群运行至少三个堆叠的控制平面节点。

2024-10-16 02:07:53 1185

原创 git版本控制软件,操作方法

比如.vimrc设置用户的vim编辑器的,.ssh设置用户的远程连接和被连接的情况的,这里的.gitconfig里面就放的是git软件所使用的用户的信息,邮箱和用户名。创建一个readme.txt文件之后,就用git status能看到提示有untracked files: readme.txt了,提示用git add提交。要先把要放到本地仓库的文件,先放到暂存区,暂存区就是一个索引文件,这个索引文件看不着也摸不到。git reflog 查看所有的版本,可以从回滚的版本,再跑到新的版本中。

2024-10-14 11:18:37 981

原创 k8s、prometheus、grafana数据采集和展示的链路流程

对于k8s节点和pod的性能和资源使用情况的监控,常用prometheus和grafana的组合来实现。metrics server监控组件定期从kubelet获取这些数据,转换成k8s API可以识别的格式。每个节点,包括master节点,都有一个kubelet组件,cAdvisor程序是kubelet组件的一部分。容器级别的数据采集是由cAdvisor程序实现。kukelet负责管理pod和容器的生命周期。kubelet负责汇总出节点级别的数据。cAdvisor采集容器级别的数据。

2024-10-10 00:41:56 1268

空空如也

空空如也

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

TA关注的人

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