CentOS集群搭建怎么操作_CentOS高可用集群配置方法

CentOS高可用集群核心组件包括Corosync、Pacemaker、STONITH、共享存储和资源代理;通过Corosync实现节点通信与心跳检测,Pacemaker调度服务资源,STONITH防止脑裂,共享存储保障数据一致,资源代理管理具体服务,结合pcs工具进行配置与监控,确保服务自动切换与业务持续可用。

centos集群搭建怎么操作_centos高可用集群配置方法

搭建CentOS高可用集群,核心思路是利用Corosync进行节点间通信和心跳检测,再由Pacemaker作为资源管理器来调度服务,并辅以共享存储和至关重要的Fencing(故障隔离)机制,确保在任何一个节点失效时,服务能自动且平滑地切换到其他健康节点上,从而实现业务的持续可用。

解决方案

说实话,搞定一个CentOS高可用集群,过程可能有点繁琐,但只要理清思路,一步步来,也没想象中那么难。我个人觉得,最关键的是前期规划和对Fencing机制的理解。

首先,得把所有参与集群的节点都准备好。这包括:

操作系统安装:CentOS 7或8都行,确保系统是最小化安装,减少不必要的服务。

网络配置:每个节点至少两张网卡,一张用于业务,一张专用于集群心跳通信(虽然Corosync可以跑在单网卡上,但冗余才是王道)。确保IP地址、子网掩码、网关都配置正确,并且节点间可以互相ping通。

主机名解析:修改

/etc/hosts

文件,把所有集群节点的主机名和IP地址都写进去,确保每个节点都能通过主机名解析到其他节点。这比依赖DNS更直接,也更可靠。

时间同步:NTP服务是必须的,集群节点间的时间必须高度一致,否则会引发各种奇奇怪怪的问题,比如日志时间错乱,甚至集群状态判断失误。

禁用SELinux和Firewalld:这俩货在集群搭建初期是出了名的“拦路虎”。暂时禁用它们能省去很多不必要的麻烦。等集群跑起来了,再根据需要逐步开启并配置规则。

# 禁用SELinuxsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# 禁用Firewalldsystemctl stop firewalldsystemctl disable firewalld

接下来是核心组件的安装和配置:

共享存储:高可用集群的数据一致性依赖于共享存储。常见的有iSCSI、NFS、GFS2或者DRBD。iSCSI相对简单,这里以它为例,假设你已经配置了一个iSCSI Target,并在所有集群节点上都挂载了相同的LUN。

# 在所有节点上安装iSCSI客户端yum install -y iscsi-initiator-utils# 发现并登录iSCSI Target (假设Target IP是192.168.1.100)iscsiadm -m discovery -t st -p 192.168.1.100iscsiadm -m node -L all# 格式化并挂载(只在一个节点上操作,然后其他节点只挂载)# mkfs.ext4 /dev/sdb # 假设LUN被识别为/dev/sdb# mount /dev/sdb /mnt/shared # 挂载到共享目录# 记得配置fstab自动挂载,但对于集群资源,通常由Pacemaker管理挂载点

安装Pacemaker和Corosync

yum install -y pacemaker corosync pcs resource-agents fence-agents

pcs

是管理Pacemaker/Corosync集群的命令行工具,

resource-agents

包含了各种服务的资源代理脚本,

fence-agents

则是Fencing机制所需的代理。

设置hacluster用户密码

pcs

命令需要

hacluster

用户进行认证。

echo "your_password" | passwd --stdin hacluster

在所有节点上都执行。

授权并建立集群

# 在任意一个节点上执行pcs cluster auth node1 node2 -u hacluster -p your_password --force# node1, node2 是你的集群节点主机名# 创建集群 (集群名称可自定义)pcs cluster setup my_ha_cluster node1 node2# 启动集群pcs cluster start --all# 检查集群状态pcs status

如果一切顺利,你会看到集群状态正常,所有节点都处于online状态。

配置Fencing (STONITH):这是防止“脑裂”(Split-Brain)的关键。没有Fencing的集群,就如同没有安全带的汽车。Fencing的目的是在某个节点发生故障时,强制将其隔离,确保它不再访问共享资源,避免数据损坏。配置STONITH设备取决于你的环境。如果是虚拟机,可以使用

fence_xvm

;物理机则常用

fence_ipmilan

(通过IPMI接口硬关机)。这里以一个通用的虚拟设备为例,实际生产环境需要配置真实的Fencing设备。

