基于OpenStack的海量影像入库方案_第1页
基于OpenStack的海量影像入库方案_第2页
基于OpenStack的海量影像入库方案_第3页
基于OpenStack的海量影像入库方案_第4页
基于OpenStack的海量影像入库方案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于OpenStack的

海量影像入库方案超图研究院SuperMapGISTechnologyInstitute研究所

李少华目标本测试是基于OpenStack环境和消息队列,将海量影像数据导入到集中关系型数据库,实现导入方式的并行性处理和自动化处理,体现云环境为GIS应用带来的价值。数据概述数据情况全球影像数据数据格式TIF数据量2.67TB数据分为南北半球,各占1-60分带,大小在200MB~7GB不等数据概述其他说明该数据为分带数据N-02-00.tifN-02-15.tifN-02-20.tifN-03-15.tifN-03-00.tifN-03-45.tifWGS_1984_UTM_zone_2NWGS_1984_UTM_zone_3N环境OpenStack:icehouseGIScript:2005Python3RabbitMQ:3.2.4PikaforPythonUbuntu:15.04SuperMap:iDesktop7.1.2Oracle:11.2.0.4原理通过消息队列,将所有影像数据按照带号进行逻辑划分,带号可以从tif影像的文件名称获得,然后将每个带号下的tif影像的路径写到一个job文本文件中,通过消息服务发出这些工作请求,python服务器接收相关的job文件,然后读取job里面的tif文件,进行创建影像数据集和影像导入追加镶嵌,创建金字塔工作。02.Job04.Job05.Job/temp/data/geotiff/N-04-15.tif/temp/data/geotiff/N-04-25.tif分带投影文件流程Geotiff*.dbfRedhatGeotiff:/data/geotiffOracleMQ(VM)Python(VM)Python(VM)物理刀片存储挂载Data:/temp/data/geotiffMQ:/temp/job/doing|done|todo/temp/tempmountmount02.Job04.Job05.Job/temp/data/geotiff/N-04-15.tif/temp/data/geotiff/N-04-25.tif分带投影文件04.job02.job0、接收消息分发任务1、创建影像数据集a.读取N-02*.tif

b.获得参数及范围

c.创建2、导入并追加镶嵌影像3、继续接收消息任务存储层刀片层虚拟机层关于数据和路径首先为数据库服务器挂载约3TB的存储,映射路径为/data/geotiff,然后消息队列虚拟机和Python虚拟机通过mount命令将数据挂载到虚拟机本地,确保两者的路径信息完全一样,这样可以保证消息队列分配的任务,python机器可以访问同样的路径获得数据。GeotiffRedhatGeotiff:/data/geotiffOracleMQPythonPython物理刀片存储挂载Data:/temp/data/geotiffMQ:/temp/job/doing|done|todo/temp/tempmountmount导入策略-1导入并镶嵌影像数据集Tif影像投影转换创建金字塔Tif影像Tif影像创建全球影像数据集直接创建一个全球地理坐标系,然后将tif文件进行投影转换,再导入或者追加镶嵌到全球影像数据集,最后创建金字塔。优势:投影一致,如果对全球影像数据进行分布式集群切图效率会很高。问题:目前我们的GIScript2005程序还没有将投影转换功能集成过来。导入策略-2分幅影像数据集Tif影像Tif影像创建金字塔分幅影像数据集Tif影像Tif影像创建金字塔创建分幅投影的影像数据集,在创建影像数据集时需要注意获得所包含tif文件的最大最小范围,然后比较后获得一个包络矩形范围,这样才能保证所有的tif影像可以导入并镶嵌到该影像数据集内。优势:任务切分逻辑明显,金字塔操作也可以归类到不同的Python虚拟机执行。缺点:如果最终需要切图,因为需要创建一个全球地图投影的地图,然后其他影像数据集进行动态投影到一幅全球影像地图,对影响切图效率。创建影像数据集读取影像获得影像参数WidthHeightPixelFormatBound(L、T、B、R)BandCountBlockHeightBlockWidth影像列表循环比较影像Bounds获得Min(left)Max(top)Max(right)Min(bottom)创建影像数据集消息队列关于消息队列使用了RabbitMQ作为消息服务器,根据相关原理介绍,将相关文件按照分带进行job文件的生成,然后发送到消息队列中,针对消息的处理,划分四个维度。将处理的任务(todo)、正在处理的任务(doing)、已经完成处理的任务(done)、出错的任务(error),也就是创建四个文件夹,Python客户端接收任务时根据处理的情况,将job文件存放在不同的操作目录中。Error架构图消息队列关于消息队列使用了RabbitMQ作为消息服务器,根据相关原理介绍,将相关文件按照分带进行job文件的生成,然后发送到消息队列中,针对消息的处理,划分四个维度。将处理的任务(todo)、正在处理的任务(doing)、已经完成处理的任务(done)、出错的任务(error),也就是创建四个文件夹,Python客户端接收任务时根据处理的情况,将job文件存放在不同的操作目录中。结果展示结果展示入库效率对比方案1:使用一体机刀片服务器入库,刀片服务器配置32个CPU核心,128GB内存,将整个北半球的影像(1.95TB)入库共花费时间约23.77小时。而且入库过程中造成了资源利用率低下,浪费了大量的计算资源。入库效率对比方案2:可以将同资源的的刀片进行虚拟化,基于OpenStack的私有云技术,然后生成两种虚拟机类型,消息服务器虚拟机和Python工作虚拟机。……OpenStackRabbitMQServerPythonWorker入库效率对比Python工作虚拟机可以根据资源情况虚拟多台,例如本次设置的Python虚拟机的云主机配置类型为4个vCPU和4GB内存,但是在入库过程中发现,其实虚拟机的CPU利用率并不高。本次测试开启了1个消息服务器,和18个Python工作服务器,导入时间约5小时(由于不同的虚拟机接到的job的工作量不一样),以最后一个导入完毕计算结束时间。

入库效率对比

单个刀片单个虚拟机(4核/4GB)单个tif(4-5GB)240s300-600s批量导入56GB约40分钟41

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论