基于本地centos构建gdal2.4.4镜像
1.前言
基于基础镜像构建gdal环境一般特别大,一般少则1.6G,多则2G甚至更大,这对于镜像的迁移造成了极大的不便。究其原因在于容器中有大量的源码文件以及编译中间过程文件,还要大量编译需要的yum库。本文主要通过在centos系统上先构建基础gdal环境,然后将编译好的二进制文件以及动态库拷贝出来。通过DockerFile或者操作容器的方式构建进行。通过这样的方式,镜像700M左右(基础镜像200M+gdal500M)。当然文章末尾还提供压缩的方式导出镜像(大小约250M左右)。
2. 编译环境
2.1 操作系统
[root@surpass ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
2.2 gdal以及插件及版本
序号 | 软件名称 | 版本号 |
---|---|---|
1 | ant | apache-ant-1.10.12 |
2 | gdal | gdal-2.4.4 |
3 | geos | geos-3.7.3 |
4 | hdf4 | hdf-4.2.13 |
5 | hdf5 | hdf5-1.10.5 |
6 | jpegsrc | jpegsrc.v8c |
7 | netcdf | netcdf-c-4.4.1.1 |
8 | pcre | pcre-8.45 |
9 | proj | proj-6.0.0 |
10 | swig | swig-2.0.9 |
11 | jdk | jdk-8u361-linux-x64 |
这里我已经准备好,如果自己下载麻烦,可以直接用的准备好的。gdal2.4.4源码编译及相关插件
3.环境准备
3.1 拷贝文件
当然,第一步还是先将文件拷贝到centos系统中。
[root@surpass gdal]# ll
总用量 200516
-rw-r--r--. 1 root root 5424638 3月 4 21:20 apache-ant-1.10.12-bin.tar.bz2
-rw-r--r--. 1 root root 14748072 3月 4 21:20 gdal-2.4.4.tar.gz
-rw-r--r--. 1 root root 2000211 3月 4 21:20 geos-3.7.3.tar.bz2
-rw-r--r--. 1 root root 4418314 3月 4 21:20 hdf-4.2.13.tar.gz
-rw-r--r--. 1 root root 12030972 3月 4 21:20 hdf5-1.10.5.tar.gz
-rw-r--r--. 1 root root 138762230 3月 4 21:20 jdk-8u361-linux-x64.tar.gz
-rw-r--r--. 1 root root 956918 3月 4 21:20 jpegsrc.v8c.tar.gz
-rw-r--r--. 1 root root 17670828 3月 4 21:20 netcdf-c-4.4.1.1.tar.gz
-rw-r--r--. 1 root root 1578809 3月 4 21:20 pcre-8.45.tar.bz2
-rw-r--r--. 1 root root 2405217 3月 4 21:20 proj-6.0.0.tar.gz
-rw-r--r--. 1 root root 5307341 3月 4 21:20 swig-2.0.9.tar.gz
3.2 安装依赖环境
yum -y groupinstall "Development tools"
yum -y install gcc-c++
yum -y install zlib-devel
yum -y install sqlite-devel
yum -y install bzip2
3.3 查看四个文件夹的内容
查看下面四个文件夹,是否为空的,如果不为空,要记下里面的文件,我这里是空的。
[root@surpass local]# ll /usr/local/bin/
总用量 0
[root@surpass local]# ll /usr/local/lib
总用量 0
[root@surpass local]# ll /usr/local/include/
总用量 0
[root@surpass local]# ll /usr/local/share/
总用量 0
drwxr-xr-x. 2 root root 6 4月 11 2018 applications
drwxr-xr-x. 2 root root 6 4月 11 2018 info
drwxr-xr-x. 21 root root 243 4月 27 2022 man
4. 安装依赖文件
4.1 Proj安装
tar -zxvf proj-6.0.0.tar.gz
cd proj-6.0.0
./configure
make
make install
# 验证是否安装成功
proj —help
此时,proj文件编译的位置如下:
- 可执行文件
[root@surpass bin]# ll /usr/local/bin/ 总用量 2096 -rwxr-xr-x. 1 root root 192008 3月 4 21:42 cct -rwxr-xr-x. 1 root root 192544 3月 4 21:42 cs2cs -rwxr-xr-x. 1 root root 279296 3月 4 21:42 geod -rwxr-xr-x. 1 root root 222448 3月 4 21:42 gie lrwxrwxrwx. 1 root root 4 3月 4 21:42 invgeod -> geod lrwxrwxrwx. 1 root root 4 3月 4 21:42 invproj -> proj -rwxr-xr-x. 1 root root 172400 3月 4 21:42 proj -rwxr-xr-x. 1 root root 1070520 3月 4 21:42 projinfo
- 动态库
[root@surpass bin]# ll /usr/local/lib 总用量 114204 -rw-r--r--. 1 root root 85747468 3月 4 21:42 libproj.a -rwxr-xr-x. 1 root root 940 3月 4 21:42 libproj.la lrwxrwxrwx. 1 root root 17 3月 4 21:42 libproj.so -> libproj.so.15.0.0 lrwxrwxrwx. 1 root root 17 3月 4 21:42 libproj.so.15 -> libproj.so.15.0.0 -rwxr-xr-x. 1 root root 31187152 3月 4 21:42 libproj.so.15.0.0 drwxr-xr-x. 2 root root 21 3月 4 21:42 pkgconfig
- 共享文件
[root@surpass proj]# ll /usr/local/share/proj/ 总用量 6180 -rw-r--r--. 1 root root 1183 3月 4 21:42 CH -rw-r--r--. 1 root root 728 3月 4 21:42 GL27 -rw-r--r--. 1 root root 2099 3月 4 21:42 ITRF2000 -rw-r--r--. 1 root root 3660 3月 4 21:42 ITRF2008 -rw-r--r--. 1 root root 3498 3月 4 21:42 ITRF2014 -rw-r--r--. 1 root root 19535 3月 4 21:42 nad27 -rw-r--r--. 1 root root 16593 3月 4 21:42 nad83 -rw-r--r--. 1 root root 6385 3月 4 21:42 nad.lst -rw-r--r--. 1 root root 232 3月 4 21:42 null -rw-r--r--. 1 root root 3915 3月 4 21:42 other.extra -rw-r--r--. 1 root root 6242304 3月 4 21:42 proj.db -rw-r--r--. 1 root root 7079 3月 4 21:42 world
- 文件头
[root@surpass include]# ll /usr/local/include/ 总用量 184 -rw-r--r--. 1 root root 44277 3月 4 21:42 geodesic.h -rw-r--r--. 1 root root 2960 3月 4 21:42 org_proj4_PJ.h drwxr-xr-x. 2 root root 179 3月 4 21:42 proj -rw-r--r--. 1 root root 8346 3月 4 21:42 proj_api.h -rw-r--r--. 1 root root 23206 3月 4 21:42 proj_constants.h -rw-r--r--. 1 root root 34185 3月 4 21:42 proj_experimental.h -rw-r--r--. 1 root root 42507 3月 4 21:42 proj.h -rw-r--r--. 1 root root 19796 3月 4 21:42 proj_symbol_rename.h
后面编译的软件基本在这几个文件夹,如有特殊会单独说明。
4.2 安装java环境
4.2.1 解压压缩包
tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/local/
4.2.2 编辑环境变量
# 编译/etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_361
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4.2.3 配置文件生效
source /etc/profile
4.2.4 验证java环境有效性
[root@surpass jdk1.8.0_361]# java -version
java version "1.8.0_361"
Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)
4.3 安装ant
4.3.1 解压压缩包
# 注意这里的参数是-j,不是-z.
tar -jxvf apache-ant-1.10.12-bin.tar.bz2 -C /usr/local/
4.3.2 配置环境变量
vim /etc/profile
export ANT_HOME=/usr/local/apache-ant-1.10.12
export PATH=$PATH:$ANT_HOME/bin
4.3.3 配置文件生效
source /etc/profile
4.3.4 验证ant环境有效性
[root@surpass apache-ant-1.10.12]# ant -version
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
4.4. 安装pcre
tar -jxvf pcre-8.45.tar.bz2
cd pcre-8.45
./configure --enable-utf8
make
make install
# 验证是否安装成功
[root@surpass bin]# geod
Rel. 6.0.0, March 1st, 2019
4.5 安装swig
tar -zxf swig-2.0.9.tar.gz
cd swig-2.0.9/
./configure
make
make install
[root@surpass swig-2.0.9]# swig -version
SWIG Version 2.0.9
Compiled with g++ [x86_64-unknown-linux-gnu]
Configured options: +pcre
Please see http://www.swig.org for reporting bugs and further information
4.6 安装geos
tar -jxvf geos-3.7.3.tar.bz2
cd geos-3.7.3
make
make install
ldconfig
4.7 安装jpeg
4.7.1 编译插件
tar -zxvf jpegsrc.v8c.tar.gz
cd jpeg-8c/
./configure --prefix=/opt/jpeg
make
make install
4.7.2 查看编译成果
[root@surpass jpeg]# ll /opt/jpeg/
总用量 0
drwxr-xr-x. 2 root root 80 3月 4 22:22 bin
drwxr-xr-x. 2 root root 74 3月 4 22:22 include
drwxr-xr-x. 2 root root 103 3月 4 22:22 lib
drwxr-xr-x. 3 root root 17 3月 4 22:22 share
4.8 安装hdf5
4.8.1 编译插件
tar -zxvf hdf5-1.10.5.tar.gz
cd hdf5-1.10.5
export F9X=ifort
./configure --prefix=/opt/hdf5 --with-hdf4=/opt/hdf4 --with-jpeg=/opt/jpeg --enable-java --enable-cxx
make
make install
4.8.2 查看编译成果
[root@surpass hdf5]# ll /opt/hdf5/
总用量 12
drwxr-xr-x. 2 root root 4096 3月 4 22:32 bin
drwxr-xr-x. 2 root root 4096 3月 4 22:32 include
drwxr-xr-x. 2 root root 4096 3月 4 22:32 lib
drwxr-xr-x. 3 root root 27 3月 4 22:32 share
4.9 安装hdf4
4.9.1 编译插件
tar -zxvf hdf-4.2.13.tar.gz
cd hdf-4.2.13
./configure --prefix=/opt/hdf4 --enable-netcdf --enable-jpeg --with-jpeg=/opt/jpeg --enable-hdf5 --with-hdf5=/opt/hdf5 --enable-shared --disable-fortran --enable-java
make
make install
4.9.2 查看编译成果
[root@surpass hdf-4.2.13]# ll /opt/hdf4
总用量 12
drwxr-xr-x. 2 root root 4096 3月 4 22:36 bin
drwxr-xr-x. 2 root root 4096 3月 4 22:36 include
drwxr-xr-x. 2 root root 4096 3月 4 22:36 lib
drwxr-xr-x. 4 root root 38 3月 4 22:36 share
4.10 安装netcdf
4.10.1 编译插件
tar -zxvf netcdf-c-4.4.1.1.tar.gz
cd netcdf-c-4.4.1.1
CPPFLAGS="-l/opt/hdf4/include -l/opt/hdf5/include -l/opt/jpeg/include"
LDFLAGS="-l/opt/hdf4/lib -l/opt/hdf5/lib -l/opt/jpeg/lib"
./configure --prefix=/opt/netcdf --enable-hdf5 --with-hdf5=/opt/hdf5 --enable-hdf4 --with-hdf4=/opt/hdf4 --enable-jpeg --with-jpeg=/opt/jpeg --disable-netcdf-4
make
make install
4.10.2 查看编译成果
[root@surpass opt]# ll /opt/netcdf/
总用量 0
drwxr-xr-x. 2 root root 78 3月 4 22:40 bin
drwxr-xr-x. 2 root root 63 3月 4 22:40 include
drwxr-xr-x. 3 root root 158 3月 4 22:40 lib
drwxr-xr-x. 3 root root 17 3月 4 22:40 share
5. 安装gdal
5.1 编译软件
经过一系列的插件,终于可以编译gdal了。
tar -zxvf gdal-2.4.4.tar.gz
cd gdal-2.4.4
./configure --prefix=/opt/netcdf --enable-hdf5 --with-hdf5=/opt/hdf5 --enable-hdf4 --with-hdf4=/opt/hdf4 --enable-jpeg --with-jpeg=/opt/jpeg --disable-netcdf-4
make
make install
5.2 修改配置文件
vim /etc/profile
export PATH=${PATH}:/opt/hdf4/include:/opt/hdf4/bin:/opt/hdf5/include:/opt/hdf5/bin:/opt/netcdf/include:/opt/netcdf/bin:/opt/gdal/include:/opt/gdal/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/hdf4/lib:/opt/hdf5/lib:/opt/netcdf/lib:/opt/gdal/lib
source /etc/profile
[root@surpass gdal-2.4.4]# gdalinfo --version
GDAL 2.4.4, released 2020/01/08
6. 后期数据准备
6.1 删除中间编译数据
将/usr/local
、/opt/hdf4
、/opt/hdf5
、/opt/jpeg
、/opt/netcdf
的lib下的所有以a
和la
结尾的文件删除。
6.2 拷贝文件
将/opt/hdf4
、/opt/hdf5
、/opt/jpeg
、/opt/netcdf
下的bin
、include
、lib
、share
分别复制到/usr/local
下相对应的文件夹下。
6.3 压缩导出
将/usr/local
下的bin
、include
、lib
、share
赋值出来打成压缩包。如果想直接用,可以看到这里:gdal2.4.4编译的动态库
7. 打开镜像
7.1 下载centos镜像
docker pull centos
[root@surpass gdal_lib]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.9 eeb6ee3f44bd 17 months ago 204 MB
7.2 打开镜像
- 打开镜像容器
docker run --rm -it centos:7.9 bash
- 将本地文件拷贝容器里
[root@surpass gdal_lib]# docker cp bin/ d21d5b03fbb4:/usr/local [root@surpass gdal_lib]# docker cp include/ d21d5b03fbb4:/usr/local [root@surpass gdal_lib]# docker cp lib/ d21d5b03fbb4:/usr/local [root@surpass gdal_lib]# docker cp share/ d21d5b03fbb4:/usr/local
- 加载动态库
在/etc/ld.so.conf.d
,创建文件gdal.conf,加入如下代码:/usr/local/lib
- 加载动态库
ldconfig
7.3 提交镜像
docker commit -m="gdal_java" -a="surpassliang" d21d5b03fbb4 gdal2.4.4_java:v0.1
[root@surpass gdal_lib]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gdal2.4.4_java v0.1 5895879a8d11 27 seconds ago 759 MB
8. 导出镜像
# 导出镜像
docker save gdal_java:v0.2 | gzip > gdal_java_v0.2.tar.gz
# 导入镜像
gunzip -c gdal_java_v0.2.tar.gz | docker load
相关文章:
基于本地centos构建gdal2.4.4镜像
1.前言 基于基础镜像构建gdal环境一般特别大,一般少则1.6G,多则2G甚至更大,这对于镜像的迁移造成了极大的不便。究其原因在于容器中有大量的源码文件以及编译中间过程文件,还要大量编译需要的yum库。本文主要通过在centos系统上先…...
生产环境线程问题排查
线程状态的解读RUNNABLE线程处于运行状态,不一定消耗CPU。例如,线程从网络读取数据,大多数时间是挂起的,只有数据到达时才会重新唤起进入执行状态。只有Java代码显式调用sleep或wait方法时,虚拟机才可以精准获取到线程…...

