需求
OpenDroneMap(ODM)是一个开源项目,旨在利用无人机采集的图像数据生成地图、模型和其他地理空间数据。它主要解决以下问题:
- 航空摄影数据处理:ODM可以处理无人机拍摄的大量航空图像数据,通过图像处理和计算机视觉技术生成高质量的地图和模型。
- 地图制作与更新:利用ODM,用户可以快速、成本效益地生成地图,并及时更新地理空间数据,有助于城市规划、灾害监测等领域的应用。
- 三维建模:ODM可以生成精确的三维模型,对于建筑物、地形等的三维建模具有重要意义,可用于虚拟现实、游戏开发等领域。
- 资源管理:通过ODM生成的地图和模型,可以帮助资源管理部门更好地监控土地利用、自然资源管理等情况,提高资源利用效率。
由于,单节点
需要大量的时间生成模型,需要通过集群模式
搭建测试是否能够通过水平拓展的方式线性增加odm处理模型的能力。
资源信息
服务器 | 资源信息 | 备注 |
---|---|---|
ClustOdm(master) | 20核32G | 用于资源调度,不参与计算 |
OdmNode(node1) | 8核心16G | |
OdmNode(node2) | 8核16G | |
OdmNode(node3) | 4核8G |
搭建Docker
通过shell脚本,安装阿里镜像源并安装docker
#!/bin/bash# 安装wget工具
yum -y install wget# 切换到/etc/yum.repos.d/目录
cd /etc/yum.repos.d/# 创建一个备份文件夹
mkdir bak# 将当前目录下的所有.repo文件移动到备份文件夹
mv *.repo bak/# 从阿里云下载CentOS-Base.repo文件,并保存到/etc/yum.repos.d/目录
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 清理yum缓存
yum clean all# 更新yum缓存
yum makecache# 安装vim、lsof和network-tools软件包
yum install -y vim && yum install -y lsof && yum install -y network-tools && yum -y install lrzsz && yum -y install lsof# 安装yum-utils软件包
yum install -y yum-utils# 添加Docker的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装Docker相关软件包
yum install -y docker-ce docker-ce-cli containerd.io# 启动Docker服务并查看状态
systemctl start docker && systemctl status docker
搭建OpenDroneMap(node)
8080
:代理服务器备用端口;3000
:node开发服务器端口
docker run -it -p 3000:3000 -p 8080:8080 opendronemap/nodeodm
搭建ClusterOdm(master)
8080
:代理服务器备用端口;3000
:node开发服务器端口10000
:查看集群状态
docker run -it -p 3001:3000 -p 8081:8080 -p 10001:10000 opendronemap/clusterodm
动态加入node
# 集群状态
[root@localhost ~]# telnet localhost 8080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Welcome ::ffff:172.17.0.1:43468 ClusterODM:1.5.3
HELP for help
QUIT to quit
# 集群节点
#> node list
1) 172.30.50.57:3000 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
2) 172.30.50.58:3000 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
3) 172.30.50.56:3000 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
4) 172.30.50.37:3001 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
# 添加节点
#> node add localhost 3000
# 查看是否添加成功
#> node list
1) 172.30.50.57:3000 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
2) 172.30.50.58:3000 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
3) 172.30.50.56:3000 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
4) 172.30.50.37:3001 [online] [0/1] <engine: odm 3.3.4> <API: 2.2.2>
查看是否成功加入集群
- 访问:http://localhost:10000