# 禁用STONITH(不推荐,仅用于测试理解)# pcs property set stonith-enabled=false# 启用STONITHpcs property set stonith-enabled=true# 添加一个Fencing设备 (例如,一个虚拟的,生产环境请替换为真实设备)# 假设你有一个支持IPMI的服务器,IPMI地址是192.168.1.200pcs stonith create fence_device_node1 fence_ipmilan ipaddr=192.168.1.200 login=admin passwd=password pcmk_host_list=node1pcs stonith create fence_device_node2 fence_ipmilan ipaddr=192.168.1.201 login=admin passwd=password pcmk_host_list=node2# 注意:这里的pcmk_host_list是指定该Fencing设备可以对哪个主机进行操作

添加集群资源:现在集群框架搭好了,可以把服务(资源)放进去了。比如,一个虚拟IP地址(VIP)和一个Apache Web服务。

集简云 集简云

软件集成平台,快速建立企业自动化与智能化

集简云 22 查看详情 集简云

# 创建虚拟IP资源pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=10s# 创建Apache Web服务资源pcs resource create web_server ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=20s# 将VIP和Web服务绑定到一起,确保它们在同一个节点上运行pcs constraint colocation add virtual_ip with web_server INFINITY# 定义启动顺序,确保VIP先启动,Web服务后启动pcs constraint order virtual_ip then web_server

检查资源状态:

pcs status resources

测试:这是最关键的一步。尝试手动关闭一个节点,观察服务是否能自动漂移到另一个节点。

# 在node1上模拟故障(比如直接关机)# systemctl stop pacemaker corosync # 模拟软件故障# 或者直接 reboot / poweroff

观察

pcs status

的输出,看VIP和Web服务是否已经成功在node2上运行。

CentOS高可用集群的核心组件有哪些?

在我看来,构建一个稳定可靠的CentOS高可用集群,离不开以下几个核心组件,它们各司其职,共同构筑起服务的“不倒翁”:

Corosync (集群通信层):这是集群的心脏和神经系统。它负责节点间的通信、心跳检测、成员管理和消息传递。说白了,就是让集群里的所有机器知道“我们是一个团队”,并且能实时感知到其他队友的“健康状况”。如果某个节点的心跳停了,Corosync就会通知Pacemaker,然后Pacemaker才能采取行动。它的配置相对简单,主要定义了集群的IP地址、端口和成员列表。

Pacemaker (集群资源管理器):如果说Corosync是集群的感知层,那Pacemaker就是集群的大脑和决策者。它根据Corosync提供的信息,结合预设的资源配置和策略,决定哪些服务(资源)应该运行在哪个节点上。当节点发生故障时,Pacemaker会根据资源约束(比如哪些资源必须在一起,哪些必须分开,启动顺序等)来重新调度资源到健康的节点上。它支持各种复杂的资源类型,从IP地址、文件系统到数据库、Web服务,几乎无所不包。

STONITH (Shoot The Other Node In The Head – 故障隔离机制):这个名字听起来有点暴力,但它却是高可用集群中不可或缺的“保命符”,也是避免“脑裂”的唯一有效手段。STONITH的目的是,当集群判断某个节点发生故障时,强制将其从集群中移除,通常是通过远程电源控制(比如IPMI、ILO、DRAC)或虚拟机管理接口(如virsh)直接将其断电或重启,确保故障节点无法再访问共享存储或提供服务,从而避免数据损坏和资源争抢。没有STONITH的集群,在高可用性方面几乎是形同虚设。

共享存储:这是集群数据一致性的基石。无论是iSCSI、NFS、GFS2还是DRBD,其核心目标都是确保所有集群节点都能访问到同一份数据。当服务从一个节点漂移到另一个节点时,新的节点能够立即接管并访问到最新的数据。选择哪种共享存储,取决于你的具体需求、预算和性能考量。我个人觉得,对于大多数中小规模应用,iSCSI或NFS已经足够应对。

资源代理 (Resource Agents):这些是Pacemaker用来管理各种具体服务的脚本。它们定义了如何启动、停止、监控某个服务(比如Apache、MySQL、虚拟IP等)。Pacemaker通过调用这些代理脚本来执行操作。有了这些代理,Pacemaker就能以标准化的方式管理各种异构的服务,大大简化了集群的配置和管理。

如何有效避免CentOS高可用集群的“脑裂”问题?

