- 博客(36)
- 收藏
- 关注
原创 Hive的架构
语言(HiveQL)将结构化数据映射为 Hadoop 的 MapReduce、Tez 或 Spark 任务,适合离线批处理,尤其适用于数据仓库场景(如 ETL、报表生成)。2.外部表(External Table):数据存储在 HDFS 的指定路径,删除表仅删除元数据,保留数据。支持多种引擎:MapReduce(默认)、Tez(优化 DAG 执行)、Spark(内存计算)。:按列值(如日期)将数据划分到不同目录,提升查询效率(如分区裁剪)。Metastore:独立服务,管理元数据,支持高并发访问。
2025-03-10 00:01:38
493
原创 HDFS的设计架构
NameNode 是单点故障(SPOF),因此通常需要配置高可用性(HA)方案,如使用双 NameNode(Active-Standby)。主要职责:定期合并 NameNode 的编辑日志(EditLog)和文件系统镜像(FsImage),减少 NameNode 的启动时间。3. 客户端将数据块写入第一个 DataNode,第一个 DataNode 将数据复制到第二个 DataNode,依此类推。当某个 DataNode 故障或数据块损坏时,NameNode 会检测到并触发数据块的复制操作,确保数据冗余。
2025-03-06 23:39:57
689
原创 MySQL为什么InnoDB是默认引擎?InnoDB与MyISAM的区别?
聚簇索引的文件存放在主键索引的叶子节点上,因此InnoDB必须要有主键,通过主键索引效率很高。而MyISAM是非聚簇索引,数据文件是分离的,索引保存的是数据文件的指针。:InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。MyISAM存储引擎是不支持事务的。InnoDB支持事务,MyISAM不支持事务,这是MySQL将默认存储引擎从MyISAM变成InnoDB的重要原因之一。InnoDB引擎采用了行级锁定的机制,可以提供更好的并发性能,MyISAM存储引擎只支持表锁,锁的粒度比较大。
2025-03-05 16:18:52
336
原创 MySQL的性能监控
默认情况下,慢查询日志是关闭的,可以在MySQL配置文件(如`my.cnf`或`my.ini`)中进行配置,如`slow_query_log = 1`开启慢查询日志,`long_query_time = 2`表示将执行时间超过2秒的查询记录到慢查询日志中。通过分析慢查询日志,可以找出执行效率低下的查询语句,进而进行优化。可以查看网络连接状态和网络统计信息,用于监控MySQL的网络连接情况,如查看MySQL服务器的端口监听状态、连接到MySQL服务器的客户端IP地址等,帮助排查网络相关的性能问题。
2025-03-05 12:06:50
932
原创 MySQL的安装和配置
下载MySQL Linux 软件包后,使用以下命令安装:以正确的顺序安装MySQL 包例如,在安装client或server之前先要安装libs包。
2025-03-05 11:34:13
463
原创 SQL基础语法
SQL的用法包括以下几个方面:使用SQL可以创建和删除数据库。创建数据库的语法如下:删除数据库的语法如下:2.表的创建和删除使用SQL可以创建和删除表。创建表的语法如下:删除表的语法如下:3.数据的插入、更新和删除使用SQL可以插入、更新和删除数据。插入数据的语法如下:更新数据的语法如下:删除数据的语法如下:4.数据的查询使用SQL可以查询数据。查询数据的语法如下:5.数据的过滤、排序、分组和聚合使用SQL可以对数据进行过滤、排序
2025-03-05 10:39:11
257
原创 什么是SElinux?
旨在通过细粒度的权限管理增强系统安全性。它与传统的基于用户/组的权限(自主访问控制,DAC)互补,提供更严格的资源保护。防止配置错误导致的安全风险(如 Web 服务器被黑后无法随意读写系统文件)。防御零日漏洞和提权攻击(即使进程被入侵,其权限仍受策略限制)。,控制进程(主体)能否访问对象(如文件、网络端口)。满足高安全场景的合规要求(如政府、金融系统)。,与防火墙(如 iptables)互补。:仅记录违规行为,不阻止(用于调试)。:完全关闭 SELinux(不推荐)。:强制执行策略,拒绝违规操作。
2025-03-04 22:04:56
1055
原创 Kubernetes创建Pod 的主要流程和Pod重启策略
(1)Pod 重启策略(RestartPolicy)应用于 Pod 内的所有容器,并且仅在 Pod 所处的 Node 上由 kubelet 进行判断和重启操作。(4)Scheduler 同样通过 apiserver 的 watch 接口更新到 Pod 可以被调度,通过算法给 Pod 分配节点,并将 pod 和对应节点绑定的信息交给 apiserver,apiserver 写到 etcd,然后将 Pod 交给 kubelet。① Always:当容器失效时,由 kubelet 自动重启该容器;
2025-03-04 21:56:40
365
原创 Kubernetes的探针以及常见调度方式
① requiredDuringSchedulinglgnoredDuringExecution:硬规则,必须满足指定的规则,调度器才可以调度 Pod 至 Node 上(类似 nodeSelector,语法不同);定向调度,当需要手动指定将 Pod 调度到特定 Node 上,可以通过 Node 的标签(Label)和 Pod 的 nodeSelector 属性相匹配。(2)TCPSocketAction:通过容器的IP地址和端口号执行 TCP 检查,若能建立 TCP 连接,则表明容器健康。
2025-03-04 21:52:54
277
原创 Kubernetes中的HeadlessService
服务选择器(Selector)存在时:当HeadlessService定义了selector时,Kubernetes控制平面会根据selector筛选出匹配的Pod,并为这些Pod创建对应的DNSA记录。在这个示例中,创建了一个名为myheadlessservice的HeadlessService,它会筛选出带有app:myapp标签的Pod,并将客户端对端口80的请求转发到这些Pod的8080端口。普通Service会有一个虚拟的集群IP,客户端通过访问这个集群IP来间接访问后端的Pod。
2025-03-02 18:16:37
513
原创 什么是kube-proxy?
kube-proxy是Kubernetes集群中一个关键的组件,主要负责实现Kubernetes服务(Service)的网络代理和负载均衡功能。kube-proxy是一个运行在每个Kubernetes节点上的守护进程。它监听KubernetesAPI服务器中关于服务(Service)和端点(Endpoints)的变化,并根据这些信息来配置节点上的网络规则,确保集群内的网络流量能够正确地路由到相应的Pod上。
2025-03-02 17:58:57
492
原创 Kubernets Daemonset是什么?如何创建daemonset?
DaemonSet 会在每个节点上创建一个 Pod,Pod 的标签为 name: testpod。DaemonSet 会在每个节点上部署一个 Pod 副本。如果新节点加入集群,DaemonSet 会自动在新节点上创建 Pod;列出集群中所有的 DaemonSet,确认 test-demonset是否创建成功。- DaemonSet 则确保每个节点上都运行一个 Pod,适合。在每个节点上运行日志收集器(如 Fluentd、Filebeat)。在每个节点上运行存储守护进程(如 GlusterFS、Ceph)。
2025-03-02 17:12:15
375
原创 使用 Kubectl 管理 Kubernetes Deployment 的滚动更新与回滚
将名为 `nginx-deployment` 的 Deployment 中名为 `nginx` 的容器镜像更新到 `nginx:1.161` 版本。这条命令会将 `nginx-deployment` 回滚到 Revision 2 的状态。它会创建一个新的 ReplicaSet,并使用新镜像启动 Pod,同时逐步终止旧 Pod,以确保服务不中断。通过以上命令和流程,可以轻松管理 Kubernetes 中应用的版本更新与回滚,确保服务的稳定性和可靠性。这条命令会显示更新的实时进度,直到更新完成或超时。
2025-03-02 16:57:48
779
原创 Kubernetes 节点清空
子命令自身实际上不清空节点上的 DaemonSet Pod 集合: DaemonSet 控制器(作为控制平面的一部分)会立即用新的等效 Pod 替换缺少的 Pod。DaemonSet 控制器还会创建忽略不可调度污点的 Pod,这种污点允许在你正在清空的节点上启动新的 Pod。一旦它返回(没有报错), 你就可以下线此节点(或者等价地,如果在云平台上,删除支持该节点的虚拟机)。这些操作可能由集群管理员直接执行,也可能由集群管理员所使用的自动化工具执行,或者由集群托管提供商自动执行。
2024-10-14 20:31:21
342
原创 LINUX---shell变量(或bash变量)和环境变量的区别
Shell 变量是特定于当前 shell 会话的变量。:仅在当前 shell 会话中有效。如果你打开了多个终端窗口,每个窗口都有自己的一组 shell 变量,彼此独立。:随着 shell 会话的结束而消失,不会传递给其他 shell 会话。:用于在命令行中暂时存储数据,如临时变量或用于脚本中的数据。:可以直接在命令行中设置,或通过脚本进行设置。环境变量是可以在整个操作系统中被不同程序和进程共享的变量。:在整个操作系统中都可见,供不同的程序和进程使用。:在操作系统中持续存在,直到系统重启或手动删除。
2024-10-14 09:49:45
805
原创 Kubernetes RBAC--基于角色的访问控制
在 Kubernetes 中,RBAC(基于角色的访问控制)用于管理对 Kubernetes API 资源的访问权限。它通过定义角色和角色绑定来控制用户和服务账户可以执行的操作。
2024-10-13 20:37:34
485
原创 Kubernetes ETCD的恢复与备份
ETCD 还用于存储和管理 Kubernetes 集群的配置数据,包括网络配置、存储配置等,确保集群能够根据最新的配置进行调整和优化。使用 Raft 一致性算法来确保数据的一致性和高可用性,这使得它可以用于实现分布式锁和协调机制,确保在多节点环境下的操作一致性。当集群中的某个节点发生故障时,ETCD 中存储的数据可以用于快速恢复该节点的功能。将现有的 Kubernetes 配置和 ETCD 数据目录重命名为备份目录,以便在恢复过程中不被覆盖。:在执行这些操作之前,确保备份文件的完整性和可用性。
2024-10-13 20:18:52
821
原创 LINUX--调度未来任务
每隔两分钟将当前日期和时间附加到/home/student/my_first_cron_job.txt文件,使用date命令显示当前日期和时间。作业必须在当前时间的前一天到后一天运行。点之间每两分钟一次输出当前日期和时间,该作业只能在周一到周五运行,周六或周日不能运行。始终在/etc/cron.d/目录中创建自定义的crontab文件来调度周期性系统作业。文件和/etc/cron.d目录中的其他文件定义周期性系统作业。要计划周期性系统作业,应该将自定义的。文件中的用户作业时间格式怎么解释?
2024-09-29 04:30:00
381
原创 NetworkPolicy访问控制
敏感数据保护:对于处理敏感数据的应用,可以使用NetworkPolicy限制对这些Pod的访问,减少数据泄露的风险,特别是一些需要暴露到外网的Pod。东西向流量控制:在云原生和微服务场景下,内部网络的东西向通信流量剧增。NetworkPolicy可以帮助控制这些流量,确保只有授权的流量可以通过。微服务架构:在微服务架构中,不同的服务通常部署在不同的Pod中。基于命名空间的隔离:通过NetworkPolicy,可以基于命名空间的标签来控制网络访问。只允许特定命名空间的Pod访问某些服务。
2024-09-28 20:28:42
572
原创 MYSQL的监控
常规查询日志(General Query Log)记录了MySQL服务器接收到的所有SQL查询和命令,包括连接和断开连接的请求。它详细记录了每个查询的执行时间、用户、主机和执行的SQL语句。慢速查询日志的内容包括执行时间、用户、主机和执行的SQL语句,但只记录那些被认为是“慢”的查询。MySQL Enterprise Monitor提供了多种管理数据库的功能,包括实时监控MySQL查询和性能相关的服务器指标、自动发现和监控MySQL集群和复制拓扑、备份管理、性能趋势分析和报警、以及最佳实践顾问建议。
2024-09-28 11:04:43
1034
原创 在VM虚拟机上进行磁盘扩容
将/dev/mapper/ol-root从100G扩容到105G。初始状态的/dev/mapper/ol-root分配了100G。在VM上新增一个5G的物理硬盘。
2024-09-28 07:45:00
273
原创 如何理解MYSQL的体系结构
回滚段用于事务回滚和恢复;MySQL 将处理数据行的任务委托给这些存储引擎,这些引擎将数据存储在磁盘、内存中,或将其发送到网络上的其他组件,提供索引和其他行优化。MySQL 8.0在管理元数据方面与之前的版本有显著区别,最主要的变化是引入了一个内置的事务性数据字典,而在早期版本如MySQL 5.7中,元数据是存储在多个文件和非事务性表中的,这一改进提高了数据的一致性和完整性。通用表空间则是一个可以存储多个表的共享表空间,减少了大量数据删除时的文件系统开销,适用于需要灵活管理多个表和优化存储空间的场景。
2024-09-27 21:00:00
662
原创 MYSQL的安装和升级
mysql.server用于启动和停止MySQL服务器的脚本,通常位于/etc/init.d/mysql在调用mysql.server脚本时,它会调用mysqld_safe脚本来启动MySQL服务器。通过在配置文件中定义多个[mysqldN]配置组,mysqld_multi可以在同一台服务器上同时运行多个MySQL实例,每个实例可以有不同的配置和数据目录。8. 请说出常用的客户机程序mysqladmin、mysqldump、mysqlslap、mysqlshow、mysqlcheck的用途。
2024-09-27 16:29:10
980
原创 LINUX ---访问Linux文件系统
块设备通常通过文件系统进行管理,支持高效的数据存储和检索,每个数据块都有自己的地址。组织文件和目录,并提供了对这些数据进行读取、写入和删除等操作的接口。Linux文件系统采用了一种统一的方式来组织数据,并将其保存在不同的存储设备中,使得文件和目录可以方便地被访问和管理。:df显示本地和远程文件系统设备的使用情况,其中包括总磁盘空间、已用磁盘空间、可用磁盘空间和磁盘空间占比。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。然后将分区挂载到文件系统中。
2024-08-31 15:50:18
726
原创 LINUX---安装和更新软件包
1. 什么是RPM?RPM软件包管理器提供了一种标准的方式来打包软件进行分发。管理员可以跟踪软件包会安装哪些文件,卸载软件时讲删除哪些文件,并且在安装时验证是否存在支持软件包。2. dnf是什么,它和rpm有什么联系和区别?DNF取代 YUM成为红帽企业版软件包管理器。是Red Hat Package Manager,用于安装、升级、删除和验证软件包,但不自动解决依赖关系。YUM是的前端工具,自动解决依赖关系。是YUM的替代品,改进了YUM的一些性能问题,目前在较新的Fedora和RHEL版本中使用。
2024-08-29 19:38:25
419
原创 LINUX---监控和管理Linux进程
1. 如何理解systemd进程?Systemd守护进程管理LINUX的启动过程,一般包括服务启动和服务管理。Systemd可以在系统引导时以及运行中的系统上激活系统资源、服务器进程和其他进程。守护进程是在执行各种任务的后台等待或运行的进程。一般情况下,守护进程在系统引导时自动启动并且持续运行至关机或手动停止。它是第一个启动的进程(PID 1),提供以下功能:1.并行化功能,它可提高系统的启动速度。2.按需启动守护进程,不需要单独的服务。3.自动服务依赖关系管理,可以防止长时间超时。
2024-08-28 14:32:22
1288
原创 LINUX---控制对文件的访问
1. 什么是文件系统权限?它是如何工作的?如何查看文件的权限?文件权限可以控制对文件的访问。通过设置用户权限、组权限、其它权限工作。最具体的权限具有优先权。用户权限覆盖组权限,后者覆盖其他权限。- 是常规文件d 是目录l 是符号链接c 是字符设备文件b 是块设备文件p 是命名管道文件s 是本地套接字文件查看权限:接下来九个字符代表文件权限。
2024-08-27 23:34:49
972
原创 LINUX---从命令行管理文件
符号链接是特殊的文件,它的内容是指向另一个文件的路径(位置信息)。所有的读写命令在涉及符号链接的文件时,将会沿着链接前进找到实际的被链接文件进行修改。区别就是软链接,没有硬链接的限制,可以对目录文件做符号链接,也可以在不同系统之间做符号链接。*c*包含c的字符串;Linux 文件系统采用层次结构,根目录 / 是文件系统的起点,所有其他文件和目录都是从根目录派生出来的,像一棵上下颠倒的树。/usr:安装的软件、共享的库文件、和只读的程序数据。
2024-08-27 14:59:09
443
原创 LINUX---怎么理解I/O重定向
在 shell 脚本中,每个打开的文件都会关联一个文件描述符,标准输入(STDIN)的文件描述符是 0,标准输出(STDOUT)的文件描述符是 1,标准错误(STDERR)的文件描述符是 2。所以,&1 的意思是标准输出的文件描述符。当你看到 2>&1 这样的写法时,它的意思是将标准错误输出重定向到当前的标准输出。此序列将标准错误消息重定向到标准输出的默认位置(终端窗口),然后仅将标准输出重定向到output.txt文件。>>:追加重定向操作符,将命令的输出追加到一个已存在的文件中,而不是覆盖文件的内容。
2024-08-26 11:16:54
178
原创 软件工程十大模型
它鼓励开发人员通过多次迭代和逐步求精的方式,来逐步完善和优化建模工作,从而更好地满足用户需求它通过描述建模活动的交互和协作关系,来促进团队合作和信息共享,从而更好地实现软件开发的协同工作。喷泉模型是一种软件开发过程模型,它与传统的瀑布模型和迭代模型不同,它不是将开发过程划分为阶段,而是认为软件开发是一个不断迭代的过程,每个迭代都包括多个不同的活动,例如需求分析、设计、编码、测试等等。软件需求分析模型是一个迭代的过程,需要不断与用户沟通和协商,以获取用户的反馈和意见,进行需求的调整和修改。
2024-05-24 15:56:15
4956
1
原创 软件体系结构复习3
在Web Service模型的解决方案中,服务提供者定义并实现Web Service,使用服务描述语言(WSDL)描述Web Service,然后将服务描述发布到服务请求者或服务注册中心。(2分)服务注册中心是整个模型中的可选角色,是连接服务提供者和服务请求者的纽带。2.掌握常见的体系结构风格:经典的6种软件体系结构风格(管道/过滤器(与批处理的相同与不同)、数据抽象与面向对象系统、基于事件的系统、分层系统、仓库系统及知识库、C2风格)、C/S与B/S、基于层次消息总线的体系结构风格。
2024-05-22 00:00:54
1243
原创 软件体系结构复习2
软件体系结构是贯穿于软件研发的整个生命周期的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系,软件体系结构的生命周期模型为软件生命周期模型提供了很好的结构依据和参考,也为其构建了很好的开发方式。从结构的角度对整个系统进行分析,选择恰当的构件,构件间的相互作用以及它们之间的约束,最后形成一个系统框架。连接件:表示构件之间的交互,简单的连接件如:管道、过程调用等,更为复杂的交互如:客户/服务器通信协议,数据库和应用之间的SQL连接等。构件有两种:复合构件和原子构件。
2024-05-14 17:05:15
364
1
原创 软件体系结构复习1
软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。它们都涉及到一系列构件的组织和设计,以及这些构件之间的关系。分析的复用:这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。设计的复用:设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少。
2024-05-14 17:00:06
1102
1
原创 银行家算法
银行家算法是一种用于避免系统死锁的资源分配和调度算法。该算法通过模拟资源分配过程,判断系统是否处于安全状态,如果处于安全状态,则允许资源的分配,否则拒绝分配并还原已分配的资源。课设旨在实现一个银行家算法的系统,以解决多进程或多线程系统中的资源分配和调度问题。
2024-05-01 01:32:54
147
原创 LINUX复习
符号链接是特殊的文件,它的内容是指向另一个文件的路径(位置信息)。所有的读写命令在涉及符号链接的文件时,将会沿着链接前进找到实际的被链接文件进行修改。有普通文件,目录文件、链接文件和设备文件。如果您使用的是 VMware 中的虚拟机,可以在虚拟机设置中选择“CD/DVD”硬件,勾选“已连接”和“启动时连接”,然后选择“使用ISO映像文件”,浏览并选择您下载好的 ISO 光盘镜像文件。文件的访问权限有着严格的限制规定,规定用户可以对自己的文件进行权限设置,其他用户只能在权限许可的情况下进行访问。
2024-05-01 01:29:06
418
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人