【Slurm集群在centos7上的搭建】

news2024/11/15 4:40:30

Slurm集群在centos7上的部署

    • 集群基本情况
    • 1. 前期准备工作
    • 2.网络配置
    • 3.NTP时间同步配置
    • 4.NFS共享目录配置
    • 5.NIS用户管理配置
    • 6.Munge通信部署
    • 7.安装Mariadb数据库以及Slurm安装配置
      • 7.1安装配置Mariadb及SlurmID配置
      • 7.2Slurm安装配置
    • 附录
      • 配置文件
        • slurm.conf:
        • slurmdbd.conf:
    • 参考文章:

集群基本情况

集群基本情况如下表所示:

节点名称节点IP节点描述
master192.168.242.130管理节点、存储节点
node1192.168.242.130计算节点
node2192.168.242.130计算节点

系统版本如下所示:

//查询centos版本
cat /etc/redhat-release

1

1. 前期准备工作

1.1更改主机名

vim /etchostname
//删除原有主机名,更改为所需主机名(master node1 ...)
//保存并退出
:wq
//重启主机
reboot

1.2关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

1.3关闭slinux

//查看状态
sestatus 
vim /etc/selinux/config
//将SELINUX=  后面改为disabled
//重启系统
reboot 

2.网络配置

2.1配置IP
查看网络,使用生效的网卡进行配置。

ip a
vim /etc/sysconfig/network-scripts/ifcfg-ens33
//添加内容:将BOOTPROTO="hdpc"修改为BOOTPROTO="static";并在末尾添加
IPADDR=192.168.242.130
NETMASK=255.255.255.0
GATEMASK=192.168.242.2
DNS1=114.114.114.114
//保存并退出
:wq
//重启网络
service network restart
//检查网络通畅性
ping baidu.com

2.2配置hosts

vim /etc/hosts
//添加如下内容
192.168.242.130   master
192.168.242.133   node1
192.168.242.134   node2
//保存并退出
:wq

将hosts的内容拷贝给其他节点

scp -r /etc/hosts root@node1:/etc/
scp -r /etc/hosts root@node2:/etc/

2.3ssh免密配置

ssh-keygen -t rsa 
//一路回车直到生成密钥

发给自己一份密钥

ssh-copy-id -i 192.168.242.130

发给其他节点密钥

ssh-copy-id -i node1
ssh-copy-id -i node2

验证免密是否成功

ssh node1
ssh node2

不用输入密码直接登录到其他主机代表成功

3.NTP时间同步配置

网络时间协议(Network Time Protocol,NTP)是一种用于在计算机系统之间同步时间的协议。通过使用NTP,系统可以从高精度的时间源(如原子钟或GPS系统)获取准确的时间,并在网络中传播这种时间信息,以确保所有设备的时钟保持一致。NTP的重要性在于,它帮助维护系统时间的精确性和一致性,减少由于时间差异引起的各种问题。

在SLURM(Simple Linux Utility for Resource Management,SLURM)环境中,NTP的作用尤为关键。SLURM通过使用NTP来确保所有计算节点的时间同步,使得SLURM可以有效地调度和管理计算资源,准确地记录作业的开始和结束时间,提供精确的作业运行统计数据,并减少由于时间不同步引起的调度错误和资源冲突问题。这对于高效、安全地运行大型计算任务至关重要。

//所有节点安装ntp,并启动其服务
yum -y install ntp
//master对计算节点远程安装
for node in node1 node2; do echo "Installing ntp on $node"; ssh root@$node "yum -y install ntp"; done
//安装完毕之后,启动服务
systemctl start ntpd.service
systemctl enable ntpd.service
for node in node1 node2; do echo "$node:"; ssh root@$node "systemctl start ntpd.service"; done
for node in node1 node2; do echo "$node:"; ssh root@$node "systemctl enable ntpd.service"; done

管理节点作为ntpserver

vim /etc/ntp.conf
//添加如下内容
restrict 192.168.242.0 mask 255.255.255.0 

启动NTP服务,并查看其状态

systemctl restart ntpd
ntpstat
ntpq -p

具体情况如下图所示,即为成功。

2
计算节点以管理节点作为参照,注视掉外网时间。

vim /etc/ntp.conf
//注释掉server 1.centos.pool.ntp.org这种的四行,后添加
server 192.168.242.130 

修改情况如下:

3
验证如下:

systemctl restart ntpd
ntpq -p

出现如下图所示即可。

4

将节点时区修改为中国:

timedatectl set-timezone Asia/Shanghai
for node in node1 node2; do echo "$node"; ssh root@$node "timedatectl set-timezone Asia/Shanghai"; done

此时,各个节点的时间是同步且处于中国时区的。

在这里插入图片描述

至此,NTP已经初步配置完成。

4.NFS共享目录配置

网络文件系统(Network File System,NFS)是一种允许不同计算机通过网络共享文件和目录的协议。它使得用户可以像访问本地存储一样访问远程存储,简化了文件共享和数据管理的过程。NFS广泛应用于各种网络环境中,特别是需要高效、统一的文件存取的地方,如企业网络和高性能计算集群。

在SLURM环境中,NFS扮演着重要的角色。NFS通过提供一个统一的文件系统,使得SLURM的计算节点可以共享输入数据、输出结果和应用程序文件,提高了资源利用效率和数据管理的一致性。

管理节点

mkdir -p /public
chmod 755 /public
vim /etc/exports添加下述内容
/public *(rw,sync,insecure,no_subtree_check,no_root_squash)

//启动服务
systemctl enable nfs
systemctl enable rpcbind
systemctl start nfs
systemctl start rpcbind
systemctl status nfs
systemctl status rpcbind

检查是否正常加载配置文件

showmount -e localhost

出现下图所示即可。

6
计算节点

下载NFS,并启动服务

yum install nfs-utils rpcbind  -y
systemctl enable nfs 
systemctl enable rpcbind
systemctl start nfs
systemctl start rpcbind

创建public,并对/etc/fstab文件进行配置。

mkdir /public
vim /etc/fstab
192.168.242.130:/public /public nfs rw,sync 0 0

挂载

mount -a

查看是否成功

df

出现下图所示,即可。

7

至此,NFS已经初步配置完成。

5.NIS用户管理配置

网络信息服务(Network Information Service,NIS)是一种用于集中管理网络中用户和组信息、主机名、邮件别名等数据的协议。通过NIS,系统管理员可以在一个中心位置管理用户账户和配置文件,简化了跨多个系统的用户管理工作,提高了网络的可维护性和安全性。NIS常用于需要集中管理用户和资源的大型网络环境中。

在SLURM环境中,NIS通过集中管理用户账户和权限,确保在整个计算集群中用户身份的一致性,简化了用户管理,减少了维护成本。

管理节点

yum install ypserv ypbind yp-tools rpcbind -y
//nisdomainname命令建立临时域名,但重启会失效
nisdomainname sugon.com
//永久设置域名:
echo NISDOMAIN=sugon.com>> /etc/sysconfig/network
//为了使每次重启之后域名都能生效需要将nisdomainname命令添加到rc.local文件中
echo /usr/bin/nisdomainname sugon.com >> /etc/rc.d/rc.local
vim /etc/ypserv.conf添加
192.168.208.0/24           : *      : *         : none

启动服务:

systemctl  start  ypserv 
systemctl  start  yppasswdd 
systemctl  start  rpcbind
//设置系统启动的时候自动启动,需要使用system enable命令手动进行设置:
systemctl enable  ypserv
systemctl enable  yppasswdd 
systemctl enable  rpcbind
/usr/lib64/yp/ypinit –m
//每次修改用户后,更新数据库 
make -C /var/yp 
systemctl restart rpcbind
systemctl restart yppasswdd
systemctl restart ypserv 

检查:

rpcinfo -p localhost

计算节点:
基本配置:

yum install ypbind yp-tools rpcbind -y
echo NISDOMAIN=sugon.com>> /etc/sysconfig/network
echo /usr/bin/nisdomainname sugon.com >> /etc/rc.d/rc.local
echo domain sugon.com server master >> /etc/yp.conf
echo ypserver m1 >> /etc/yp.conf

修改/etc/nsswitch.conf文件,至下图所示:

8

修改/etc/sysconfig/authconfig文件,将USENIS修改为yes,至下图所示:

9
修改/etc/pam.d/system-auth文件,添加nis,至下图所示:
10
启用服务:

systemctl  start  ypbind 
systemctl enable  ypbind 

测试:

yptest
ypwhich 
ypwhich -x

yptest中的用例3测试不通过没有关系。
至此,NIS已经初步配置完成。

6.Munge通信部署

MUNGE(MUNGE Uid ‘N’ Gid Emporium)是一种用于认证的工具,特别设计用于在分布式系统中验证用户的身份。MUNGE通过生成和验证带有加密签名的认证令牌,确保只有被授权的用户和进程才能访问系统资源。这种轻量级的认证机制具有高效、安全、易于配置的特点,广泛应用于高性能计算和集群环境中。

在SLURM环境中,MUNGE起到了至关重要的认证作用。SLURM利用MUNGE来验证提交作业的用户身份,确保只有合法用户才能提交和管理作业。通过这种机制,SLURM能够有效地防止未经授权的访问,保护计算资源和数据的安全。同时,MUNGE的高效性保证了认证过程不会成为系统性能的瓶颈,使得SLURM能够在大规模集群中高效运行。

所有节点同步UID、GID:

groupadd -g 1108 munge
useradd -m -c "Munge Uid 'N' Gid Emporium" -d /var/lib/munge -u 1108 -g munge -s /sbin/nologin munge

查看munge id:

id munge

此时所有节点的mungeID是同步的:

11
管理节点

//在管理节点上,生成熵池
yum install -y rng-tools
rngd -r /dev/urandom
//修改service参数
vim /usr/lib/systemd/system/rngd.service
//修改如下:
[service]
ExecStart=/sbin/rngd -f -r /dev/urandom

启动服务:

systemctl daemon-reload
systemctl start rngd
systemctl enable rngd

所有节点

yum install epel-release -y
yum install munge munge-libs munge-devel -y

管理节点

//密钥同步
/usr/sbin/create-munge-key -r
dd if=/dev/urandom bs=1 count=1024 > /etc/munge/munge.key
scp -p /etc/munge/munge.key root@node1:/etc/munge/
scp -p /etc/munge/munge.key root@node2:/etc/munge/

所有节点:赋权、启动:

chown munge: /etc/munge/munge.key
chmod 400 /etc/munge/munge.key
systemctl start munge
systemctl enable munge

查看状态,如下图所示:

systemctl status munge

12

测试:
本地查看凭据

munge -n | unmunge

13

凭证基准测试

remunge

14
至此,MUNGE已经初步配置完成。

7.安装Mariadb数据库以及Slurm安装配置

7.1安装配置Mariadb及SlurmID配置

管理节点:

yum -y install mariadb-server
systemctl start mariadb
systemctl enable mariadb
mysql
>set password=password('81SLURM@@rabGTjN7');
>create database slurm_acct_db;
>quit
mysql -uroot -p'81SLURM@@rabGTjN7'
>create user slurm;
>grant all on slurm_acct_db.* TO 'slurm'@'localhost' identified by '123456' with grant option;
>flush privileges;
>quit

所有节点
创建slurm用户:

groupadd -g 1109 slurm
useradd -m -c "Slurm manager" -d /var/lib/slurm -u 1109 -g slurm -s /bin/bash slurm

验证:

id slurm

15

7.2Slurm安装配置

所有节点

安装slurm依赖:

yum install gcc gcc-c++ readline-devel perl-ExtUtils-MakeMaker pam-devel rpm-build mysql-devel python3 -y

管理节点

制作rpm包:

wget https://download.schedmd.com/slurm/slurm-22.05.3.tar.bz2
yum install rpm-build -y
rpmbuild -ta --nodeps slurm-22.05.3.tar.bz2

编译制作完成后,可在目录/root/rpmbuild/RPMS/x86_64下得到rpm包:

16
计算节点

创建文件夹:

mkdir -p /root/rpmbuild/RPMS/

管理节点

传输文件:

scp -r /root/rpmbuild/RPMS/x86_64 root@node1:/root/rpmbuild/RPMS/x86_64
scp -r /root/rpmbuild/RPMS/x86_64 root@node2:/root/rpmbuild/RPMS/x86_64

所有节点

安装slurm:

cd /root/rpmbuild/RPMS/x86_64/
yum localinstall slurm-*

管理节点

修改配置文件slurm.conf以及slurmdbd.conf,并将slurm.conf传输至计算节点。

cp /etc/slurm/cgroup.conf.example /etc/slurm/cgroup.conf
cp /etc/slurm/slurm.conf.example /etc/slurm/slurm.conf
cp /etc/slurm/slurmdbd.conf.example /etc/slurm/slurmdbd.conf

for node in node1 node2; do echo "Copying to $node"; scp -r /etc/slurm/cgroup.conf root@$node:/etc/slurm/; done
for node in node1 node2; do echo "Copying to $node"; scp -r /etc/slurm/slurm.conf root@$node:/etc/slurm/; done

设置各节点文件权限:

mkdir /var/spool/slurmd
chown slurm: /var/spool/slurmd
mkdir /var/log/slurm
chown slurm: /var/log/slurm
mkdir /var/spool/slurmctld
chown slurm: /var/spool/slurmctld

管理节点

systemctl start slurmdbd
systemctl enable slurmdbd
systemctl start slurmctld
systemctl enable slurmctld

所有节点

systemctl start slurmd
systemctl enable slurmd

测试:

sinfo

出现下图所示,即可。

17
至此,Mariadb数据库以及Slurm已经配置完成。

附录

配置文件

slurm.conf:
#
# slurm.conf file. Please run configurator.html
# (in doc/html) to build a configuration file customized
# for your environment.
#
#
# slurm.conf file generated by configurator.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
################################################
#                   CONTROL                    #
################################################
ClusterName=jiqun1    #集群名称
SlurmctldHost=master    #管理服务节点名称
SlurmctldPort=6817    #slurmctld服务端口
SlurmdPort=6818   #slurmd服务的端口
SlurmUser=slurm    #slurm的主用户
#SlurmdUser=root    #slurmd服务的启动用户

################################################
#            LOGGING & OTHER PATHS             #
################################################
SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurm/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurm/slurmd.log
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
SlurmdSpoolDir=/var/spool/slurmd
StateSaveLocation=/var/spool/slurmctld

################################################
#                  ACCOUNTING                  #
################################################
AccountingStorageEnforce=associations,limits,qos  #account存储数据的配置选项
AccountingStorageHost=master    #数据库存储节点
AccountingStoragePass=/var/run/munge/munge.socket.2    #munge认证文件,与slurmdbd.conf文件中的AuthInfo文件同名。
AccountingStoragePort=6819    #slurmd服务监听端口,默认为6819
AccountingStorageType=accounting_storage/slurmdbd    #数据库记账服务

################################################
#                      JOBS                    #
################################################
JobCompHost=localhost      #作业完成信息的数据库本节点
JobCompLoc=slurm_acct_db    #数据库名称
JobCompPass=123456    #slurm用户数据库密码
JobCompPort=3306    #数据库端口
JobCompType=jobcomp/mysql     #作业完成信息数据存储类型,采用mysql数据库
JobCompUser=slurm    #作业完成信息数据库用户名
JobContainerType=job_container/none
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/linux

################################################
#           SCHEDULING & ALLOCATION            #
################################################
SchedulerType=sched/backfill
SelectType=select/cons_tres
SelectTypeParameters=CR_Core

################################################
#                    TIMERS                    #
################################################
InactiveLimit=0
KillWait=30
MinJobAge=300
SlurmctldTimeout=120
SlurmdTimeout=300
Waittime=0

################################################
#                    OTHER                     #
################################################
MpiDefault=none
ProctrackType=proctrack/cgroup
ReturnToService=1
SwitchType=switch/none
TaskPlugin=task/affinity

################################################
#                    NODES                     #
################################################
NodeName=master NodeAddr=192.168.242.130  CPUs=1 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=200 Procs=1 State=UNKNOWN
NodeName=node[1-2] NodeAddr=192.168.242.13[3-4]  CPUs=1 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=200 Procs=1 State=UNKNOWN

################################################
#                  PARTITIONS                  #
################################################
PartitionName=compute Nodes=node[1-2] Default=YES MaxTime=INFINITE State=UP

slurmdbd.conf:
#
# slurmdbd.conf file.
#
# See the slurmdbd.conf man page for more information.
#
# Authentication info
AuthType=auth/munge     #认证方式,该处采用munge进行认证
AuthInfo=/var/run/munge/munge.socket.2     #为了与slurmctld控制节点通信的其它认证信息
#
# slurmDBD info
DbdAddr=master      #数据库节点名
DbdHost=master     #数据库IP地址
SlurmUser=slurm     #用户数据库操作的用户
DebugLevel=verbose  
LogFile=/var/log/slurm/slurmdbd.log     #slurmdbd守护进程日志文件绝对路径 
PidFile=/var/run/slurmdbd.pid     #slurmdbd守护进程存储进程号文件绝对路径
#
# Database info
StorageType=accounting_storage/mysql     #数据存储类型
StoragePass=123456     #存储数据库密码
StorageUser=slurm     #存储数据库用户名
StorageLoc=slurm_acct_db     #数据库名称

参考文章:

[1] https://hpclib.com/Scheduler/Slurm/start.html
[2] https://blog.csdn.net/m0_54206457/article/details/137852118
[3] https://blog.csdn.net/qq_49014169/article/details/132189332
[4] https://icode.pku.edu.cn/SCOW/docs/hpccluster/config/slurmdbd.conf
[5] https://blog.csdn.net/weixin_39137153/article/details/125454385

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2093790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis从入门再再到入门(下)

文章目录 1.Redis远程连接1.1 Redis远程连接配置1.2 通过桌面版图形化界面连接Redis1.3 通过IDEA中的插件连接Redis 2.Jedis的基本使用2.1 jedis概述2.2 jedis的基本操作2.3 jedis连接池 3.Spring整合Redis3.1 新建maven工程,引入相关依赖3.2 redis.properties3.3 spring-redis…

Python | Leetcode Python题解之第387题字符串中的第一个唯一字符

题目: 题解: class Solution:def firstUniqChar(self, s: str) -> int:position dict()q collections.deque()n len(s)for i, ch in enumerate(s):if ch not in position:position[ch] iq.append((s[i], i))else:position[ch] -1while q and po…

如何开发针对不平衡分类的成本敏感神经网络 python

如何开发针对不平衡分类的成本敏感神经网络 深度学习神经网络是一类灵活的机器学习算法,可以在各种问题上表现良好。 神经网络使用误差反向传播算法进行训练,该算法涉及计算模型在训练数据集上产生的误差,并根据这些误差的比例更新模型权重…

鸿蒙开发入门day16-拖拽事件和手势事件

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,还请三连支持一波哇ヾ(@^∇^@)ノ) 目录 拖拽事件 概述 拖拽流程 ​手势拖拽 ​鼠标拖拽 拖拽背板图 …

如何有效防止表单重复提交

如何有效防止表单重复提交 1. 使用重定向(Redirect)2. 点击后按钮失效3. Loading 遮罩4. 自定义重复提交过滤器 💖The Begin💖点点关注,收藏不迷路💖 在Web开发中,表单重复提交是一个常见问题&…

计算物理精解【3】

文章目录 力学单位矢量基础定义 矢量加法矢量加法的几何方法矢量加法的代数方法示例注意事项 矢量间的关系矢量(或向量)的标量积(也称为点积、内积或数量积)性质计算两矢量之间的夹角例子步骤数值结果 计算两三维矢量之间夹角的例…

厨房老鼠检测算法解决方案老鼠检测算法源码样本详细介绍

厨房老鼠检测算法是一种创新的解决方案,它结合了机器学习和图像识别技术。通过使用高精度的传感器和智能摄像头,这些算法可以实时监控厨房环境,并检测到老鼠的活动痕迹。与传统的检测方法相比,这种算法具有更高的灵敏度和准确性&a…

Java对象的访问定位技术

Java虚拟机规范中规定reference类型是一个指向对象的引用,但规定并没有定义这个引用应该通过什么方式去定位、访问堆中的对象的具体位置,所以对象访问方式取决于具体的虚拟机实现。 目前主流的访问方式有两种:使用句柄和直接指针。 使用句柄…

Altium designer设计经验谈——常用规则的使用(二)

文章目录 前言三、规则设置介绍——走线规则1、Routing——>Width 线宽2、Routing——>Topology 拓扑 四、规则设置介绍——平面层规则1、Plane——>电源层连接样式 Power Plane Connect Style2、Plane——>电源层间距距离 Power Plane Clearance3、Plane——>多…

单片机编程魔法师-并行多任务程序

程序架构 程序代码 小结 数码分离,本质上就是将数据和代码逻辑进行分离,跟第一章使用数据驱动程序一样的道理。 不过这里不同之处在于。这里使用通过任务线程,但是却有2个任务在运行,两个任务都通过先初始化任务数据参数&#x…

C++ | Leetcode C++题解之第387题字符串中的第一个唯一字符

题目&#xff1a; 题解&#xff1a; class Solution { public:int firstUniqChar(string s) {unordered_map<char, int> position;queue<pair<char, int>> q;int n s.size();for (int i 0; i < n; i) {if (!position.count(s[i])) {position[s[i]] i;…

设备管理与文件系统

1、设备管理框架 对于不同类型的设备的操作&#xff0c;全部由一下函数指针来完成。即操作系统对设备进行操作&#xff0c;只需要调用统一的API接口&#xff0c;无需了解相关的细节。 比如如下的接口设计&#xff1a; int (*open) (device_t * dev) ; int (*read) (device_t …

直播行业的未来:南昌络喆科技有限公司的创新无人直播项目!

随着数字化时代的推进&#xff0c;直播行业迎来了前所未有的增长机遇。南昌络喆科技有限公司凭借其创新的无人直播技术&#xff0c;正引领着行业的新潮流&#xff0c;展现出直播领域的新面貌。 无人直播技术突破了传统直播的局限&#xff0c;实现了自动化的高效运营模式。它摒弃…

用Python解决预测问题_对数线性模型模板

对数线性模型&#xff08;Log-linear model&#xff09;是统计学中用于分析计数数据或频率数据的一类模型&#xff0c;特别是在多维列联表&#xff08;contingency tables&#xff09;分析中非常常见。这种模型通过取对数将乘法关系转换为加法关系&#xff0c;从而简化了数据分…

关于自己部署AI大模型踩的坑(三)—— 部署

最近一直在研究如何打算属于我自己的J.A.R.V.I.S.&#xff08;钢铁侠中的机器人管家&#xff09;。 上一篇写了我最近在部署自己的大模型&#xff0c;使用llama3.1&#xff0c; 和通义千问2。虽然最终结果也是成功了&#xff0c;过程却十分地坎坷。所以这一篇文章一是总结其中遇…

Nginx快速入门:编译及常用配置

Nginx 是一个高性能的 HTTP 服务器和反向代理服务器&#xff0c;也是一个 IMAP/POP3 邮件代理服务器。它以其高并发处理能力和低资源消耗而闻名&#xff0c;能够同时处理数千个连接。 Nginx 的主要功能包括&#xff1a; 静态资源服务器&#xff1a;Nginx 可以担任静态资源服务…

【Python零基础】Python测试

文章目录 前言一、使用pip安装pytest1.1 更新pip1.2 安装pytest 二、测试函数2.1 编写测试文件2.2 运行测试2.3 测试不通过2.4 测试不通过2.4 增加新测试 三、测试类3.1 断言3.2 夹具 总结 前言 代码测试是程序开发中极其重要的一环&#xff0c;任何代码都应该经过测试才能上生…

sqli-labs靶场通关攻略(五十一到五十六关)

sqli-labs-master靶场第五十一关 步骤一&#xff0c;尝试输入?sort1 我们发现这关可以报错注入 步骤二&#xff0c;爆库名 ?sort1 and updatexml(1,concat(0x7e,database(),0x7e),1)-- 步骤三&#xff0c;爆表名 ?sort1 and updatexml(1,concat(0x7e,(select group_conc…

数据结构:树形结构(树、堆)详解

数据结构&#xff1a;树形结构&#xff08;树、堆&#xff09;详解 一、树&#xff08;一&#xff09;树的性质&#xff08;二&#xff09;树的种类二叉树多叉树满N叉树完全N叉树 &#xff08;三&#xff09;二叉树的实现1、二叉树结构定义2、二叉树功能实现&#xff08;1&…

数字化转型中的数据应用:挑战、机遇与追赶之路

在数字化时代的大潮中&#xff0c;数据已悄然从企业的边缘资源跃升为最宝贵的核心资产。然而&#xff0c;这场数据盛宴并未带来普遍的数据应用成熟&#xff0c;反而揭示了企业在数据利用上的巨大鸿沟。即便是全球500强企业&#xff0c;在数据应用的征途上&#xff0c;也仅仅是比…