“脑裂”(Split-Brain)是高可用集群中最致命的问题之一,也是我个人在实践中遇到过最头疼的挑战。简单来说,脑裂就是当集群中的通信链路出现故障时,两个或多个节点都误以为其他节点已经失效,从而各自独立地启动服务,甚至同时尝试写入共享存储,这会导致数据严重不一致,甚至数据损坏。

避免脑裂的唯一有效且可靠的方案就是强制性的Fencing(STONITH)机制。除此之外,没有其他任何纯软件的手段能够100%保证避免脑裂。

具体来说,如何避免:

理解STONITH的必要性:当集群的某个节点无法响应心跳时,Pacemaker并不能直接判断它是真的宕机了,还是仅仅是网络暂时中断了。如果没有Fencing,Pacemaker可能会让另一个节点启动服务,而那个“假死”的节点可能在网络恢复后也继续运行服务,这就是脑裂的根源。STONITH的作用,就是在Pacemaker决定让另一个节点接管服务之前,强制将故障节点“杀死”,确保它彻底停止服务,从而消除脑裂的可能性。它就像一个“执行者”,确保任何时候只有一个节点拥有对共享资源的独占访问权。

正确配置STONITH设备:STONITH设备的类型多种多样,选择适合你环境的设备至关重要。

IPMI/ILO/DRAC:对于物理服务器,这是最常用也是最可靠的方式。通过服务器的带外管理接口,可以直接控制电源开关,实现硬关机。虚拟化平台API:对于虚拟机,可以通过Hypervisor的API(如VMware vCenter、OpenStack Nova、KVM的virsh等)直接关闭或重启虚拟机。存储设备Fencing:有些高端存储设备支持Fencing功能,可以直接隔离故障节点对存储的访问。配置时,需要为每个节点配置一个或多个STONITH设备,并且确保每个设备都有权限操作对应的节点。例如,使用

fence_ipmilan

时,需要提供IPMI的IP地址、用户名和密码。

# 示例:为node1配置一个IPMI Fencing设备pcs stonith create fence_node1 fence_ipmilan ipaddr=192.168.1.200 login=admin passwd=your_ipmi_password pcmk_host_list=node1# pcmk_host_list 指定这个Fencing设备是用来隔离哪个集群节点的

务必测试Fencing设备是否能正常工作。尝试手动触发一个节点的Fencing,看它是否能被强制关机。

Quorum(法定人数)机制:Corosync引入了Quorum的概念,即集群必须有超过半数的节点处于在线状态,才能被认为是“健康”的,才能执行资源操作。如果集群中的在线节点数量低于Quorum,整个集群可能会进入“停滞”状态,不再执行任何资源操作,等待足够多的节点恢复。这在一定程度上也能防止脑裂,因为如果通信中断导致集群分裂成两部分,只有拥有Quorum的那部分才能继续运行服务,另一部分则会自行停止。然而,Quorum并不能完全替代STONITH,它只是一个“自保”机制,STONITH才是“杀伐决断”的机制。默认情况下,

pcs

会开启Quorum。你可以通过

pcs property show | grep quorum-policy

查看。

冗余的心跳网络:虽然这不是直接的脑裂解决方案,但一个稳定、冗余的心跳网络能大大降低通信中断的风险,从而减少脑裂发生的可能性。建议使用独立的网卡或VLAN来承载Corosync的心跳流量。

总的来说,要避免CentOS高可用集群的脑裂,核心就是始终确保STONITH机制的有效性。这是集群稳定运行的最后一道防线。

在CentOS集群中,如何高效管理和监控集群资源?

管理和监控集群资源,是确保高可用集群长期稳定运行的关键。这不仅仅是配置一次就完事儿,日常的维护和故障排查同样重要。

使用

pcs

命令行工具进行日常管理

pcs

是Pacemaker和Corosync的官方命令行接口,功能强大且直观。我个人觉得,掌握

pcs

是管理CentOS高可用集群最基本也是最重要的技能。

查看集群状态

pcs status

可以快速了解集群的整体健康状况、节点状态、资源状态等。查看资源详情

pcs resource show

pcs resource show 

可以查看特定资源的详细配置和当前状态。添加/删除资源

pcs resource create

pcs resource delete

用于管理集群中的服务。修改资源配置

pcs resource update  =

可以动态调整资源的参数。管理约束

pcs constraint

系列命令用于添加、删除、查看资源间的各种约束(协同、顺序、位置等),这些约束是Pacemaker调度资源的核心依据。节点维护

pcs node standby 

可以将某个节点置于维护模式,让资源自动漂移走,方便进行系统升级或维护。

pcs node unstandby 

则让节点重新加入调度。

利用Pacemaker的资源代理 (Resource Agents):Pacemaker通过资源代理来管理各种服务。这些代理脚本通常位于

/usr/lib/ocf/resource.d/heartbeat/

目录下。

标准化操作:每个资源代理都提供

start

stop

monitor

meta

等标准操作,Pacemaker通过调用这些操作来管理服务。服务兼容性:Pacemaker提供了大量预定义的资源代理,涵盖了常见的服务,如IP地址(IPaddr2)、文件系统(Filesystem)、Apache(apache)、MySQL(mysql)等。这大大简化了将现有服务集成到集群中的工作。自定义代理:如果你的服务没有现成的资源代理,也可以编写自定义的shell脚本或Python脚本,遵循OCF(Open Cluster Framework)标准,作为自定义资源代理集成到Pacemaker中。

日志分析:当集群出现问题时,日志是排查故障的第一手资料。

/var/log/messages

:系统级别的日志,包含了Corosync和Pacemaker的事件信息。

/var/log/cluster/corosync.log

:Corosync的专用日志,记录了心跳、成员变化等集群通信相关的信息。

/var/log/pacemaker.log

:Pacemaker的专用日志,记录了资源调度、Fencing操作等详细事件。通过

journalctl -f

tail -f

命令实时查看日志,可以帮助你快速定位问题。

集成到现有监控系统:虽然

pcs status

能提供实时的集群状态,但对于长期的趋势分析和预警,集成到专业的监控系统(如Zabbix、Prometheus、Grafana)是更好的选择。

Zabbix:可以通过编写自定义的Zabbix Agent脚本,定期执行

pcs status

并解析输出,将集群状态、资源状态、节点健康度等数据发送给Zabbix Server。Prometheus:可以使用

textfile_exporter

或自定义

node_exporter

模块,将

pcs status

的输出转换成Prometheus可识别的指标,然后通过Grafana进行可视化展示。通过监控,可以及时发现潜在问题,如资源漂移失败、Fencing设备异常、节点通信延迟等,从而在问题影响业务之前进行干预。

通过上述管理和监控手段的结合,可以确保CentOS高可用集群不仅能够稳定运行,而且在出现问题时能够快速定位、解决,保障业务的连续性。

以上就是CentOS集群搭建怎么操作_CentOS高可用集群配置方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/564397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
苹果Apple Music 2024年度听歌报告上线,可在App内查看分享
上一篇 2025年11月10日 02:35:19
javascript怎么跳出循环
下一篇 2025年11月10日 02:35:32

相关推荐

  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • Matplotlib 地图中多类型图例的创建与优化

    Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化

    本教程旨在解决matplotlib地图可视化中,如何在一个图例中同时展示颜色块(如区域分类)和自定义标记(如特定兴趣点)的问题。文章详细介绍了当传统`patch`对象无法正确显示标记时,如何利用`matplotlib.lines.line2d`创建标记图例句柄,并将其与颜色块图例句柄合并,从而生成一…

    2026年5月10日 用户投稿
    100
  • Golang JSON序列化:控制敏感字段暴露的最佳实践

    本教程探讨golang中如何高效控制结构体字段在json序列化时的可见性。当需要将包含敏感信息的结构体数组转换为json响应时,通过利用`encoding/json`包提供的结构体标签,特别是`json:”-“`,可以轻松实现对特定字段的忽略,从而避免敏感数据泄露,确保api…

    2026年5月10日
    000
  • 利用海象运算符简化条件赋值:Python教程与最佳实践

    本文旨在探讨Python中海象运算符(:=)在条件赋值场景下的应用。通过对比传统if/else语句与海象运算符,以及条件表达式,分析海象运算符在简化代码、提高可读性方面的优势与局限性。并通过具体示例,展示如何在列表推导式等场景下合理使用海象运算符,同时强调其潜在的复杂性及替代方案,帮助开发者更好地掌…

    2026年5月10日
    100
  • 怎么在PHP代码中实现图片上传功能_PHP图片上传功能实现与安全处理教程

    首先创建含enctype的HTML表单,再用PHP接收文件,检查目录、移动临时文件,验证类型与大小,生成唯一文件名,并调整php.ini限制以确保上传成功。 如果您尝试在PHP项目中添加图片上传功能,但服务器无法正确接收或保存文件,则可能是由于表单配置、文件处理逻辑或安全限制的问题。以下是实现该功能…

    2026年5月10日
    100
  • RichHandler与Rich Progress集成:解决显示冲突的教程

    在使用rich库的`richhandler`进行日志输出并同时使用`progress`组件时,可能会遇到显示错乱或溢出问题。这通常是由于为`richhandler`和`progress`分别创建了独立的`console`实例导致的。解决方案是确保日志处理器和进度条组件共享同一个`console`实例…

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 《魔兽世界》将于6月11日开启国服回归技术测试

    《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试

    《%ign%ignore_a_1%re_a_1%》官方宣布,将于6月11日开启国服回归技术测试,时间为7天,并称可以在6月内正式开服,玩家们可以访问官网下载战网客户端并预下载“巫妖王之怒”客户端,技术测试详情见下图。 WordAi WordAI是一个AI驱动的内容重写平台 53 查看详情 以上就是《…

    2026年5月10日 用户投稿
    200
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    100
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • Python递归函数追踪与性能考量:以序列打印为例

    本文深入探讨了Python中一种递归打印序列元素的方法,并着重演示了如何通过引入缩进参数来有效追踪递归函数的执行流程和参数变化。通过实际代码示例,文章揭示了递归调用可能带来的潜在性能开销,特别是对调用栈空间的需求,以及Python默认递归深度限制可能导致的错误,为读者提供了理解和优化递归算法的实用见…

    2026年5月10日
    000
  • python中zip函数详解 python多序列压缩zip函数应用场景

    zip函数的应用场景包括:1) 同时遍历多个序列,2) 合并多个列表的数据,3) 数据分析和科学计算中的元素运算,4) 处理csv文件,5) 性能优化。zip函数是一个强大的工具,能够简化代码并提高处理多个序列时的效率。 在Python中,zip函数是一个非常有用的工具,它能够将多个可迭代对象打包成…

    2026年5月10日
    000
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    100
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • Python中怎样使用pymongo?

    在python中使用pymongo可以轻松地与mongodb数据库进行交互。1)安装pymongo:pip install pymongo。2)连接到mongodb:from pymongo import mongoclient; client = mongoclient(‘mongod…

    2026年5月10日
    000
  • MySQL数据库不支持中文的解决办法

    接上一篇文章,在解决了mysql+flask环境配置问题之后,往数据库存中文字符串会报1366错误,提示不正确的字符。继而发现默认的mysql采用了latin1字符集,这种编码是不支持中文的。 如果想支持中文的话,需要设置一下mysql字符集。 众所周知utf-8是可以的,gbk也没问题,为了可扩展…

    用户投稿 2026年5月10日
    000
  • Python 函数参数类型:如何使用可变参数和动态参数?

    python 中的参数类型:关键词参数、可变参数和动态参数 在 python 中,函数的参数可以分为以下几种类型: 关键词参数(kw)**:这些参数具有名称,并且在调用函数时明确指定。可变参数(*args):这些参数没有名称,允许函数接受任意数量的位置参数。它们将被收集到一个元组中。动态参数(kwa…

    2026年5月10日
    000
  • JavaScript 高效判断页面所有复选框状态的技巧与实践

    本文旨在提供一套高效且专业的javascript方法,用于判断网页中所有复选框的选中状态。我们将探讨如何利用`array.some()`快速确定是否有未选中的复选框(进而判断是否全部选中),以及如何使用`array.filter()`统计选中和未选中的复选框数量。通过优化dom元素选择和数组操作,提…

    2026年5月10日
    000
  • pycharm解析器怎么添加 解析器添加详细流程

    在pycharm中添加解析器的步骤包括:1) 打开pycharm并进入设置,2) 选择project interpreter,3) 点击齿轮图标并选择add,4) 选择解析器类型并配置路径,5) 点击ok完成添加。添加解析器后,选择合适的类型和版本,配置环境变量,并利用解析器的功能提高开发效率。 在…

    2026年5月10日
    000
  • python中numpy的用法

    NumPy是Python中用于科学计算的强大库,它提供了以下功能:多维数组处理矩阵运算快速傅里叶变换(FFT)线性代数随机数生成 NumPy在Python中的强大功能 NumPy是Python中用于科学计算的一个强大且灵活的库。它提供了用于处理多维数组和矩阵的一组高效工具,是数据分析和机器学习项目的…

    2026年5月10日
    100

发表回复

登录后才能评论
关注微信