CN106980540B - 一种分布式多维离散数据的计算方法 - Google Patents

一种分布式多维离散数据的计算方法 Download PDF

Info

Publication number
CN106980540B
CN106980540B CN201710134803.XA CN201710134803A CN106980540B CN 106980540 B CN106980540 B CN 106980540B CN 201710134803 A CN201710134803 A CN 201710134803A CN 106980540 B CN106980540 B CN 106980540B
Authority
CN
China
Prior art keywords
hash code
host
static
hash
value
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.)
Active
Application number
CN201710134803.XA
Other languages
English (en)
Other versions
CN106980540A (zh
Inventor
王建民
龙明盛
李峰
黄向东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201710134803.XA priority Critical patent/CN106980540B/zh
Publication of CN106980540A publication Critical patent/CN106980540A/zh
Application granted granted Critical
Publication of CN106980540B publication Critical patent/CN106980540B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种分布式多维离散数据的计算方法,属于计算机数据处理技术领域。该方法首先调用分布式存储系统的服务接口获取元数据并解析得到哈希范围到主机的映射关系,其次对存储系统中所有数据的主键根据主键到哈希码的映射关系和哈希范围到主机的映射关系得到每条数据的主键对应的主机,最终分布式计算系统在分配任务时根据数据的主键所在的主机分配任务。特别地,本文详细描述了多维离散数据在分布式计算系统Spark和分布式存储系统Cassandra间的跨层优化。本发明能够有效地达到任务本地化计算的目的,方法直观有效、便于使用。

Description

一种分布式多维离散数据的计算方法
技术领域
本发明涉及一种分布式多维离散数据的计算方法,属于计算机数据处理技术领域。
背景技术
维度是描述现实世界事物的参数个数,随着对物理世界认知的加深,人们不再仅仅使用一个维度来描述现实事物,而是采用多个维度来详尽的对事物进行描述。多维离散数据是指以某些维度为基准对数据进行离散化划分存储的数据集合,以这种数据为基础的应用广泛存在,例如,在气象预报系统中,用户需要使用预报模式、物理量类型、预报时刻、预报时效、地理高度等5个维度共同刻画一个气象预报数据,通过物理量类型和地理高度两个维度的组合为基准对数据进行离散化划分,并在多台计算机以这两个维度为键进行分布式存储,最终同一个键的数据将会被存储在同一台机器上。
新兴的分布式计算系统采用多台计算机对数据进行并行的处理,在处理海量数据方面有较强的优势,以MapReduce,Spark等为代表的分布式计算系统已经被广泛的应用于大数据场景。分布式计算其实质是将大的任务分解成若干个小任务,将这些小任务分配给多台机器,每个小任务从存储系统中读取本任务的数据进行处理,这样可以节约运行时间,大大提高计算效率。相对于集中式计算,有些任务可能需要大量的计算能力才能完成,如果采用集中式将会使得计算的时间特别长,特别是在任务资源(内存)要求比较大的情况下,单机往往无法计算。
面对新兴的分布式计算系统,以及现有的分布式存储系统,多维离散数据的计算带来了存储层和计算层之间数据对接的问题,即每个小任务应该分配到哪台计算机上,基于此提出了存储层和计算层之间跨层优化的概念,并给出了解决任务和数据对接的方案。
目前工业界在对于分布式计算和分布式存储系统之间的对接主要在于粗粒度的任务本地化计算。以分布式计算系统Spark和分布式存储系统Cassandra为例,Cassandra对数据表中的每条记录按照记录的分区键计算一个哈希码,并按照哈希码将这条记录存储到某一台计算机上。Spark在对Cassandra的整个表进行处理时,Spark可以通过Cassandra提供的函数得到每个节点上的哈希码分布范围,在Spark做任务分配时,为每个哈希码分布范围生成一个任务,并将该任务分配到哈希码分布范围所处的机器上,将这种分配方式称为粗粒度的任务分配。然而对于离散的数据(即Cassandra表中离散选取的一些行列对应的值),由于Spark只能得到每个离散数据的分区键值,无法得到分区键值对应的哈希码,所以不知道离散数据所在的机器。因此在任务分配时将这种离散数据的任务分配到集群中多台计算机中的任意一台,使任务在计算时无法保证和数据在同一台机器上,从而带来数据在集群中传输的网络开销,导致系统性能大大降低。因此对离散数据在计算层和存储层之间的跨层优化将对分布式计算性能的提升大有裨益。
发明内容
本发明的目的是提出一种分布式多维离散数据的计算方法,对分布式计算系统和存储系统源码的深入剖析,分析存储系统中数据和机器的分布规律,并将此规律应用于分布式计算系统,达到跨层优化的目的。
本发明提出的分布式多维离散数据的计算方法,包括以下步骤:
(1)根据分布式存储系统的数据划分规则,在分布式计算系统中建立一个多维离散数据的分区键值ki与哈希码的映射函数fhash
(2)分布式计算系统从分布式存储系统获取包含有多维离散数据信息的元数据,元数据为多维离散数据在分布式存储系统中所有主机的哈希码区间,将获取的所有元数据的哈希码区间的起始哈希码集合记为M,M={m1,m2,m3,...,mi,...,mn},其中mi为第i个哈希码区间的起始哈希码,将集合M中的起始哈希码按照从小到大排列,将集合M的元素个数记为|M|;将所有与起始哈希码相对应的主机集合记为H,H={h1,h2,h3,...,hz,...,hn},其中hz表示第z个起始哈希码所在的主机;
(3)在分布式计算系统中建立一个上述步骤(1)的分区键值ki与步骤(2)的主机集合的键机映射表,记作Fstatic,Fstatic:分区键值→主机集合;设定一个描述分区键值固定性的参数wstatic,根据参数wstatic,对上述步骤(1)的分布式存储系统中多维离散数据的分区键值的固定性进行判断,若wstatic为假,则进行步骤(5),若参数wstatic为真,则进行步骤(4);
(4)对分布式计算系统的键机映射表Fstatic进行更新,具体过程如下:
(4-1)判断在分布式计算系统的指定路径上是否存在键机映射表的记录文件,若存在记录文件,则将键机映射表的记录文件加载到分布式计算系统的内存中用于对步骤(3)的键机映射表Fstatic进行初始化,进行步骤(5);若不存在记录文件,则进行步骤(4-2);
(4-2)对分布式存储系统中的分区键值集合K={k1,k2,k3,...,ki,...ks}的每一个分区键值计算对应的主机位置。具体步骤如下:
(4-2-1)设置变量i=1,将分区键值集合K的第i个分区键值记作ki,分区键值集合K的分区键值个数记作|K|;
(4-2-2)根据上述步骤(1)的映射函数fhash,得到ki的哈希码fhash(ki),在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(ki)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(4-2-3)将第i个分区键值ki和上述步骤(2)的集合H中的第P个主机hP存储到步骤(3)的Fstatic,并使i=i+1,对i进行判断,若i≤|M|,则返回步骤(4-2-2),若i>|M|,则进行步骤(4-4);
(4-4)将Fstatic存储到分布式计算系统的指定路径,以便下次分布式计算系统启动时快速加载,进行步骤(5);
(5)分布式计算系统进行任务分配和计算,包括以下步骤:
(5-1)在上述步骤(3)的键机映射表Fstatic中查找任务分配处理的多维离散数据的分区键值k,若分区键值k在键机映射表Fstatic中,则根据上述步骤(3)的键机映射表Fstatic,从主机集合中找出与任务分配处理的多维离散数据的分区键值相对应的主机,并将任务分配到该主机,进行分布式多维离散数据的计算;若k不在键机映射表Fstatic中,则进行步骤(5-2);
(5-2)在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(k)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(5-3)将上述步骤(2)集合H中的第P个主机hP作为该任务所处理数据的主机,将该任务分配到主机hP上,进行分布式多维离散数据的计算,并将分区键值k和hP存储到Fstatic,以便下次快速从Fstatic中查找分区键值对应的主机。
本发明提出的分布式多维离散数据的计算方法,其优点是:
1、本发明的分布式多维离散数据的计算方法,大大提高了分布式计算系统的多维离散数据处理能力。通过解决多维离散数据存储层和计算层之间的跨层优化问题,有效地降低了分布式计算系统在处理多维离散数据时,由于任务和数据无法在同一台机器上而带来的网络开销,从而大大提高分布式计算系统的多维离散数据处理能力。在使用分布式计算系统Spark和分布式存储系统Cassandra处理离散气象数据时,采用此方法后处理速度提高了将近4倍,实验结果有力地证明了此方法的有效性。
2、本发明方法简单易用且效果显著,通过元数据和哈希函数得到数据分区键值与主机之间的映射关系,计算层直接通过数据的分区键值即可得到数据所在主机,在任务分配时直接分配到相应的主机即可。实现起来极其简单,而且效果非常好。
3、本发明方法有很强的适应性,能够适应于多种分布式计算系统和分布式存储系统。
附图说明
图1是本发明的分布式多维离散数据的计算方法的系统启动流程框图。
具体实施方式
本发明提出的分布式多维离散数据的计算方法,流程框图如图1所示,包括以下步骤:
(1)根据分布式存储系统的数据划分规则,在分布式计算系统中建立一个多维离散数据的分区键值ki与哈希码的映射函数,分区键值决定多维离散数据在分布式存储系统中的存储位置,该映射函数可以利用已有的MurmurHash3或者信息摘要(MD5)哈希算法得到。将分区键值与哈希码的映射函数记作fhash,fhash:分区键值→哈希码;
(2)分布式计算系统从分布式存储系统获取包含有多维离散数据信息的元数据,元数据为多维离散数据在分布式存储系统中所有主机的哈希码区间,将获取的所有元数据的哈希码区间的起始哈希码集合记为M,M={m1,m2,m3,...,mi,...,mn},其中mi为第i个哈希码区间的起始哈希码,将集合M中的起始哈希码按照从小到大排列,将集合M的元素个数记为|M|;将所有与起始哈希码相对应的主机集合记为H,H={h1,h2,h3,...,hz,...,hn},其中hz表示第z个起始哈希码所在的主机;
(3)在分布式计算系统中建立一个上述步骤(1)的分区键值ki与步骤(2)的主机集合的键机映射表,记作Fstatic,分区键值→主机集合;设定一个描述分区键值固定性的参数wstatic,根据参数wstatic,对上述步骤(1)的分布式存储系统中多维离散数据的分区键值的固定性进行判断,若wstatic为假,则进行步骤(5),若参数wstatic为真,则进行步骤(4);
(4)对分布式计算系统的键机映射表Fstatic进行更新,具体过程如下:
(4-1)判断在分布式计算系统的指定路径上是否存在键机映射表的记录文件,若存在记录文件,则将键机映射表的记录文件加载到分布式计算系统的内存中用于对步骤(3)的键机映射表Fstatic进行初始化,进行步骤(5);若不存在记录文件,则进行步骤(4-2);
(4-2)对分布式存储系统中的分区键值集合K={k1,k2,k3,...,ki,...ks}的每一个分区键值计算对应的主机位置。具体步骤如下:
(4-2-1)设置变量i=1,将分区键值集合K的第i个分区键值记作ki,分区键值集合K的分区键值个数记作|K|;
(4-2-2)根据上述步骤(1)的映射函数fhash,得到ki的哈希码fhash(ki),在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(ki)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(4-2-3)将第i个分区键值ki和上述步骤(2)的集合H中的第P个主机hP存储到步骤(3)的Fstatic,并使i=i+1,对i进行判断,若i≤|M|,则返回步骤(4-2-2),若i>|M|,则进行步骤(4-4);
(4-4)将Fstatic存储到分布式计算系统的指定路径,以便下次分布式计算系统启动时快速加载,进行步骤(5);
(5)分布式计算系统进行任务分配和计算,包括以下步骤:
(5-1)在上述步骤(3)的键机映射表Fstatic中查找任务分配处理的多维离散数据的分区键值k,若分区键值k在键机映射表Fstatic中,则根据上述步骤(3)的键机映射表Fstatic,从主机集合中找出与任务分配处理的多维离散数据的分区键值相对应的主机,并将任务分配到该主机,进行分布式多维离散数据的计算;若k不在键机映射表Fstatic中,则进行步骤(5-2);
(5-2)在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(k)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(5-3)将上述步骤(2)集合H中的第P个主机hP作为该任务所处理数据的主机,将该任务分配到主机hP上,进行分布式多维离散数据的计算,并将分区键值k和hP存储到Fstatic,以便下次快速从Fstatic中查找分区键值对应的主机。
下面以业界使用比较广泛的分布式计算系统Spark和分布式存储系统Cassandra为代表,并结合附图和具体实施例进一步详细说明如下。
定义Cassandra表结构以及数据在集群中的分布情况,本步骤不属于本发明提出的跨层优化方法,但为了方便说明本发明的具体实施例,需要先定义数据以及集群状况。本发明以气象预报数据为例进行说明,该气象数据在Cassandra中的存储如表1所示:
表1数据表格式
Figure BDA0001239876370000061
数据以(分区键,列名)->GridData的形式进行索引,例如GridData32需要通过(Wind/800Pa,2015021808/06)进行查找。Cassandra通过该分区键来确定此条数据应该存储在哪台机器上,在气象数据的存储中,分区键设计成物理量和层次组合的形式,例如Temper/800Pa表示气压为800Pa的高空的温度,列名设计成天气预报起报时间和预报时效的组合,例如2015021808/06表示2015年02月18日08点预测的未来6小时时的情况。GridData表示在地球经纬度网格(以一定的距离切分经纬线)上每个经纬线交点的物理量值,可以理解成一个二维矩阵,行表示纬线对应的值,列表示经线对应的值。最后以(Temper/200Pa,2015021808/06)->GridData32为例,本映射表示在2015年02月18日08点预测的未来6小时时在200Pa高空中温度的分布网格。
表2集群机器和数据分布情况
主机名 主机地址 哈希码区间
pc1 192.168.3.1 0~85
pc2 192.168.3.2 86~171
pc3 192.168.3.3 172~256
集群机器和数据分布情况如表2所示,假定Spark集群和Cassandra集群部署都部署在pc1~pc3这三台机器上,数据以单副本的形式存储。每台机器的哈希码范围如表所示,例如“0~85”表示哈希码范围在[0,85]的数据全部存储在pc1上。
(1)根据分布式存储系统的数据划分规则,在分布式计算系统中建立一个多维离散数据的分区键值与哈希码的映射函数,分区键值决定多维离散数据在分布式存储系统中的存储位置,该映射函数可以利用已有的MurmurHash3或者信息摘要(MD5)哈希算法得到。将分区键值与哈希码的映射函数记作fhash,fhash:分区键值→哈希码,分区键值记为ki
通过这步得到分区键值到哈希码的对应关系如表3所示(为简单起见,这里的token计算并不是真正的MD5值,而是采用0到255的一个整数代替);
表3
分区键 哈希码
Temper/800Pa 71
Temper/200Pa 156
Wind/800Pa 23
Wind/200Pa 234
Rain/1000Pa 134
Rain/200Pa 255
(2)分布式计算系统从分布式存储系统获取包含有多维离散数据信息的元数据,元数据为多维离散数据在分布式存储系统中所有主机的哈希码区间,将获取的所有元数据的哈希码区间的起始哈希码集合记为M,M={m1,m2,m3,...,mi,...,mn},其中mi为第i个哈希码区间的起始哈希码,集合M中的起始哈希码按照从小到大排列,将所有与起始哈希码相对应的主机集合记为H,H={h1,h2,h3,...,hz,...,hn},其中hz表示第z个起始哈希码所在的主机;
具体地,通过调用Cassandra的StorageService对外提供的getAllRanges方法得到类似表2的文本数据。通过解析主机地址和哈希码范围两列可以得到M和H。
(3)在分布式计算系统中建立一个上述步骤(1)的分区键值ki与步骤(2)的主机集合的键机映射表,记作Fstatic,分区键值→主机集合;设定一个描述分区键值固定性的参数wstatic,根据参数wstatic,对上述步骤(1)的分布式存储系统中多维离散数据的分区键值的固定性进行判断,若wstatic为假,则进行步骤(5),若参数wstatic为真,则进行步骤(4);
(4)对分布式计算系统的键机映射表Fstatic进行更新,具体过程如下:
(4-1)判断在分布式计算系统的指定路径上是否存在键机映射表的记录文件,若存在记录文件,则将键机映射表的记录文件加载到分布式计算系统的内存中用于对步骤(3)的键机映射表Fstatic进行初始化,进行步骤(5);若不存在记录文件,则进行步骤(4-2);
(4-2)对分布式存储系统中的分区键值集合K={k1,k2,k3,...,ki,...ks}的每一个分区键值计算对应的主机位置,具体步骤如下:
(4-2-1)设置变量i=1,将分区键值集合K的第i个分区键值记作ki,分区键值集合K的分区键值个数记作|K|;
(4-2-2)根据上述步骤(1)的映射函数fhash,得到ki的哈希码fhash(ki),在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(ki)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(4-2-3)将第i个分区键值ki和上述步骤(2)的集合H中的第P个主机hP存储到步骤(3)的Fstatic,并使i=i+1,对i进行判断,若i≤|M|,则返回步骤(4-2-2),若i>|M|,则进行步骤(4-4);
(4-4)将Fstatic存储到分布式计算系统的指定路径,以便下次分布式计算系统启动时快速加载,进行步骤(5);
具体地,对于分区键值比较固定的业务,当本系统第一次启动时,可以通过Cassandra提供的cql3接口查询所有的分区键值,对每一个分区键值执行如下操作:首先判断是否在Fstatic中,如果在则继续计算下一个,否则调用步骤2的fhash得到该分区键值对应的哈希码,对表1的分区键计算哈希码的结果如表3所示。计算完哈希码后,根据M和H来得到分区键对应的主机,结果如表4所示:
表4
Figure BDA0001239876370000081
左边三列表示原始数据,最右边两列表示分区键对应的哈希码和主机,这里的主机即该分区键对应的数据的存储位置。最后,我们需要将表4第一列和最右边两列存储成哈希表的形式并持久化到磁盘。至此完成计算系统启动时的预处理工作。
(5)分布式计算系统进行任务分配和计算,包括以下步骤:
(5-1)在上述步骤(3)的键机映射表Fstatic中查找任务分配处理的多维离散数据的分区键值k,若分区键值k在键机映射表Fstatic中,则根据上述步骤(3)的键机映射表Fstatic,从主机集合中找出与任务分配处理的多维离散数据的分区键值相对应的主机,并将任务分配到该主机,进行分布式多维离散数据的计算;若k不在键机映射表Fstatic中,则进行步骤(5-2);
(5-2)在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(k)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(5-3)将上述步骤(2)集合H中的第P个主机hP作为该任务所处理数据的主机,将该任务分配到主机hP上,进行分布式多维离散数据的计算,并将分区键值k和hP存储到Fstatic,以便下次快速从Fstatic中查找分区键值对应的主机。

Claims (1)

1.一种分布式多维离散数据的计算方法,其特征在于该方法包括以下步骤:
(1)根据分布式存储系统的数据划分规则,在分布式计算系统中建立一个多维离散数据的分区键值ki与哈希码的映射函数,将分区键值与哈希码的映射函数记作fhash,fhash:分区键值→哈希码;
(2)分布式计算系统从分布式存储系统获取包含有多维离散数据信息的元数据,元数据为多维离散数据在分布式存储系统中所有主机的哈希码区间,将获取的所有元数据的哈希码区间的起始哈希码集合记为M,M={m1,m2,m3,...,mj,...,mn},其中mj为第j个哈希码区间的起始哈希码,将集合M中的起始哈希码按照从小到大排列,将集合M的元素个数记为|M|;将所有与起始哈希码相对应的主机集合记为H,H={h1,h2,h3,...,hz,...,hn},其中hz表示第z个起始哈希码所在的主机;
(3)在分布式计算系统中建立一个以上述步骤(1)的分区键值ki与步骤(2)的主机集合的键机映射表,记作Fstatic,分区键值→主机集合;设定一个描述分区键值固定性的参数wstatic,根据参数wstatic,对上述步骤(1)的分布式存储系统中多维离散数据的分区键值的固定性进行判断,若wstatic为假,则进行步骤(5),若参数wstatic为真,则进行步骤(4);
(4)对分布式计算系统的键机映射表Fstatic进行更新,具体过程如下:
(4-1)判断在分布式计算系统的指定路径上是否存在键机映射表的记录文件,若存在记录文件,则将键机映射表的记录文件加载到分布式计算系统的内存中用于对步骤(3)的键机映射表Fstatic进行初始化,进行步骤(5);若不存在记录文件,则进行步骤(4-2);
(4-2)对分布式存储系统中的分区键值集合K={k1,k2,k3,...,ki,...ks}的每一个分区键值计算对应的主机位置,具体步骤如下:
(4-2-1)设置变量i=1,将分区键值集合K的第i个分区键值记作ki,分区键值集合K的分区键值个数记作|K|;
(4-2-2)根据上述步骤(1)的映射函数fhash,得到ki的哈希码fhash(ki),在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(ki)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(4-2-3)将第i个分区键值ki和上述步骤(2)的集合H中的第P个主机hP存储到步骤(3)的Fstatic,并使i=i+1,对i进行判断,若i≤|M|,则返回步骤(4-2-2),若i>|M|,则进行步骤(4-4);
(4-4)将Fstatic存储到分布式计算系统的指定路径,以便下次分布式计算系统启动时快速加载,进行步骤(5);
(5)分布式计算系统进行任务分配和计算,包括以下步骤:
(5-1)在上述步骤(3)的键机映射表Fstatic中查找任务分配处理的多维离散数据的分区键值ki,若分区键值ki在键机映射表Fstatic中,则根据上述步骤(3)的键机映射表Fstatic,从主机集合中找出与任务分配处理的多维离散数据的分区键值相对应的主机,并将任务分配到该主机,进行分布式多维离散数据的计算;若ki不在键机映射表Fstatic中,则进行步骤(5-2);
(5-2)在上述步骤(2)的哈希码区间的起始哈希码集合M中从左到右查找第一个大于哈希码fhash(k)的哈希码区间起始值所在的位置P,P∈[1,|M|],若在集合M中查找到满足条件的哈希码区间起始值的位置j,则使P=j,若在集合M中未查找到满足条件的哈希码区间起始值,则使P=1;
(5-3)将上述步骤(2)集合H中的第P个主机hP作为该任务所处理数据的主机,将该任务分配到主机hP上,进行分布式多维离散数据的计算,并将分区键值ki和hP存储到Fstatic,以便下次快速从Fstatic中查找分区键值对应的主机。
CN201710134803.XA 2017-03-07 2017-03-07 一种分布式多维离散数据的计算方法 Active CN106980540B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710134803.XA CN106980540B (zh) 2017-03-07 2017-03-07 一种分布式多维离散数据的计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710134803.XA CN106980540B (zh) 2017-03-07 2017-03-07 一种分布式多维离散数据的计算方法

Publications (2)

Publication Number Publication Date
CN106980540A CN106980540A (zh) 2017-07-25
CN106980540B true CN106980540B (zh) 2020-07-10

Family

ID=59338163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710134803.XA Active CN106980540B (zh) 2017-03-07 2017-03-07 一种分布式多维离散数据的计算方法

Country Status (1)

Country Link
CN (1) CN106980540B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107798059B (zh) * 2017-09-08 2023-05-26 中国电力科学研究院 一种nco气象数据结构化存储方法和装置
CN109241161B (zh) * 2018-08-09 2022-02-01 深圳市雅码科技有限公司 一种气象数据管理方法
US11068470B2 (en) * 2018-11-09 2021-07-20 Innoplexus Ag System and method for interoperability of blockchains
CN111143456B (zh) * 2019-12-27 2022-07-05 同盾(广州)科技有限公司 基于Spark的Cassandra数据导入方法、装置、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4977502B2 (ja) * 2007-03-16 2012-07-18 日本電気株式会社 分散データベースシステム、検索サーバ、検索方法、およびプログラム
CN103929500A (zh) * 2014-05-06 2014-07-16 刘跃 一种分布式存储系统的数据分片方法
CN104123359B (zh) * 2014-07-17 2017-03-22 江苏省邮电规划设计院有限责任公司 一种分布式对象存储系统的资源管理方法
US9900386B2 (en) * 2015-04-09 2018-02-20 International Business Machines Corporation Provisioning data to distributed computing systems
CN105117171B (zh) * 2015-08-28 2018-11-30 南京国电南自维美德自动化有限公司 一种能源scada海量数据分布式处理系统及其方法

Also Published As

Publication number Publication date
CN106980540A (zh) 2017-07-25

Similar Documents

Publication Publication Date Title
CN106980540B (zh) 一种分布式多维离散数据的计算方法
JP6032467B2 (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
CN102521386B (zh) 基于集群存储的空间元数据分组方法
CN103703467A (zh) 存储数据的方法和装置
CN109710406B (zh) 数据分配及其模型训练方法、装置、及计算集群
CN111126700A (zh) 用能预测方法、装置、设备及存储介质
CN111400555A (zh) 图数据查询任务处理方法、装置、计算机设备和存储介质
CN110245135B (zh) 一种基于numa架构的大规模流式图数据更新方法
WO2017118335A1 (zh) 一种映射方法和设备
CN109508304A (zh) 一种内存管理元数据的处理方法及装置
US10241963B2 (en) Hash-based synchronization of geospatial vector features
CN113285960B (zh) 一种服务数据共享云平台的数据加密方法及系统
CN106575296B (zh) 用于托管的分析的动态n维立方体
CN109190450A (zh) 基于分布式计算平台的人工智能遥感影像数据提取方法
KR101780534B1 (ko) 이미지 기반 검색을 위한 맵리듀스 기반의 이미지 특징 추출 방법 및 시스템
CN114049463A (zh) 一种二叉树的数据网格化、网格点数据的获取方法及装置
KR101642598B1 (ko) 공간 분할 방법, 공간 분할 장치 및 기억 매체
US9298505B2 (en) Time and space-deterministic task scheduling apparatus and method using multi-dimensional scheme
CN106612197B (zh) 一种网络缩略图生成方法及设备
CN112015914B (zh) 一种基于深度学习的知识图谱搜索路径方法
Huang et al. Processing continuous K-nearest skyline query with uncertainty in spatio-temporal databases
CN110874370B (zh) 数据查询方法、装置、计算机设备和可读存储介质
US9141651B1 (en) Adaptive column set composition
CN113822768A (zh) 社区网络的处理方法、装置、设备及存储介质
US20130262512A1 (en) Data management apparatus and data management method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant