当前位置: 首页 > news >正文

使用docker完成minio服务部署扩容备份迁移生产实践文档

一、minio服务扩容方案

当服务器存储空间不足的时候,需要进行扩容,扩容过程中需要短暂停机时间,预计在一小时内能够完成和恢复

统一注意事项

强烈建议为部署中的所有节点选择基本相似的硬件配置。确保硬件(CPU、内存、主板、存储适配器)和软件(操作系统、内核设置、系统服务)在所有节点上保持一致。

由于文件服务用于文件上传与下载,需要选择一个存储空间大的磁盘(生产环境可能不一样,因此需要检查),查看服务器的最大磁盘空间:df -h 例如

img

由上图可以看出,/opt 目录磁盘空间最大,检查docker-compose的minio映射目录,若生产磁盘目录也是/opt最大,则用默认的docker-compose;

若生产的最大磁盘目录为其他,例如发现磁盘空间最大根目录为 /usr 则需要修改docker-compose中的对应数据映射目录

# minio集群部署模式下
- /opt/CommandCenter/minio/data1:/data1  [修改为]  - /usr/CommandCenter/minio/data1:/data1
- /opt/CommandCenter/minio/data2:/data2  [修改为]  - /usr/CommandCenter/minio/data2:/data2

1.1 第一阶段 部署[3]个节点

首先检查部署所在服务器的是否开放 9000、9001 端口,若没有开放则需要开放9000、9001 端口

# 查看开放的端口号,若列表中没有9000、9001则需要开放9000、9001 端口
firewall-cmd --list-ports#开放9000端口,为minio后端代码访问端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
#开放9001端口,为minio后台管理界面端口
firewall-cmd --zone=public --add-port=9001/tcp --permanent# 重启防火墙,使开放端口生效
firewall-cmd --reload

这里以部署3台服务器为示例演示集群部署,生产以实际环境服务器为准:

服务器别名服务器ip地址后端代码访问端口号后台管理界面端口号
minio0116.123.11.1690009001
minio0216.123.11.1590009001
minio0316.123.11.1490009001

在【portainer】中分别在【3】台服务器上运行此 docker-compose 文件(集群中每个docker-compose内容稍有不同)即可完 minio 的集群部署;

每台服务器的minio的docker-compose.yml文件为:主要按照实际文件修改: hostname 、 container_name 、 extra_hosts

注意:每台服务器中的 docker-compose.yaml 文件有 hostname 、 container_name 、 extra_hosts属性有区别,集群中每台minio的用户名和密码需要保持一致

version: "3.0"
services:minio:# 最新版的minioimage: quay.io/minio/minio# 这里的 minio0{1...3}代表:部署3个节点(即3台服务器), data{1...2}代表:每个节点分别映射两个存储文件夹command: server --address ":9000" --console-address ":9001" http://minio0{1...3}/data{1...2}restart: alwayshostname: minio01 # 注意:每个节点修改成不同的名字,与下面的 extra_hosts 保持名称一致container_name: minio01 # 注意:每个节点修改成不同的名字,与下面的 extra_hosts 保持名称一致environment:# 集群中每个节点的用户名和密码需保持一致MINIO_ROOT_USER: xxxxxxMINIO_ROOT_PASSWORD: xxxxxxxMINIO_PROMETHEUS_AUTH_TYPE: publicTZ: Asia/Shanghaiextra_hosts:# 这里分别填写,集群中每台服务器的ip以及自定义hostname- "minio01:16.123.11.16"- "minio02:16.123.11.15"- "minio03:16.123.11.14"volumes:- /opt/CommandCenter/minio/data1:/data1- /opt/CommandCenter/minio/data2:/data2#将外边时间直接挂载到容器内部,权限只读- /etc/localtime:/etc/localtime:ro#将外面的时间挂载到容器内部,权限只读,容器内不可修改- /etc/timezone:/etc/timezone:ronetwork_mode: "host"logging:driver: "json-file"options:max-size: "50M"max-file: "10"deploy:resources:limits:cpus: "4"memory: 4096Mreservations:memory: 2048M

**验证:**部署完成后,在浏览器访问 http://ip:9000 ,ip为集群中的任意一台服务器ip,docker-compose中输入的MINIO_ROOT_USER对应值为用户名,MINIO_ROOT_PASSWORD对应值为密码

登录后选择菜单【Monitoring】—》【Metrics】查看集群情况,Servers对应在线节点数量,Drives代表磁盘在线数量

1.1.1 请检查nginx配置文件中是否包含以下配置,若没有则新增;若新增,则需要重启nginx
 # minio 集群中的节点upstream minioCluster{server  16.123.11.16:9000; #将127.0.0.1修改为minio服务主节点所在机器IPserver  16.123.11.15:9000; #将127.0.0.1修改为minio服务备节点所在机器IPserver  16.123.11.14:9000; #将127.0.0.1修改为minio服务备节点所在机器IP}server {listen       9002;server_name  127.0.0.1; #此处填写当前nginx服务所在的服务器ipclient_max_body_size 4096M;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://minioCluster;proxy_set_header x-real-ip $remote_addr;proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;proxy_set_header host $http_host;}}

1.2 第二阶段 当存储容量不足的时候,再部署[3]个节点实现扩容

注意:不支持单独添加一个节点组成新的集群

首先检查部署所在服务器的是否开放 9000、9001 端口,若没有开放则需要开放9000、9001 端口

# 查看开放的端口号,若列表中没有9000、9001则需要开放9000、9001 端口
firewall-cmd --list-ports#开放9000端口,为minio后端代码访问端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
#开放9001端口,为minio后台管理界面端口
firewall-cmd --zone=public --add-port=9001/tcp --permanent# 重启防火墙,使开放端口生效
firewall-cmd --reload

这里以部署3台服务器为示例演示集群部署,生产以实际环境服务器为准:

服务器别名服务器ip地址后端代码访问端口号后台管理界面端口号
minio0416.123.11.1390009001
minio0516.123.11.1290009001
minio0616.123.11.1190009001

在【portainer】中分别在【3】台服务器上运行此 docker-compose 文件(集群中每个docker-compose内容稍有不同)即可完 minio 的集群部署;

每台服务器的minio的docker-compose.yml文件为:

注意:每台服务器中的 docker-compose.yaml 文件有 hostname 、 container_name 、 extra_hosts属性有区别,集群中每台minio的用户名和密码需要保持一致

注意 **command、extra_hosts、**hostname 、 container_name 对内的变化。

扩容的时候【每个节点(包含之前的节点)】都需要按照此处来修改,然后重新部署每个节点

version: "3.0"
services:minio:# minio最新版quay.io/minio/minio# 这里的 minio0{1...3}代表:部署3个节点(即2台服务器), data{1...2}代表:每个节点分别映射两个存储文件夹command: server --address ":9000" --console-address ":9001" http://minio0{1...3}/data{1...2} http://minio0{4...6}/data{1...2}restart: alwayshostname: minio03 # 注意:每个节点修改成不同的名字,与下面的 extra_hosts 保持名称一致container_name: minio03 # 注意:每个节点修改成不同的名字,与下面的 extra_hosts 保持名称一致environment:# 集群中每个节点的用户名和密码需保持一致MINIO_ROOT_USER: xxxxxxxxMINIO_ROOT_PASSWORD: xxxxxxxxxxMINIO_PROMETHEUS_AUTH_TYPE: publicTZ: Asia/Shanghaiextra_hosts:# 这里分别填写,集群中每台服务器的ip以及自定义hostname- "minio01:16.123.11.16"- "minio02:16.123.11.15"- "minio03:16.123.11.14"- "minio04:16.123.11.13"- "minio05:16.123.11.12"- "minio06:16.123.11.11"volumes:- /opt/CommandCenter/minio/data1:/data1- /opt/CommandCenter/minio/data2:/data2#将外边时间直接挂载到容器内部,权限只读- /etc/localtime:/etc/localtime:ro#将外面的时间挂载到容器内部,权限只读,容器内不可修改- /etc/timezone:/etc/timezone:ronetwork_mode: "host"logging:driver: "json-file"options:max-size: "50M"max-file: "10"deploy:resources:limits:cpus: "4"memory: 4096Mreservations:memory: 2048M

**验证:**部署完成后,在浏览器访问 http://ip:9000 ,ip为集群中的任意一台服务器ip,docker-compose中输入的MINIO_ROOT_USER对应值为用户名,MINIO_ROOT_PASSWORD对应值为密码

登录后选择菜单【Monitoring】—》【Metrics】查看集群情况,Servers对应在线节点数量,Drives代表磁盘在线数量

注意:修改nginx的配置,将新增的节点添加到此处,然后重启nginx

 # minio 集群中的节点upstream minioCluster{server  16.123.11.16:9000; #将127.0.0.1修改为minio服务主节点所在机器IPserver  16.123.11.15:9000; #将127.0.0.1修改为minio服务备节点所在机器IPserver  16.123.11.14:9000; #将127.0.0.1修改为minio服务备节点所在机器IPserver  16.123.11.13:9000; #将127.0.0.1修改为minio服务主节点所在机器IPserver  16.123.11.12:9000; #将127.0.0.1修改为minio服务备节点所在机器IPserver  16.123.11.11:9000; #将127.0.0.1修改为minio服务备节点所在机器IP}server {listen       9002;server_name  127.0.0.1; #此处填写当前nginx服务所在的服务器ipclient_max_body_size 4096M;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://minioCluster;proxy_set_header x-real-ip $remote_addr;proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;proxy_set_header host $http_host;}}

二、minio数据备份与迁移

文件服务为集群部署,自带数据备份功能:

比如部署了N个节点,当存活的节点有 大于 N/2 的节点存活的时候,都能够获取到完整的数据并且提供服务

多节点/驱动器级别的可靠性,具有可配置的容忍度,最多可丢失 1/2 所有节点/驱动器 。

2.1 检查/安装 mc客户端

数据的备份与迁移都依赖于mc客户端,mc客户端源于minio官方,需要确认mc客户端已经安装

# 查看是否安装mc
mc --help
# 若出现命令未发现,则说明mc没有安装,需要安装mc客户端
[root@localhost minio-binaries]# mc --help
-bash: mc: command not found# 若出现以下命令则说明已经安装,按键盘q键则可以退出
[root@localhost minio-binaries]# mc --help
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── (q)uit/esc
NAME:                                                                           mc - MinIO Client for object storage and filesystems.                         USAGE:                                                                          mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]                        COMMANDS:                                                                       alias      manage server credentials in configuration file                    ls         list buckets and objects                                           mb         make a bucket                                                      rb         remove a bucket                                                    cp         copy objects                                                       mv         move objects                                                       rm         remove object(s)                                                   mirror     synchronize object(s) to a remote site                             cat        display object contents                                            head       display first 'n' lines of an object                               pipe       stream STDIN to an object                                          find       search for objects                                                 sql        run sql queries on objects                                         stat       show object metadata                                               tree       list buckets and objects in a tree format                          du         summarize disk usage recursively                                   retention  set retention for object(s)                                        legalhold  manage legal hold for object(s)                                    support    support related commands                                           license    license related commands                                           share      generate URL for temporary access to an object                     version    manage bucket versioning                                           ilm        manage bucket lifecycle                                            quota      manage bucket quota                                                encrypt    manage bucket encryption config                                    event      manage object notifications                                        watch      listen for object notification events                              undo       undo PUT/DELETE operations                                         anonymous  manage anonymous access to buckets and objects                     tag        manage tags for bucket and object(s)                               diff       list differences in object name, size, and date between two bucketsreplicate  configure server side bucket replication                           admin      manage MinIO servers                                               
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0%   

可以通过 在线/离线 模式根据不同的服务器架构安装mc客户端:

在线安装mc客户端:

当服务架构为linux-amd64的时候,安装mc客户端为:

curl https://dl.minio.org.cn/client/mc/release/linux-amd64/mc \--create-dirs \-o /usr/local/minio-binaries/mcchmod +x /usr/local/minio-binaries/mc
export PATH=$PATH:/usr/local/minio-binaries/mc --help

当服务器架构为linux-arm64的时候,安装mc客户端为:

curl https://dl.minio.org.cn/client/mc/release/linux-arm64/mc \--create-dirs \-o /usr/local/minio-binaries/mcchmod +x /usr/local/minio-binaries/mc
export PATH=$PATH:/usr/local/minio-binaries/mc --help

离线安装mc客户端:

当服务架构为linux-amd64的时候,安装mc客户端为:

1.创建目标文件夹
mkdir -p /usr/local/minio-binaries
2.从安装包中取出linux-amd64对应的 mc 安装包上传到 /usr/local/minio-binaries 目录下
3.赋予mc客户端执行权限
chmod +x /usr/local/minio-binaries/mc
4.添加环境变量
export PATH=$PATH:/usr/local/minio-binaries/

当服务器架构为linux-arm64的时候,安装mc客户端为:

1.创建目标文件夹
mkdir -p /usr/local/minio-binaries
2.从安装包中取出linux-arm64对应的 mc 安装包上传到 /usr/local/minio-binaries 目录下
3.赋予mc客户端执行权限
chmod +x /usr/local/minio-binaries/mc
4.添加环境变量
export PATH=$PATH:/usr/local/minio-binaries/

2.2 minio数据备份与迁移方案

设置存储服务器别名

# 在安装了mc客户端的服务器上执行设置服务别名
mc alias set minio_A http://127.0.0.1:9002 yourusername youruserpassword说明:
minio_A 为自定义存储服务器别名
需要将127.0.0.1替换 nginx 的ip或vip(vip优先)
yourusername代表minio的用户名
youruserpassword代表minio的密码# 查看已经设置的别名
mc alias list
2.2.1 将数据【备份】到本地其他磁盘
# 创建本地备份目录,注意备份目录磁盘空间需要大于本次备份的数据 df -h 查看磁盘空间
mkdir -p /opt/minio/bakdata
# 将minio中存储的数据全部备份到本地
mc cp --recursive minio_A/ /opt/minio/bakdata/说明 minio_A 自定义的别名若需要【指定备份某个桶】的数据,则执行 mc cp --recursive minio_A/mybucket/ /opt/minio/bakdata/mybucket/
mybucket为桶的名称
2.2.2 将备份的数据上传到新的minio集群上面
# 这里将minio_A备份的数据,上传到minio_B上面,先设置minio_B的别名
mc alias set minio_B http://127.0.0.1:9002 yourusername youruserpassword
# 查看已经设置的别名
mc alias list# 查看minio_A服务上面所有桶的名称
mc ls  minio_A
# 查看minio_B服务上面所有桶的名称
mc ls  minio_B若minio_B中缺少minio_A中的桶数据,则需要登录到新的桶后台新增minio_B中缺少的桶# 将minio_A备份的[全部]数据,上传到minio_B上面,注意备份文件目录路径需以'/'结尾
mc cp --recursive /opt/minio/bakdata/ minio_B
注意:迁移过程中若出现目录不存在,则登录到新的集群去创建(Bucket `xxxxxxxx` does not exist)# 将minio_A备份[mybucket桶]的数据,上传到minio_B[mybucket桶]上面,注意备份文件目录路径需以'/'结尾
mc cp --recursive /opt/minio/bakdata/mybucket/ minio_B/mybucket/
注意:迁移过程中若出现目录不存在,则登录到新的集群去创建(Bucket `xxxxxxxx` does not exist)

注意:迁移过程中若出现提示目录不存在,则登录到新的集群去创建(Bucket xxxxxxxx does not exist)

**创建桶:**浏览器登录管理后台 http://ip:9000 ip为新集群中的任意一台minio所在服务的ip,在docker-compose中的 MINIO_ROOT_USER和MINIO_ROOT_PASSWORD分别对应登录的用户名和密码

img

2.2.3 将一个minio中的数据区【迁移】到另外一个新的minio集群
# 查看minio_A服务上面所有桶的名称
mc ls  minio_A
# 查看minio_B服务上面所有桶的名称
mc ls  minio_B若minio_B中缺少minio_A中的桶数据,则需要登录到新的桶后台新增minio_B中缺少的桶#将服务器A上名为“mybucket”的桶的数据迁移到服务器B的“mybucket”桶中
mc cp --recursive minio_A/mybucket/ minio_B/mybucket/
注意:若提示(Bucket `xxxxxxxx` does not exist)则需要登录到新的集群去创建名为mybucket的桶#将服务器A上面的所有数据迁移到服务器B上面
mc cp --recursive minio_A minio_B
注意:若提示(Bucket `xxxxxxxx` does not exist)则需要登录到新的集群去创建名为mybucket的桶

相关文章:

使用docker完成minio服务部署扩容备份迁移生产实践文档

一、minio服务扩容方案 当服务器存储空间不足的时候,需要进行扩容,扩容过程中需要短暂停机时间,预计在一小时内能够完成和恢复 统一注意事项 强烈建议为部署中的所有节点选择基本相似的硬件配置。确保硬件(CPU、内存、主板、存…...

管道-有名管道

一、有名管道 有名管道与匿名管道的不同: 有名管道提供了一个路径名,并以FIFO的文件形式存在于文件系统中。与匿名管道不同,有名管道可以被不相关的进程使用,只要它们可以访问该路径,就能够通过有名管道进行通信。 FI…...

谷歌注册手机号码无法验证

1. 打开设置,在语言中点击添加语言搜索English并添加 2. 点击添加后把首选语言换成英语 3. 然后重启浏览器,这时候浏览器就是英文了,最后打开注册页面就能接收短信了...

C语言编译与链接过程详解

C语言编译与链接过程详解 源文件 main.c #include <stdio.h>extern int data; extern int add(int a,int b);int a1; int a2 0; int a3 10;static int b1; static int b2 0; static int b3 20;int main() {int c1;int c2 0;int c3 30;static int d1;static int …...

Qt信号和槽 定时器

文章目录 1 信号和槽1.1 信号和槽的概念1.2 信号和槽的应用1.3 信号和槽的连接1.4 信号和槽的特性1.5 生活中的类似例子1.6 信号和槽的优势 2 信号和槽的使用2.1 控件的信号和槽2.2 自定义信号和槽2.3 信号和槽的参数传递 3 定时器3.1 QTimer类的基本使用3.2 QTimer类的成员函数…...

zemax对称式目镜

两个几乎对称的双胶合透镜相对放置&#xff0c;可以达到25度的半视场 为了加工方便&#xff0c;这两个透镜组采用相同的结构 对称式目镜要求各组透镜自行校正色差&#xff0c;这样倍率色差也随之而校正。 它还能校正两种像差&#xff0c;慧差和象散。 对称目镜的结构更紧&…...

层次架构、面向服务架构(四十四)

层次架构设计 表现层、中间层、数据访问层、数据架构规划、物联网层次架构、层次式架构案例分析。 层次结构缺点就是效率问题&#xff0c;上一层调用下一层。 1、着重写中间层 组件设计&#xff1a;面向接口编程&#xff0c;分为接口和实现类。 实体设计&#xff1a;实体表…...

Ubuntu22无法自动进入lightdm图像界面

问题&#xff1a;Ubuntu22无法自动进入lightdm图像界面&#xff0c;必须手动运行 lightdm start解决方案&#xff1a; 方案一&#xff1a; 运行一个终端输入 cat /etc/X11/default-display-manager /etc/init/lightdm.conf不接受lightdm作为设置&#xff0c;但是&#xff0c;/…...

01BFS最短距离的原理和C++实现

时间复杂度 O(n)&#xff0c;n是边数。 使用前提 边的权只有两种:0,1。 典型场景 n个端点的无向图&#xff0c;编号范围[0,n)。Edges0表示{{n1,n2},...{n3,n4}}表示n1和n2&#xff0c;n3和n4之间有路联接。Edges1表示{{n1,n2},...{n3,n4}}表示n1和n2&#xff0c;n3和n4之间…...

【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)

【深基17.例6】学籍管理 题目描述 您要设计一个学籍管理系统&#xff0c;最开始学籍数据是空的&#xff0c;然后该系统能够支持下面的操作&#xff08;不超过 1 0 5 10^5 105 条&#xff09;&#xff1a; 插入与修改&#xff0c;格式1 NAME SCORE&#xff1a;在系统中插入姓…...

10.03

代码 #include <iostream>using namespace std; class cz { private:int num1; //实部int num2; //虚部 public:cz(){}cz(int a,int b):num1(a),num2(b){}cz(const cz &other):num1(other.num1),num2(other.num2){}~cz(){}const cz operator(const cz &othe…...

链表单向链表跳跃链表

单向链表 link list t数组的局限&#xff1a;编译期就需要知道大小&#xff1b; 内存连续&#xff0c;插入困难 // 链表节点类 包含一个信息 和指向下一个 节点的指针clas IntLLNode{public:IntLLNode(){// 默认构造函数 没有info信息nextPtr_ 0;// 空指针}IntLLNode(int …...

博客无限滚动加载(html、css、js)实现

介绍 这是一个简单实现了类似博客瀑布流加载功能的页面&#xff0c;使用html、css、js实现。简单易懂&#xff0c;值得学习借鉴。&#x1f44d; 演示地址&#xff1a;https://i_dog.gitee.io/easy-web-projects/infinite_scroll_blog/index.html 代码 index.html <!DOCT…...

腾讯云南京服务器性能如何?南京服务器测速IP地址

腾讯云服务器南京地域怎么样&#xff1f;南京地域很不错&#xff0c;正好处于中间的位置&#xff0c;南方北方用户均可以选择&#xff0c;网络延迟更低速度更快&#xff0c;并且目前南京地域有活动&#xff0c;南京地域可用区可选南京一区、南京二区和南京三区&#xff0c;腾讯…...

MySQL和Oracle中,语法的不同点以及如何在xml中书写日期比较大小

众所周知mysql和oracle的语法有点相识&#xff0c;又有点不同。 在MySQL和Oracle中&#xff0c;语法的不同点有以下几个方面&#xff1a; 数据类型&#xff1a;MySQL和Oracle支持的数据类型有所不同&#xff0c;比如MySQL支持的数据类型包括&#xff1a;整型、浮点型、字符型、…...

谈谈Redis分布式锁

目录 一、回顾分布式锁 &#xff08;一&#xff09;理解分布式锁的定义 &#xff08;二&#xff09;分布式锁的约束条件 &#xff08;三&#xff09;分布式锁常见实现方式 基于数据库的分布式锁 基于缓存的分布式锁 基于分布式一致性算法的分布式锁 基于文件系统的分布…...

Redis的java客户端-RedisTemplate光速入门

一.创建springboot项目 二.引入2个依赖 <!-- redis依赖-->这个已经引入了&#xff0c;因为创建的时候勾选了<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><…...

格点数据可视化(美国站点的日降雨数据)

获取美国站点的日降雨量的格点数据&#xff0c;并且可视化 导入模块 from datetime import datetime, timedelta from urllib.request import urlopenimport cartopy.crs as ccrs import cartopy.feature as cfeature import matplotlib.colors as mcolors import matplotli…...

YoloV8改进策略:LSKNet加入到YoloV8中,打造更适合小目标的YoloV8

文章目录 摘要论文:LSKNet:大选择核网络在遥感目标检测中的应用1、简介2、相关工作2.1、遥感目标检测框架2.2、大核网络2.3、注意力/选择机制3、方法3.1、LSKNet架构3.2、大核卷积3.3、空间核选择4、实验4.1、数据集4.2、实现细节4.3、消融实验4.4、主要结果4.5、分析5、结论…...

力扣-303.区域和检索-数组不可变

Idea 需计算数组nums在下标right 和 left-1 的前缀和&#xff0c;然后计算两个前缀和的差即可。 需要注意的是&#xff0c;当left为0的时候&#xff0c;如果还是left-1则会发生数组访问越界错误。 AC Code class NumArray { public:vector<int> sum;NumArray(vector<…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...