Day908.joinsnljdist和group问题和备库自增主键问题 -MySQL实战
join&snlj&dist和group问题和备库自增主键问题 Hi,我是阿昌,今天学习记录的是关于join&snlj&dist和group问题和备库自增主键问题的内容。 一、join 的写法 join 语句怎么优化?中,在介绍 join 执行顺序的时候&am…...
算法 - 剑指Offer 丑数
题目 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 解题思路 这题我使用最简单方法去做, 首先我们可以获取所有2n,3n,5*n的丑数,只是我们这里暂时无法排序,并且可能…...

【ONE·C || 文件操作】
总言 C语言:文件操作。 文章目录总言1、文件是什么?为什么需要文件?1.1、为什么需要文件?1.2、文件是什么?2、文件的打开与关闭2.1、文件指针2.2、文件打开和关闭:fopen、fclose2.3、文件使用方式3、文…...

cmd窗口中java命令报错。错误:找不到或无法加载主类 java的jdk安装过程中踩过的坑
错误: 找不到或无法加载主类 HelloWorld 遇到这个问题时,我尝试过网上其他人的做法。有试过添加classpath,也有试过删除classpath。但是依然报错,这里javac可以编译通过,说明代码应该是没有问题的。只是在运行是出现了错误。我安装…...
Breathwork(呼吸练习)
查了下呼吸练习相关内容,做个记录。我又在油管学习啦。 喜欢在you. tube看一些self-help相关的内容。比如学习方法、拉伸、跑步、力量举、自重锻炼等等。 总是听Obi Vicent说起Breathwork,比如: My 6am Morning Routine | New Healthy Habit…...

taobao.itemprops.get( 获取标准商品类目属性 )
¥开放平台基础API不需用户授权 通过设置必要的参数,来获取商品后台标准类目属性,以及这些属性里面详细的属性值prop_values。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 点…...

QT配置安卓环境(保姆级教程)
目录 下载环境资源 JDK1.8 NDK SDK 安装QT 配置环境 下载环境资源 JDK1.8 介绍JDK是Java开发的核心工具,为Java开发者提供了一套完整的开发环境,包括开发工具、类库和API等,使得开发者可以高效地编写、测试和运行Java应用程序。 下载…...

【uni-app教程】八、UniAPP Vuex 状态管理
八、UniAPP Vuex 状态管理 概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 应用场景 Vue多个组件之间需要共享数据或状态。 关键规则 State:…...
同花顺测试面经(30min)
大概三十分钟,面试官人还挺好的 1.自我介绍 2.详细问你了自我介绍中的一个实习经历 3.对我们公司有什么了解 !!(高频) 4.对测试有什么看法,为什么选测试 5.黑盒白盒分别是什么 6.对测试左移有什么看法…...
C++-简述#ifdef、#else、#endif和#ifndef的作用
回答如下: #ifdef,#else,#endif和#ifndef都是预处理指令,用于条件编译。#ifdef:这个指令用来判断一个宏是否已经被定义过,如果已经定义过,则执行后面的代码块。#else:这个指令一般与…...
VictoriaMetrics 集群部署
官网 ## 官网 https://github.com/VictoriaMetrics/VictoriaMetrics 集群角色详解 VictoriaMetrics 集群模式。主要由 vmstorage ,vminsert,vmselect 三部分组成,这三个组件每个组件都可以单独进行扩展。其中: vmstorage 负责提供数据存储服务vminsert 是数据存…...

【基于感知损失的无监督泛锐化】
PercepPan: Towards Unsupervised Pan-Sharpening Based on Perceptual Loss (PercepPan:基于感知损失的无监督泛锐化) 在基于神经网络的全色锐化文献中,作为地面实况标签的高分辨率多光谱图像通常是不可用的。为了解决这个问题…...
在vercel上用streamlit部署网站
Verce和Streamlit都是非常流行的Web应用程序部署平台。以下是从零开始在Vercel上部署Streamlit应用程序的一些基本步骤。 安装 Streamlit 在本地计算机上安装Streamlit。可以轻松地通过在命令行中运行以下命令来安装: pip install streamlit为 Streamlit 应用程序…...
华为OD机试题 - 斗地主(JavaScript)| 含思路
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜索引擎搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:斗地主题目输入输出描述示例一输入输出示例二输…...
i.MX8MP平台开发分享(clock篇)-计算clock速度相关的内核API
专栏目录:专栏目录传送门 平台内核i.MX8MP5.15.71文章目录 clk消费者clk生产者clk_set_rateclk_round_rateclk_pll1443x_recalc_rate这一篇我们具体来看看其他驱动如何使用clock,这里以lcdif驱动为例。 IMX8MP_CLK_MEDIA_BLK_CTRL_LCDIF_PIXEL是门控时钟,名为pix,这个门控时…...

实验4 设计模式实验3
实验内容: 1. 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通 过该功能可以将原本存储在手机中的通信录、短信、照片、歌曲等资料一次性全 部拷贝到移动存储介质(例如MMC 卡或SD 卡)中。在实现过程中需要与多个 已有的类进行交互,例如通讯录管理类、短信…...

CNN基础
Tip:仅供自己学习记录,酌情参考 1. 前馈与反馈神经网络 神经网络有前馈神经网络和反馈神经网络,前向神经网络也就是前馈神经网络。 前馈型神经网络各神经元接收前一层的输入,并输出给下一层,没有反馈。节点分为两类…...

【UEFI基础】UEFI事件介绍
简述 在【UEFI基础】System Table和Architecture Protocols介绍Boot Service时提到有一部分与事件相关的接口,它们创建、触发、等待和关闭事件,来完成某些功能,本文将进一步介绍事件。 需要注意,因为Boot Service需要在DXE阶段才…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...