CN106021567A - 一种基于Hadoop的海量矢量数据划分方法及系统 - Google Patents
一种基于Hadoop的海量矢量数据划分方法及系统 Download PDFInfo
- Publication number
- CN106021567A CN106021567A CN201610377710.5A CN201610377710A CN106021567A CN 106021567 A CN106021567 A CN 106021567A CN 201610377710 A CN201610377710 A CN 201610377710A CN 106021567 A CN106021567 A CN 106021567A
- Authority
- CN
- China
- Prior art keywords
- data
- space
- spatial
- block
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Abstract
本发明涉及一种基于Hadoop的海量矢量数据划分方法及系统。该方法包括:基于Hilbert空间填充曲线对空间数据集中的空间要素进行空间编码;通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集;根据所述空间数据样本信息集生成空间数据划分矩阵;根据所述空间数据划分矩阵将各个空间要素划分入对应的存储数据块中,同时将相邻数据块分发至同一集群节点上。本发明系统将Hilbert空间填充曲线引入到数据抽样和划分规则中,充分考虑空间数据相邻对象的空间位置关系、空间对象的自身大小以及相同编码块的空间对象个数等影响要素,不仅保证了样本信息集的空间分布特征,提高了海量矢量数据的空间索引效率;同时也保证了基于HDFS数据块存储的负载均衡。
Description
技术领域
本发明涉及空间大数据技术领域,尤其涉及一种基于Hadoop的海量矢量数据划分方法及系统。
背景技术
随着大数据时代的到来,传统的数据存储和处理方式都面临着严峻的挑战,大数据时代的大量化(Volume)、多样化(Variety)、快速化(Velocity)和价值密度低(Value)等特点让传统的工具和处理方法有时只能望“数据”而兴叹。在地理空间矢量数据管理领域,现有成熟的地理信息系统(GIS,geographic information system)空间数据多依赖于关系型数据库存储,在海量数据管理、高并发访问以及扩展性等方面都有先天的局限性,从而在大数据时代已经无法发挥应有的作用。
云计算技术的出现,为实现海量数据的存储与管理提供了理想的解决方案。其中,基于分布式存储与并行化处理的Hadoop大数据平台,由于其具有易扩展、高容错、可靠、高效、经济等特点,近几年在科学计算、人工智能、数据挖掘、信息处理等各个领域都得到了广泛的应用,成为最受欢迎的开源大数据处理平台之一。Hadoop作为云计算平台,采用Master/Slavers的主从结构,将海量数据分发至集群节点,利用分布式文件系统HDFS来分布式存储海量数据,通过MapReduce来进行海量数据的并行计算。因此,基于Hadoop云计算平台,进行空间大数据的索引、存储以及管理计算等成为了近年来研究的热点。
空间数据抽样与划分方法是空间大数据索引方法及其数据存储的重要组成部分。Hadoop是基于HDFS的分布式存储系统,其数据结构以块为单位进行数据存储。而在空间索引过程中,如何抽样和划分数据是基于Hadoop存储与管理海量矢量数据的关键。目前基于Hadoop建立空间索引的方法采用基于随机抽样理论建立空间数据划分规则,然后对所有空间要素进行逐一划分。由于样本的随机性,对空间索引技术本身而言,一方面无法保证其空间索引结果的一致性,另一方面也会丢失空间数据的空间分布特征,从而导致最终数据的划分结果并不理想。对Hadoop平台而言,由于样本的随机性,其建立的数据划分规则无法保证数据的均衡分布,进而造成Reduce负载分布不均,使得整个任务执行效率降低;同时,其结果也将直接导致HDFS上严重的数据倾斜(Data Skew);另外,目前的并行化空间划分算法,尽管能够将相邻的要素存储到了同一个数据块中,但并不能保证相邻的数据块存储在同一个集群节点上。
发明内容
本发明所要解决的技术问题是:基于Haoop的海量矢量数据划分与存储问题。
为解决上述技术问题,本发明一方面提出了一种基于Hadoop的海量矢量数据划分方法,该基于Hadoop的海量矢量数据划分方法包括:
基于Hilbert空间填充曲线对空间数据集中的空间要素进行空间编码;
通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集;
根据所述空间数据样本信息集生成空间数据划分矩阵;
根据所述空间数据划分矩阵将各个空间要素划分入对应的存储数据块中,同时将相邻数据块分发至同一集群节点上。
可选地,所述基于Hilbert空间填充曲线对空间数据集中的空间要素进行空间编码包括:
基于Hilbert空间填充曲线通过Map函数遍历空间数据集中的空间要素,计算各个空间要素对应的空间编码。
可选地,所述通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集包括:
通过Map函数实现各个空间要素的键值化,获取各个空间要素对应的数据量大小和空间位置信息;
通过Reduce函数生成空间数据样本信息集,其内容包括编码块对应的空间编码、编码块大小和二级划分样本集合。
可选地,所述根据所述空间数据样本信息集生成空间数据划分矩阵包括:
根据当前编码块与HDFS数据存储块之间的数据量大小关系,确定该编码块在HDFS上的存储编号;
若当前编码块大小小于存储数据块大小的最小阈值,则所述当前编码块对应的存储数据块编号与相邻编码块相同,在数据划分过程中将所述当前编码块和与所述当前编码块相邻的编码块写入同一存储数据块当中;
若当前编码块大小大于存储数据块大小的最大阈值,则所述当前编码块对应的存储数据块包括多个存储编号,在数据划分过程中将所述当前编码块分割为多个数据块进行存储;对分割后的数据碎片进行合并处理;
所述空间数据划分矩阵内容包括空间编码、存储数据块编号和二级划分样本集合。
可选地,所述根据所述空间数据划分矩阵将各个空间要素划分入对应的存储数据块中,同时将相邻数据块分发至同一集群节点上包括:根据所述空间数据划分矩阵,遍历整个空间要素集,获取各个空间要素的Hilbert编码,通过与划分矩阵匹配,得到相应的HDFS存储编号,将各个空间要素划分入与所述存储数据块编号对应的存储数据块中;同时将相邻数据块分发至同一集群节点上。
本发明另一方面提出了一种基于Hadoop的海量矢量数据划分系统,该基于Hadoop的海量矢量数据划分系统包括:
空间编码生成单元,用于基于Hilbert空间填充曲线对空间数据集中的空间要素生成对应的空间编码;
空间数据样本信息集生成单元,用于通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集;
空间数据划分矩阵生成单元,用于根据所述空间数据样本信息集生成空间数据划分矩阵;
空间数据划分单元,用于根据所述空间数据划分矩阵对空间数据进行空间划分。
可选地,所述空间编码生成单元包括:
空间数据编码模块,用于基于Hilbert空间填充曲线,通过Map函数遍历空间数据集中的空间要素,计算各个空间要素对应的空间编码。
可选地,所述空间数据样本信息集生成单元包括:
空间要素键值化模块,用于通过Map函数实现各个空间要素的键值化,获取各个空间要素对应的数据量大小和空间位置信息;
空间数据样本信息集生成模块,用于通过Reduce函数生成空间数据样本信息集,其内容包括编码块对应的空间编码、编码块大小和二级划分样本集合。
可选地,所述空间数据划分矩阵生成单元包括:
存储编号计算模块,用于通过Map函数,根据当前编码块与HDFS数据存储块之间的数据量大小关系,确定该编码块在HDFS上的存储编号;
划分矩阵生成模块,用于通过Reduce函数生成与空间数据样本信息集对应的空间数据划分矩阵,所述空间数据划分矩阵内容包括空间编码、存储数据块编号和二级划分样本集合。
可选地,所述空间数据划分单元包括:
空间数据划分模块,用于根据所述空间数据划分矩阵将各个空间要素划分入与所述存储数据块编号对应的存储数据块中;
数据块分发模块,用于将相邻的数据块分发至同一集群节点上。
本发明提供的基于Hadoop的海量矢量数据划分方法及系统,将Hilbert空间填充曲线引入到数据抽样和划分规则中,充分考虑空间数据相邻对象的空间位置关系、空间对象的自身大小以及相同编码块的空间对象个数等影响要素,不仅有效地保证了样本信息集的空间分布特征,提高了海量矢量数据的空间索引效率;同时也保证了基于HDFS数据块存储的负载均衡,使得海量矢量数据的存储和计算效率得到较大提升。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明一个实施例的基于Hadoop的海量矢量数据划分方法的流程示意图;
图2示出了本发明一个实施例的生成空间数据样本信息集的流程示意图;
图3示出了本发明一个实施例的生成空间数据划分矩阵进行数据划分的流程示意图;
图4示出了本发明一个实施例的矢量数据划分方法与现有技术的随机抽样方法的数据划分结果对比图;
图5示出了本发明一个实施例的基于Hadoop的海量矢量数据划分系统的结构示意图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
图1示出了本发明一个实施例的基于Hadoop的海量矢量数据划分方法的流程示意图。如图1所示,该实施例的基于Hadoop的海量矢量数据划分方法,包括:
S11:基于Hilbert空间填充曲线对空间数据集中的空间要素进行空间编码;
S12:通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集;
S13:根据所述空间数据样本信息集生成空间数据划分矩阵;
S14:根据所述空间数据划分矩阵将各个空间要素划分入对应的存储数据块中,同时将相邻数据块分发至同一集群节点上。
本发明实施例的基于Hadoop的海量矢量数据划分方法,将Hilbert空间填充曲线引入到数据抽样和划分规则中,充分考虑空间数据相邻对象的空间位置关系、空间对象的自身大小以及相同编码块的空间对象个数等影响要素,不仅有效地保证了样本信息集的空间分布特征,提高了海量矢量数据的空间索引效率;同时也保证了基于HDFS数据块存储的负载均衡,使得海量矢量数据的存储和计算效率得到较大提升。
在一种可选的实施方式中,所述基于Hilbert空间填充曲线对空间数据集中的空间要素进行空间编码包括:
基于Hilbert空间填充曲线通过Map函数遍历空间数据集中的空间要素,计算各个空间要素对应的空间编码。
进一步地,所述通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集包括:
通过Map函数实现各个空间要素的键值化,获取各个空间要素对应的数据量大小和空间位置信息;
通过Reduce函数生成空间数据样本信息集,其内容包括编码块对应的空间编码、编码块大小和二级划分样本集合。
在实际应用中,系统根据用户的输入空间矢量数据集和设定参数N,N为Hilbert空间填充单元总个数(系统默认值为256),通过Map函数遍历所有空间数据要素,对每一个空间要素做一下操作:
1)计算并记录其对应的Hilbert空间编码(Scode);
2)记录该要素的字符大小(Size);
3)记录该空间要素,如果空间要素类型为点(包含多点),则记录该空间要素点坐标(Point);如果空间要素类型为线(包含多线)或者为面(包含多面),则记录该空间要素的中心点坐标(CenterPoint)。
通过该Map任务现所有空间要素的键值化,其中键Key为空间编码(Scode),值Value为每一个要素的字符大小(Size)和中心点坐标(CenterPoint)。
具体地,所述根据所述空间数据样本信息集生成空间数据划分矩阵包括:
根据当前编码块与HDFS数据存储块之间的数据量大小关系,确定该编码块在HDFS上的存储编号;
若当前编码块大小小于存储数据块大小的最小阈值,则所述当前编码块对应的存储数据块编号与相邻编码块相同,在数据划分过程中将所述当前编码块和与所述当前编码块相邻的编码块写入同一存储数据块当中;
若当前编码块大小大于存储数据块大小的最大阈值,则所述当前编码块对应的存储数据块包括多个存储编号,在数据划分过程中将所述当前编码块分割为多个数据块进行存储;对分割后的数据碎片进行合并处理;
所述空间数据划分矩阵内容包括空间编码、存储数据块编号和二级划分样本集合。
本实施方式的基于Hadoop的海量矢量数据划分方法不仅考虑了空间矢量数据的空间分布特征,同时也考虑了影响HDFS数据倾斜的要素字符大小等影响要素,并依据HDFS存储数据块的大小来生成对编码块的二级划分样本集。
在实际应用中,如果当前编码块大小(CodeSize)远小于HDFS的存储数据块大小(BlockSize),则该编码块对应的HDFS存储数据块编号与相邻编码块相同。这样意味着在划分过程中,将对小于HDFS存储数据块大小的编码块进行合并,直至到与BlockSize相差在阈值范围之内;如果当前编码块大小(CodeSize)远大于HDFS的存储数据块大小(BlockSize),则该编码块对应的HDFS存储数据块编号将含有多个Id。这样意味着在划分过程中,将对大于HDFS存储数据块大小的编码块进行二次划分,直至到与BlockSize相差在阈值范围之内。
所述根据所述空间数据划分矩阵将各个空间要素划分入对应的存储数据块中,同时将相邻数据块分发至同一集群节点上包括:根据所述空间数据划分矩阵,遍历整个空间要素集,获取各个空间要素的Hilbert编码,通过与划分矩阵匹配,得到相应的HDFS存储编号,将各个空间要素划分入与所述存储数据块编号对应的存储数据块中;同时将相邻数据块分发至同一集群节点上。
本实施例的基于Hadoop的海量矢量数据划分方法,将Hilbert空间填充曲线引入到海量矢量数据抽样当中,在抽样和划分阶段,充分考虑空间数据相邻对象的空间位置关系、空间对象的自身大小以及相同编码块的空间对象个数等影响要素,并通过“合并小编码块,分解大编码块”的划分原则,实现了云环境下海量矢量数据的抽样与划分并行化算法。本发明方法不仅能够提高海量矢量数据的空间索引效率,而且也能够很好地解决空间矢量数据在分布式存储HDFS上的数据倾斜问题,从而使得空间矢量数据在Hadoop中的存储和计算效率得到较大提升。
以下结合实例数据对本发明的方法做详细的描述。
本发明实例数据集为全球县级行政单元数据,为面状要素,实验环境为Hadoop1.2.1(本方法不限于此版本)。
一、用户设定方法参数。
用户根据系统提示,设定本发明方法的参数,主要包括空间抽样单元大小,即Hilbert网格数目N,和编码块阈值ρ。本示例设定N=256;ρ为0.2,则ρmax为1.2;ρmin为0.8;HDFS默认数据块大小为64M。
二、空间编码。
基于Hilbert空间填充曲线,利用Map函数,遍历数据集所有空间要素,获取该要素的Hilbert编码号(Scode),大小(Size)以及中心点坐标(CenterPoint);并按照键值对进行规范化,可表述为:<Scode,Size;CenterPoint>。
Map空间编码任务完成后,经过排序汇总生成Reduce输入数据记录,每一条记录Key为空间编码值Scode,Value为该空间编码值的包含的所有空间要素集,每条记录可表述为:<Scode,(Size;CenterPoint)(Size;CenterPoint)……(Size;CenterPoint)>。该集合为编码块。
三、空间抽样。
图2示出了本发明一个实施例的生成海量空间数据样本信息集的流程示意图。如图2所示,针对Map函数的输出结果,通过Reduce函数生成空间数据样本信息集(SampleSet)。该步骤主要实现对具有相同空间编码(Scode)的空间要素,累计其数据量总和编码块大小CodeSize,判断CodeSize与HDFS的数据块默认大小BlockSize之间的倍数关系,如果CodeSize>BlockSize*ρmax,则计算该空间编码对应数据的二级划分样本集合(SubSplits);否则,其二级划分样本集合为{0}。
其中,ρmax为HDFS默认数据块的最大倍数,默认值为1.2;二级划分样本集合(SubSplits)计算方法如下:
为了保证所建立的空间索引更优,首先计算该编码块对应的长度和宽度(约定X(经度)方向为宽度,Y(纬度)方向为长度),如果宽度大于长度,将计算X方向集合;否则,计算Y方向集合。计算方法先将该编码中要素的平均大小,然后按照固定间隔,对有序要素获取相应的X方向或者Y方向的切分点集合,形成二级划分样本集。
通过该步骤我们可以得到一个空间数据样本集合A,可表述为:
A={Scodei,CodeSizei,subSplitsi},(i=0,1,2......n)
集合A中,Scode为Hilbert编码;CodeSize为该编码块大小;SubSplits为该编码块对应的二级划分样本集,该集合用B表示,可表述为:
四、生成空间数据划分矩阵。
图3示出了本发明一个实施例的生成空间数据划分矩阵进行数据划分的流程示意图。如图3所示,根据空间数据样本信息集A,生成空间数据划分矩阵C,可表述为:
矩阵C中,第一列为空间编码,第二列为数据块Id,第三列为二级划分样本点集合。由空间数据样本信息集A向空间数据划分矩阵C转换,必须遵循以下原则:
1)如果,CodeSizei小于BlockSize*ρmin,那么BlockIdi+1=BlockIdi,意味着将合并这两编码块作为一个数据块;如果两者之和依旧小于BlockSize*ρmin,那么,将继续与下一个编码块要素进行合并,一直到所合并的编码块的大小之和大于BlockSize*ρmin;其中,前置条件为下一个编码块的大小不应超过BlockSize*0.5;
2)如果,CodeSizei大于BlockSize*ρmax,那么,将根据其二级划分样本集合B,计算当前的BlockIdi,其对应的计算公式为:BlockIdi=BlockIdi-1+j;其中j为当前空间要素中线点坐标X值或者Y值在集合B中所处的区间。如,小于集合B中第一个值,取O,大于第一个而小于第二个,取1,以此类推;
3)如果,CodeSizei介于最大和最小两者之间,那么,该编码块所对应的数据块Id计算公式为:BlockIdi=BlockIdi-1+1;
五、空间数据划分。
基于步骤三中得到的空间划分矩阵C,通过Map函数,遍历所有空间要素,计算其Hilbert空间编码,判断其所属编码块,然后通过Reduce函数,将其写入到对应的数据块BlockId中,同时将相邻的编码块分发至同一集群节点上,至此,完成所有空间数据的划分工作。
为了很好的完成本发明方法的实施工作,系统基于该方法实现了R-tree空间索引的建立。在图4中,分别进行了本发明方法与传统方法在创建空间索引优越性(Area(T)和Overlap(T))和HDFS存储数据块倾斜度(STD(BlockSize))两个方面做了对比试验。通过对比,本发明方法不仅能够提高海量矢量数据的索引效率,能够很好的保证数据的空间分布特征,将相邻或者相近的空间要素划分的相同数据块中进行存储,以提高空间查询分析等操作效率;同时在HDFS存储数据块的数据倾斜方面,也表现优越,能够将存储数据块的大小限制在用户设定的阈值范围之内,从而很大程度上提高了空间矢量数据在Hadoop中的存储和计算效率。
需要说明的是,本方法基于开源云计算平台Hadoop1.2.1(不限于该版本)中实现为一个软件模块,编程语言为JAVA。
本实施方式的基于Hadoop的海量矢量数据划分具有如下有益技术效果:
1)将Hilbert空间填充曲线引入到海量矢量数据抽样当中,与随机抽样相比,有效地保证了样本信息集的空间分布特征;
2)利用空间数据样本信息集代替了单纯的样本点抽样方案,引入了空间编码、编码块大小、二级划分样本集等直接因素,来调控空间数据划分规则;
3)将Hilbert空间填充曲线引入到海量矢量数据划分规则中,利用其编码相邻则空间位置相邻的特点,来合并相邻的小编码块,不仅能够确保同一数据块中存放相邻的空间要素集,同时也能够保证相邻的数据块存储在同一个集群环境的节点上。
4)根据HDFS默认数据块的大小,来生成空间数据划分矩阵。采用“合并小编码块,分解大编码块”的原则,来完成数据块的划分工作,有效降低了数据倾斜程度,保证了基于HDFS数据块存储的负载均衡,使得海量矢量数据的存储和计算效率得到较大提升;
5)本方法提供了相应的可配置参数,用户可以针对自己的数据,通过调节Hilbert网格数N,以及编码块阈值ρ,来进一步提高任务的执行效率;
6)基于该方法能够大大提高海量矢量数据的索引效率,而且,也保证了其空间索引的一致性,不受集群大小的影响;同时也满足了Hadoop对大数据的存储和处理要求;
7)本方法针对空间海量矢量数据,适用于云计算平台的集群环境,更适合当前学术界和工业界相关空间大数据管理系统的应用场景。
图5示出了本发明一个实施例的基于Hadoop的海量矢量数据划分系统的结构示意图。如图5所示,该实施例的基于Hadoop的海量矢量数据划分系统包括:空间编码生成单元51、空间数据样本信息集生成单元52、空间数据划分矩阵生成单元53和空间数据划分单元54;具体地:
空间编码生成单元51,用于基于Hilbert空间填充曲线对空间数据集中的空间要素生成对应的空间编码;
空间数据样本信息集生成单元52,用于通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集;
空间数据划分矩阵生成单元53,用于根据所述空间数据样本信息集生成空间数据划分矩阵;
空间数据划分单元54,用于根据所述空间数据划分矩阵对空间数据进行空间划分。
具体地,空间编码生成单元51包括:
空间数据编码模块,用于基于Hilbert空间填充曲线,通过Map函数遍历空间数据集中的空间要素,计算各个空间要素对应的空间编码。
具体地,空间数据样本信息集生成单元52包括:
空间要素键值化模块,用于通过Map函数实现各个空间要素的键值化,获取各个空间要素对应的数据量大小和空间位置信息;
空间数据样本信息集生成模块,用于通过Reduce函数生成空间数据样本信息集,其内容包括编码块对应的空间编码、编码块大小和二级划分样本集合。
具体地,空间数据划分矩阵生成单元53包括:
存储编号计算模块,用于通过Map函数,根据当前编码块与HDFS数据存储块之间的数据量大小关系,确定该编码块在HDFS上的存储编号;
划分矩阵生成模块,用于通过Reduce函数生成与空间数据样本信息集对应的空间数据划分矩阵,所述空间数据划分矩阵内容包括空间编码、存储数据块编号和二级划分样本集合。
具体地,空间数据划分单元54包括:
空间数据划分模块,用于根据所述空间数据划分矩阵将各个空间要素划分入与所述存储数据块编号对应的存储数据块中;数据块分发模块,用于将相邻的数据块分发至同一集群节点上。
本实施例所述的基于Hadoop的海量矢量数据划分系统可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
本发明提供的基于Hadoop的海量矢量数据划分方法及系统,将Hilbert空间填充曲线引入到数据抽样和划分规则中,在抽样和划分阶段,充分考虑空间数据相邻对象的空间位置关系、空间对象的自身大小以及相同编码块的空间对象个数等影响要素,不仅有效地保证了样本信息集的空间分布特征,提高了海量矢量数据的空间索引效率;同时也保证了基于HDFS数据块存储的负载均衡,使得海量矢量数据的存储和计算效率得到较大提升。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于Hadoop的海量矢量数据划分方法,其特征在于,包括:
基于Hilbert空间填充曲线对空间数据集中的空间要素进行空间编码;
通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集;
根据所述空间数据样本信息集生成空间数据划分矩阵;
根据所述空间数据划分矩阵将各个空间要素划分入对应的存储数据块中,同时将相邻数据块分发至同一集群节点上。
2.根据权利要求1所述的基于Hadoop的海量矢量数据划分方法,其特征在于,所述基于Hilbert空间填充曲线对空间数据集中的空间要素进行空间编码包括:
基于Hilbert空间填充曲线通过Map函数遍历空间数据集中的空间要素,计算各个空间要素对应的空间编码。
3.根据权利要求1所述的基于Hadoop的海量矢量数据划分方法,其特征在于,所述通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集包括:
通过Map函数实现各个空间要素的键值化,获取各个空间要素对应的数据量大小和空间位置信息;
通过Reduce函数生成空间数据样本信息集,其内容包括编码块对应的空间编码、编码块大小和二级划分样本集合。
4.根据权利要求1所述的基于Hadoop的海量矢量数据划分方法,其特征在于,所述根据所述空间数据样本信息集生成空间数据划分矩阵包括:
根据当前编码块与HDFS数据存储块之间的数据量大小关系,确定该编码块在HDFS上的存储编号;
若当前编码块大小小于存储数据块大小的最小阈值,则所述当前编码块对应的存储数据块编号与相邻编码块相同,在数据划分过程中将所述当前编码块和与所述当前编码块相邻的编码块写入同一存储数据块当中;
若当前编码块大小大于存储数据块大小的最大阈值,则所述当前编码块对应的存储数据块包括多个存储编号,在数据划分过程中将所述当前编码块分割为多个数据块进行存储;对分割后的数据碎片进行合并处理;
所述空间数据划分矩阵内容包括空间编码、存储数据块编号和二级划分样本集合。
5.根据权利要求1所述的基于Hadoop的海量矢量数据划分方法,其特征在于,所述根据所述空间数据划分矩阵将各个空间要素划分入对应的存储数据块中,同时将相邻数据块分发至同一集群节点上包括:根据所述空间数据划分矩阵,遍历整个空间要素集,获取各个空间要素的Hilbert编码,通过与划分矩阵匹配,得到相应的HDFS存储编号,将各个空间要素划分入与所述存储数据块编号对应的存储数据块中;同时将相邻数据块分发至同一集群节点上。
6.一种基于Hadoop的海量矢量数据划分系统,其特征在于,包括:
空间编码生成单元,用于基于Hilbert空间填充曲线对空间数据集中的空间要素生成对应的空间编码;
空间数据样本信息集生成单元,用于通过Map函数和Reduce函数实现空间要素的键值化,并生成空间数据样本信息集;
空间数据划分矩阵生成单元,用于根据所述空间数据样本信息集生成空间数据划分矩阵;
空间数据划分单元,用于根据所述空间数据划分矩阵对空间数据进行空间划分。
7.根据权利要求6所述的基于Hadoop的海量矢量数据划分系统,其特征在于,所述空间编码生成单元包括:
空间数据编码模块,用于基于Hilbert空间填充曲线,通过Map函数遍历空间数据集中的空间要素,计算各个空间要素对应的空间编码。
8.根据权利要求6所述的基于Hadoop的海量矢量数据划分系统,其特征在于,所述空间数据样本信息集生成单元包括:
空间要素键值化模块,用于通过Map函数实现各个空间要素的键值化,获取各个空间要素对应的数据量大小和空间位置信息;
空间数据样本信息集生成模块,用于通过Reduce函数生成空间数据样本信息集,其内容包括编码块对应的空间编码、编码块大小和二级划分样本集合。
9.根据权利要求6所述的基于Hadoop的海量矢量数据划分系统,其特征在于,所述空间数据划分矩阵生成单元包括:
存储编号计算模块,用于通过Map函数,根据当前编码块与HDFS数据存储块之间的数据量大小关系,确定该编码块在HDFS上的存储编号;
划分矩阵生成模块,用于通过Reduce函数生成与空间数据样本信息集对应的空间数据划分矩阵,所述空间数据划分矩阵内容包括空间编码、存储数据块编号和二级划分样本集合。
10.根据权利要求6所述的基于Hadoop的海量矢量数据划分系统,其特征在于,所述空间数据划分单元包括:
空间数据划分模块,用于根据所述空间数据划分矩阵将各个空间要素划分入与所述存储数据块编号对应的存储数据块中;
数据块分发模块,用于将相邻的数据块分发至同一集群节点上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377710.5A CN106021567B (zh) | 2016-05-31 | 2016-05-31 | 一种基于Hadoop的海量矢量数据划分方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377710.5A CN106021567B (zh) | 2016-05-31 | 2016-05-31 | 一种基于Hadoop的海量矢量数据划分方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021567A true CN106021567A (zh) | 2016-10-12 |
CN106021567B CN106021567B (zh) | 2019-09-24 |
Family
ID=57092699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610377710.5A Active CN106021567B (zh) | 2016-05-31 | 2016-05-31 | 一种基于Hadoop的海量矢量数据划分方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021567B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547859A (zh) * | 2016-10-21 | 2017-03-29 | 杭州朗和科技有限公司 | 一种多租户数据存储系统下的数据文件的存储方法及装置 |
CN106598729A (zh) * | 2016-11-18 | 2017-04-26 | 深圳市证通电子股份有限公司 | 分布式并行计算系统的数据分配方法及系统 |
CN108629005A (zh) * | 2018-05-04 | 2018-10-09 | 北京林业大学 | 一种地震应急的主题词的探测方法及装置 |
CN109426500A (zh) * | 2017-06-21 | 2019-03-05 | 中国石油化工股份有限公司 | 基于su软件包绘制十进制采样点的方法及系统 |
CN109672690A (zh) * | 2019-01-29 | 2019-04-23 | 哈尔滨工业大学 | 一种针对数据幅值范围已知的数据流进行编码的方法 |
CN110109751A (zh) * | 2019-04-03 | 2019-08-09 | 百度在线网络技术(北京)有限公司 | 分布式切图任务的分配方法、装置及分布式切图系统 |
WO2019169619A1 (zh) * | 2018-03-09 | 2019-09-12 | 深圳大学 | 大数据随机采样数据子块的划分方法及装置 |
CN110264722A (zh) * | 2019-07-03 | 2019-09-20 | 泰华智慧产业集团股份有限公司 | 信息采集设备中异常设备的筛选方法及系统 |
CN112541044A (zh) * | 2019-09-20 | 2021-03-23 | 中移(苏州)软件技术有限公司 | 一种数据库设计方法、装置以及存储介质 |
CN113342917A (zh) * | 2021-06-29 | 2021-09-03 | 维沃移动通信有限公司 | 空间位置查找方法、装置、电子设备及存储介质 |
CN116796083A (zh) * | 2023-06-29 | 2023-09-22 | 山东省国土测绘院 | 一种空间数据划分方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929989A (zh) * | 2012-10-19 | 2013-02-13 | 南京邮电大学 | 一种地理空间数据在云计算平台上的负载均衡方法 |
CN103744998A (zh) * | 2014-01-23 | 2014-04-23 | 中国人民解放军国防科学技术大学 | 一种大规模空间矢量数据层次划分存储组织方法 |
-
2016
- 2016-05-31 CN CN201610377710.5A patent/CN106021567B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929989A (zh) * | 2012-10-19 | 2013-02-13 | 南京邮电大学 | 一种地理空间数据在云计算平台上的负载均衡方法 |
CN103744998A (zh) * | 2014-01-23 | 2014-04-23 | 中国人民解放军国防科学技术大学 | 一种大规模空间矢量数据层次划分存储组织方法 |
Non-Patent Citations (1)
Title |
---|
周艳 等: "基于Hilbert 曲线层次分解的空间数据划分方法", 《地理与地理信息科学》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547859A (zh) * | 2016-10-21 | 2017-03-29 | 杭州朗和科技有限公司 | 一种多租户数据存储系统下的数据文件的存储方法及装置 |
CN106547859B (zh) * | 2016-10-21 | 2021-02-09 | 杭州朗和科技有限公司 | 一种多租户数据存储系统下的数据文件的存储方法及装置 |
CN106598729A (zh) * | 2016-11-18 | 2017-04-26 | 深圳市证通电子股份有限公司 | 分布式并行计算系统的数据分配方法及系统 |
CN109426500B (zh) * | 2017-06-21 | 2022-03-08 | 中国石油化工股份有限公司 | 基于su软件包绘制十进制采样点的方法及系统 |
CN109426500A (zh) * | 2017-06-21 | 2019-03-05 | 中国石油化工股份有限公司 | 基于su软件包绘制十进制采样点的方法及系统 |
WO2019169619A1 (zh) * | 2018-03-09 | 2019-09-12 | 深圳大学 | 大数据随机采样数据子块的划分方法及装置 |
CN108629005B (zh) * | 2018-05-04 | 2021-10-22 | 北京林业大学 | 一种地震应急的主题词的探测方法及装置 |
CN108629005A (zh) * | 2018-05-04 | 2018-10-09 | 北京林业大学 | 一种地震应急的主题词的探测方法及装置 |
CN109672690B (zh) * | 2019-01-29 | 2021-02-19 | 哈尔滨工业大学 | 一种针对数据幅值范围已知的数据流进行编码的方法 |
CN109672690A (zh) * | 2019-01-29 | 2019-04-23 | 哈尔滨工业大学 | 一种针对数据幅值范围已知的数据流进行编码的方法 |
CN110109751A (zh) * | 2019-04-03 | 2019-08-09 | 百度在线网络技术(北京)有限公司 | 分布式切图任务的分配方法、装置及分布式切图系统 |
CN110109751B (zh) * | 2019-04-03 | 2022-04-05 | 百度在线网络技术(北京)有限公司 | 分布式切图任务的分配方法、装置及分布式切图系统 |
CN110264722A (zh) * | 2019-07-03 | 2019-09-20 | 泰华智慧产业集团股份有限公司 | 信息采集设备中异常设备的筛选方法及系统 |
CN112541044A (zh) * | 2019-09-20 | 2021-03-23 | 中移(苏州)软件技术有限公司 | 一种数据库设计方法、装置以及存储介质 |
CN113342917A (zh) * | 2021-06-29 | 2021-09-03 | 维沃移动通信有限公司 | 空间位置查找方法、装置、电子设备及存储介质 |
CN113342917B (zh) * | 2021-06-29 | 2023-06-06 | 维沃移动通信有限公司 | 空间位置查找方法、装置、电子设备及存储介质 |
CN116796083A (zh) * | 2023-06-29 | 2023-09-22 | 山东省国土测绘院 | 一种空间数据划分方法及系统 |
CN116796083B (zh) * | 2023-06-29 | 2023-12-22 | 山东省国土测绘院 | 一种空间数据划分方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106021567B (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021567A (zh) | 一种基于Hadoop的海量矢量数据划分方法及系统 | |
Cary et al. | Experiences on processing spatial data with mapreduce | |
Giachetta | A framework for processing large scale geospatial and remote sensing data in MapReduce environment | |
Beynon et al. | Processing large-scale multi-dimensional data in parallel and distributed environments | |
CN103246749B (zh) | 面向分布式计算的矩阵数据库系统及其查询方法 | |
CN110909093B (zh) | 智慧地标控制网的构建方法及装置 | |
Zhang et al. | Parallel online spatial and temporal aggregations on multi-core CPUs and many-core GPUs | |
CN103425772A (zh) | 一种具有多维信息的海量数据查询方法 | |
CN102622609B (zh) | 一种基于支持向量机的三维模型自动分类方法 | |
Sbert et al. | Information theory tools for computer graphics | |
Elsayed et al. | Mapreduce: State-of-the-art and research directions | |
Zou et al. | A case study of large-scale parallel I/O analysis and optimization for numerical weather prediction system | |
CN102902590A (zh) | 面向并行数字地形分析海量dem部署与调度方法 | |
CN102281075B (zh) | 孔径为4的六边形格网层次编码、运算与索引方法 | |
CN114048204A (zh) | 基于数据库倒排索引的北斗网格空间索引方法和装置 | |
Puri et al. | MPI-Vector-IO: Parallel I/O and partitioning for geospatial vector data | |
Karim et al. | Spatiotemporal Aspects of Big Data. | |
Greengard | Potential flow in channels | |
Burstedde et al. | Coarse mesh partitioning for tree-based amr | |
Al-Hamodi et al. | An enhanced frequent pattern growth based on MapReduce for mining association rules | |
Fasy et al. | Efficient graph reconstruction and representation using augmented persistence diagrams | |
Pant | Performance comparison of spatial indexing structures for different query types | |
Zhang et al. | High-performance zonal histogramming on large-scale geospatial rasters using gpus and gpu-accelerated clusters | |
Yang et al. | Spatial data decomposition and load balancing on hpc platforms | |
CN111737490A (zh) | 基于银行渠道的知识图谱本体模型生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |