CN102508639A - 一种基于卫星遥感数据特征的分布式并行处理方法 - Google Patents
一种基于卫星遥感数据特征的分布式并行处理方法 Download PDFInfo
- Publication number
- CN102508639A CN102508639A CN2011103050085A CN201110305008A CN102508639A CN 102508639 A CN102508639 A CN 102508639A CN 2011103050085 A CN2011103050085 A CN 2011103050085A CN 201110305008 A CN201110305008 A CN 201110305008A CN 102508639 A CN102508639 A CN 102508639A
- Authority
- CN
- China
- Prior art keywords
- file
- conversion
- instance
- class
- task
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于卫星遥感数据特征的分布式并行处理方法,用于解决现有卫星遥感数据分布式并发处理平台只适用于单个程序的作业或灵活性和通用性不足的技术问题。本发明对文件和处理程序进行抽象,根据文件和处理程序之间的输入输出关系生成文件类和处理类之间的依赖关系,并基于依赖关系自动生成全局的依赖图,基于依赖图实现全局的分布式任务处理及调度,具有很强的灵活性、扩展性和通用性。
Description
技术领域
本发明涉及卫星遥感数据处理领域,尤其涉及一种基于依赖关系和对象抽象的分布式并行处理方法。
背景技术
Hadoop是一个并行处理大规模数据的开源分布式计算平台,由许多元素构成,最底部的Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)存储Hadoop集群中所有存储节点上的文件。HDFS的上一层是MapReduce引擎,该引擎由JobTracker和TaskTracker组成。MapReduce依赖于HDFS实现。MapReduce可以将被计算的数据分为很多小块,HDFS将每个块复制若干份以确保系统的可靠性,同时它按照一定的规则将数据块放置在集群中的不同机器上,以便MapReduce在数据宿主机器上进行最便捷的计算。
Hadoop系统的任务调度分为两个层次,作业(Job)级别和任务(Task)级别。Hadoop系统中的JobTracker响应来自用户的作业(Job)提交,并将作业拆分为各个任务(Task),如Mapper和Reducer两种任务类型,对当前作业进行分布式处理。这个层次的任务分配为任务级别的分配与调度。当用户将多个作业同时给JobTracker时,JobTracker缓存这些作业使得这些作业排队等待被处理,JobTracker同时将属于不同作业的子任务给各个TaskTracker进行处理,使得不同的作业在整个集群中呈流水线特点执行。涉及作业间的任务调度称为作业级别的分配与调度。用户在使用Hadoop系统时一般需要注意提交作业的粒度,尽量不将工作量过大的作业直接提交给JobTracker,而是尽量将大工作量的作业拆分为几个小工作量的作业。
Hadoop目前已经在科研和商业领域被广泛应用,其高效性和可以基于普通PC的低成本运作方式以及广泛的通用性是其主要优点,但Hadoop的运行针对单个程序的作业。在宏观角度对整个系统进行任务分配和调度上,Hadoop没有相应的支持,因而无法满足在更高层次上对任务分配进行优化的需求。
MODIS数据处理系统(MODIS Data Processing System,MODAPS)是由NASA的MODIS科学数据支持团队(MODIS Science Data Support Team,SDST)开发的MODIS卫星数据处理系统。该系统使用基于消息传递的分布式并行计算。所有过程由调度器控制,调度器监视并控制进程,获取和分发产品系统中运行的工作。调度器中的PROSTAT控制进程运行在特定时间或者固定间隔。装载器(Loaders)在PROSTAT控制下固定间隔运行,初始化一系列科研产品的生产。一个Loader处理数十至数百个队列中等待CPU空闲的任务。Makevdc固定间隔运行,确认哪个任务的所有输入准备完毕。若输入准备好,则任务被移至入口目录。入口伺服监控该目录,当某个CPU空闲时,将任务分配给CPU并把任务添加至进程流表。
MODAPS是一个针对MODIS卫星数据处理构造的系统,其优点在于能够针对遥感卫星数据处理的需求做出适当的分配和调度。但MODAPS是用于高性能计算机组成的分布式环境的,需要有高性能硬件设备支持,同时由于其针对性,将其应用于其他科研产品生产有较大限制。
现在广泛使用的分布式并发处理平台,更多的是关注于单个程序的并发执行,而没有对具有数据依赖关系的多个程序如何执行提供解决方案,因而也无法从宏观上对并发执行效率进行优化;而专为某些卫星数据处理而设计的系统具有过强的针对性,使得系统具有局限性,不利于系统的重用。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于卫星遥感数据特征的分布式并行处理方法,用于解决现有卫星遥感数据分布式并发处理平台只适用于单个程序的作业或灵活性和通用性不足的技术问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于卫星遥感数据特征的分布式并行处理方法,该方法包括:
将文件和处理程序抽象为文件类和转换类,依据文件和处理程序的分层关系分别建立文件类对象标识树和转换类对象标识树;
基于文件类对象标识树、转换类对象标识树、命名树及文件类和转换类的输入输出关系,生成主配置文件;
主机依据主配置文件生成与任务对应的文件依赖图和转换依赖图;
在运行时,主机负责监视各从机的任务执行状态,并负责更新文件依赖图和转换依赖图中各文件类实例和转换类实例的状态信息;
主机依据文件依赖图和转换依赖图判断是否有子任务满足执行条件,将满足执行条件的子任务分发给分机执行。
进一步地,所述转换类对象标识树基于处理程序的分层关系为每个对应的转换类分配对象标识,除包含所有处理程序对应的转换类节点之外,所述转换类对象标识树还包含用于建立文件类和转换类之间的依赖关系的分支转换节点和合并转换节点。
进一步地,所述文件类对象标识树基于文件的分层关系为每个对应的文件类分配对象标识,每一层的转换类输出的文件类作为下一层转换类的输入。
进一步地,所述文件依赖图包含文件类实例信息字段和对应的文件类实例是否可用的状态字段,所述文件类实例信息字段中包含了文件类名称及该文件类实例所处命名树层次的信息。
进一步地,所述转换类依赖图包含转换类实例信息字段、转换类实例运行状态字段、输入文件类字段、输出文件类字段、上层转换类实例信息字段、下层转换类实例信息字段。
进一步地,所述主机判断子任务满足执行条件的方法为:
主机中的调度模块不断扫描所述文件依赖图和转换依赖图,判断与具体处理程序对应的转换类实例所依赖的所有文件类实例是否可用,当该转换类实例所依赖的所有文件类实例全部可用时,则该转换类实例对应的子任务满足执行条件。
进一步地,在分析执行完一个任务后,通知主机,主机更新该任务对应的转换类实例的状态,并获取该转换类实例对应的输出文件类实例标识信息,并通过获取的输出文件类实例标识信息更新文件依赖图中的文件类实例对应的状态信息。
进一步地,所述主机将满足执行条件的子任务放入任务队列,分机从任务队列中获取尚未执行的子任务,当一个分机的任务执行失败时,失败的子任务被重新添加至任务队列。
进一步地,所述方法还包括:依据主配置文件建立依赖图模型,依据依赖图模型建立图形化的分景执行状态图和/或单景执行实例图,且主机通过对文件依赖图和转换依赖图的扫描,依据对应的文件类实例和转换类实例的状态实时更新所述分景执行状态图和/或单景执行实例图。
进一步地,所述方法采用集中式存储方案将数据存储于磁盘阵列上,将磁盘阵列映射到主机及各从机上;由主机统一进行任务管理,处理能力强的主机和/或从机开启多个进程并发执行任务处理程序。
本发明具有以下技术效果:
(1)本发明对文件和处理程序进行抽象,根据文件和处理程序之间的输入输出关系生成文件类和处理类之间的依赖关系,并基于依赖关系自动生成全局的依赖图,基于依赖图实现全局的分布式任务处理及调度。由于通过依赖图主机能够实时掌握各子任务的运行状态,当一个子任务的运行条件满足时,系统能够自动动态添加新的子任务,所以本发明不仅解决了每一个处理步骤的任务分配问题,同时解决了在数据处理中,数据和任务实时变化情况下的动态调度问题。
(2)本发明可通过修改接口方便的更换实际的处理程序并适应不同的输入输出文件;使用对象标识树可以很好的支持扩展,当业务流程发生变动时,可通过修改配置文件方便的重新确定依赖关系,使得系统具有可扩展性、灵活性和通用性,同时不失对于具体问题的针对性。
(3)本发明能够自动生成全局可视化监控视图,动态监控并行化处理任务的执行情况,使用户能够直观地感觉到任务的执行状态,具有更好的交互界面。
附图说明
图1为本发明实施例提供的并行处理方法的流程图;
图2为本发明实施例提供的转换类oid树的示例图;
图3为本发明实施例提供的文件类oid树的示例图;
图4为本发明实施例提供的系统oid树的示例图;
图5为本发明实施例提供的命名树和依赖图模型的示例;
图6为本发明实施例提供的EMIS产品的生产所涉及的文件和处理程序之间的输入输出关系示意图;
图7为本发明实施例提供的任务执行状态的顶层图;
图8为本发明实施例提供的分景执行状态图;
图9为本发明实施例提供的单景执行实例图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
本发明基本思想是:将分布式并行处理流程中所涉及的文件以及处理程序抽象成文件类和转换类,并通过设置文件类和转换类之间的依赖关系生成对应的依赖关系图,在任务的执行过程中通过依赖关系图确定每一个转换类是否满足并发执行条件,并将满足执行条件的任务添加至任务队列。在分布式系统的实现上采用基于消息传递的主从机(Master-Slave)机制,主机负责任务划分和执行情况监测,从机领取任务执行。
图1为本发明实施例提供的并行处理方法的流程图,该方法具体包括:
步骤101、确定系统边界,依据系统边界确定系统所涉及到的文件和处理程序,将文件和处理程序分别划分层次,确定各文件和各处理程序之间的输入输出关系;
系统边界限定了系统的功能范围,根据业务处理流程对业务所涉及的数据文件和处理程序进行层次划分。以地学遥感卫星数据业务处理系统为例,该系统的业务处理流程可分为以下四个处理层次(或称为处理步骤),分别为预处理、初级处理、合成处理和再分析处理,每一层,针对不同的原始卫星数据可有多个处理程序。
每一处理程序都用于完成整个业务流程中的一个处理层次中的某个处理步骤,每一个处理步骤都可能会依赖于上层处理步骤输出的文件。当一个处理程序所需的文件(文件中包含处理程序所需的数据)都准备好后,该处理程序才能够运行,在该处理程序运行的过程中可能会生成新的文件,新的文件可以是结果数据也可以作为下一层处理程序的输入。
步骤102、对经过分层的文件和处理程序进行抽象,建立文件类和转换类,并依据文件和处理程序的分层关系分别建立文件类对象标识树和转换类对象标识树,依据任务划分方法建立命名树;
(1)分别对各处理程序进行抽象形成转换类,根据处理程序的分层关系为每一个转换类分配对象标识(object identity,oid),从而建立转换类的oid树。
以卫星数据处理系统为例,可抽象出顶层的转换类节点Trans_all,然后在顶层节点下,又可分为如下的抽象的转换类节点:预处理层节点、初级处理层节点、合成处理层节点和再分析处理层节点,每个层节点下又可包含多个子节点,最底层的叶子节点与处理程序对应,依照上述方式建立转换类oid树,对转换类进行管理。
转换类oid树的示例如图2所示,在转换类oid树中,所有转换类可以根据其所属的层次进行划分,该转换类oid树中与业务相关的最底层的叶子节点与处理程序具有一一对应关系。
此外,为了建立文件类和转换类之间的依赖关系,在转换类oid树中还增添了一些抽象的转换节点,例如分支转换节点和合并转换节点,即split节点和combine节点。
(2)分别对各文件进行抽象形成文件类,根据文件分层关系为每一个文件类分配对象标识,建立文件类的oid树;
对于每一个处理程序的输入输出文件,使用统一的命名规则进行命名,以方便管理和区分文件内容。每一层的处理程序输出的文件,作为下一层处理程序的文件输入。在每一层的输入或输出文件的文件名中包含文件的基本信息,所述基本信息可包含:文件是经过哪一层处理的结果、数据的类型(例如是卫星数据还是处理的产品数据)、时间和空间信息(例如数据所属的时间和空间坐标信息)、文件生成日期等。将每一个处理程序的输入和输出文件,根据其文件类型和内容抽象成为文件类,并为每一个文件类分配一个唯一的oid,建立文件类oid树。
文件类oid树的示例如图3所示,在文件类的oid树中,文件类依据其相关的转换类及内容等可划分多个层次,该文件类oid树中最底层的叶子节点与文件实例具有一一对应关系。
(3)依据任务划分及任务定制需求,建立命名树及相关节点;
命名树用于任务的划分,如卫星数据处理中,需要处理多年全球多景数据,处理程序使用一年一景数据作为最小处理单位,则在任务划分时,可以将任务先按照年划分成多年,再将每一年的任务按照景划分,对于这种情况,在nametree下,第一层为年(year),第二层为景(tile)。在任务下达后,系统将任务按year划分后再按照tile划分成子任务。
本发明基于上述建立文件类oid树、转换类oid树及命名树等,构造出系统对象标识树,系统oid树结构如图4所示,top_all作为树的根节点,special下为整个结构中的特殊节点,process下为针对不同子系统建立的不同的树,一个子系统processx节点下包含File_class文件类、Trans_class转换类和命名树Nametree,File_class下为所有的文件类,Trans_class下为所有的转换类。其中,Nametree和Special节点用于任务的划分和子任务的定制;
文件类的层次与转换类的层次相互对应。以卫星数据处理系统为例,对于每一层次的处理,卫星数据处理所使用的源数据文件抽象为G01,经过预处理的数据文件抽象为G02,初级处理产品的数据文件抽象为G03,合成产品的数据文件抽象为G04,再分析产品的数据文件抽象为G05。所有的文件类依据其所处的层次归类到G01-G05下,并依据其内容进行细分。
步骤103、依据文件类和转换类的输入输出关系,生成主配置文件;
由于文件类和转换类由系统所涉及的文件和处理程序抽象而来,因此,依据文件和处理程序之间的输入输出关系即可定义出文件类和转换类之间的依赖关系。
所述主配置文件中包含内容至少包含:系统对象标识树、文件类与转换类之间的输入输出关系。
步骤104、根据主配置文件构造依赖图模型。
所述依赖图模型用于反映文件类与转换类之间的依赖关系,命名树的每一层都有与其对应的依赖图模型,命名树中下层是上层的细化,对应地,下层的依赖图模型也是上层依赖图模型的逐步细化。
在分配任务并构造每个任务的实例时,与任务相对应的依赖图实例即为依赖图模型的一个实例,但是其中的文件类被替换成该子任务对应的文件,其中的转换类被替换为该子任务对应的处理程序。
图5为本发明实施例提供的命名树和依赖图模型的示例,该图中最左侧为命名树,右侧为依赖图模型,每一个依赖图模型都有一个所属的命名树的层次与其对应。每往下一级的依赖图模型,都是其上一层依赖图模型更具体细化。与命名树相关联的依赖图模型用于运行时实例图的展示,最底层的依赖图模型对应到运行时每一个具体的子任务进度监控。
该步骤为可选步骤,主要用于依据依赖图模型生成与实际运行任务对应的实例图,例如单景实例图、分景状态图等。
步骤105、运行前,配置分布式运行所需参数,配置主机与从机信息,使其能基于网络构成一个分布式计算环境。
步骤106、主调程序读取主配置文件进行初始化,并根据任务配置文件进行命名树初始化及子任务划分,为每个子任务建立一个运行实例图。
所述任务配置文件用于配置需要执行的任务,及依照命名树的分层进行子任务的划分,该文件划分的子任务在实际运行时还将进一步划分为与处理程序对应的子任务。
步骤107、主调程序依据主配置文件生成文件依赖图和转换依赖图,在依赖图中标记所有实例的运行状态信息。
所述文件依赖图对本次任务所需的所有文件实例构建一一对应的记录信息,所述文件依赖图包含no字段、key字段和status字段,其中no字段为序号标识,key字段为文件类实例信息字段,status为文件类实例是否可用的状态字段。
key值包含的信息有:文件类名称(别名)、该文件类所属命名树的根节点标识、该文件类所属命名树的层次及上层节点标识,其格式形如fileclassnamenametreeroot:nametreelv 1:nametreelv2:....:nametreelvn。其中,fileclassname为该文件类的名称或别名,用于唯一的确定一个文件类,nametreeroot为nametree中的根节点标识,nametreelv 1为nametree中第一层节点标识,nametreelv2为nametree第二层节点标识,以此类推,直至该文件类对应的nametree中层次节点标识。按照nametree划分出的每一个文件类实例都是在运行当中处理程序的一类输入或输出。通过这种形式标记的每一个文件类实例,在其后对应一条状态status信息,在文件未准备好时,该信息为未建立notcreated状态,而文件生产出以后,系统标记为可用for_use状态,通过文件类的for_use状态,系统可以判断依赖于该文件类实例的转换类实例是否可以开始执行任务。
转换依赖图中包括关键字key、状态status、输入文件类left、输出文件类right、上层图键值up、下层图值down、起始时间start_time、结束时间end_time等信息,其中key为每一个转换类实例的唯一标识,命名规则与文件类实例命名规则类似,通过前的字段标识出是哪个转换类的实例,通过后的字段标识出是对应到哪个具体的转换类。Status用于标识该转换类实例的执行状态,left用于标识该转换类对应的输入文件类实例,right用于标识该转换类实例的输出文件类实例,left和right中所涉及到的文件类实例与文件依赖图通过文件依赖图的key存在对应关系。在转换依赖图中,在文件类key前加序号表示是第几个输入,对于多个输入,其形式为(1)filekey1(2)filekey2...(n)filekeyn(其中filekey为输入或输出文件在文件依赖图中的key),up用于标识上层转换类实例,其内容为对应的上层转换类实例的key,down用于标识下层所包含的转换类实例,同样使用序号来标记多个子转换,其形式为(1)transkey1(2)transkey2....(n)transkeyn(其中transkey为转换依赖图中对应转换类实例的key)。所有down为空的转换都对应一个具体的处理程序,而有down信息的转换只是一个抽象的转换。
步骤108、任务开始,从机通过与主机的通信获取子任务信息,并领取子任务在本机执行,主机监视从机的子任务执行状态,更新文件依赖图和转换依赖图中各文件类实例和转换类实例对应的状态,并判断是否有子任务满足执行条件,若满足,则开启子任务。从机在执行完当前子任务后从主机领取已开启的但还未被执行的子任务。
一个大的运行任务在根据命名树划分成子任务后,可进一步划分为更小的子任务,最终一个转换类实例即用于完成一个不可再分的子任务,所述不可再分的子任务对应于转换依赖图中的不包含子图down信息的转换类实例。
本发明采用分布式系统,该分布式系统使用主从机机制,主机接收任务,根据主配置文件及任务配置文件生成相应的文件依赖图和转换依赖图,并在运行时生成任务的实例图,提供当前任务执行状态的图形化显示。主机中的调度模块不断扫描依赖图中的文件类实例和转换类实例的运行状态,依据依赖图判断哪些子任务已满足触发并行的条件,满足触发并行执行条件的子任务将被添加到任务队列中。
判断子任务是否满足触发并行执行条件的详细步骤为:主机首先读取转换依赖图,对转换依赖图进行逐条扫描,针对一个转换类实例,首先通过left字段获得该转换类实例所依赖的文件类实例,通过从该字段中获取的文件类实例key值在文件依赖图中查找对应的文件类实例的状态是否都为for_use状态,只有在该转换类实例所依赖的所有文件类实例的状态都为for_use可用状态时,该转换类实例才能作为一个满足运行条件的子任务分发给从机执行。分机通过转换依赖图中的right字段的值可获知当前子任务生成的文件对应于文件依赖图中的哪个文件类实例,并在文件生成完毕后通知主机更新文件依赖图中对应的文件类实例的状态。
每一个分机上配备一套任务执行程序,与主机使用消息进行通信。当任务开始时,分机从任务队列中获取一个尚未执行的子任务,在分机执行完毕后,通知主机,主机更新依赖图中的文件类实例和转换类实例的状态,分机可领取下一个任务,任务是否被领取由主机进行统一管理,当一个分机的任务执行失败时,该失败的任务视情况被重新添加至任务队列。所有数据采用集中式存储方式,存储在磁盘阵列上,并映射在各机器上。使用这种方式进行分布式处理,不要求进行处理的分机具有大容量硬盘及高性能处理器,各机量力而行对任务进行处理,同时主机也可开启任务执行程序进行任务处理,处理能力强的机器可开启多个进程并发执行。
以下以生产Modis卫星地表发射率初级产品举例说明本发明的具体实现过程,该产品需要三种原始卫星数据:MOD09A1、MCD43B3、MCD43B2,这三种原始数据无法直接拿来使用,需要进行预处理后再进行产品生产。其中MOD09A1的数据预处理无其他输入,而MCD43B3需要MCD43B2数据作为辅助数据。这两个预处理程序分别定名为Pre_Modis09A1NS和Pre_MCD43B3。在预处理步骤之后,得到两种数据,再将这两种数据一起作为输入,进行反射率产品EMIS的生产,其处理程序定名为EMIS_Modis。
为了区分不同层次的输入输出文件,将原始数据文件统一划入G01层,经过预处理后的数据划入G02层,生产出来的初级产品划入G03层。该EMIS产品的生产所涉及的文件和处理程序之间的输入输出关系如图6所示。
在确定文件和处理程序之间的输入输出关系后,需要考虑在实际分配任务时,任务如何进行划分,这个步骤的确定也是命名树的确定。Modis卫星数据是将全球地域进行划分,划分的每一块叫做一景,每一景以h和v两个坐标来标记,类似经纬度的划分。每一景的文件对于其他景都是相对独立的,可以进行独立的处理。而Modis预处理和EMIS产品的生产过程中,需要利用不同时间的数据进行迭代,因而,对于处理程序而言,最小的处理单位是一年一景,命名树按照“顶层-年-景”的方式确定。命名树的创建用于方便实际任务的划分,使任务划分更为清晰,同时在涉及给系统用户展示系统当前进度时,可以方便用户的查看,如用户想查看某一年所有景的进展情况,则通过与系统的交互选中感兴趣的年份,系统将该年份下的进度展示给用户,若用户还想进一步查看某一景的进度,则可以通过再次交互得到具体某一景的执行进度信息。
若要处理2003年到2005年,h1v1,h2v1,h3v1的数据,则可以先将任务按年划分成2003到2005的子任务,在对每一个子任务进行进一步细分,如2003年h1v1、2003年h2v1、2003年h3v1,2004年h1v1、2004年h2v1、2004年h3v1等。这样确立的划分是按照年-景划分的,也可以采用景优先的方式。
在实际执行过程中,使用的输入文件是hdf格式的文件,这些文件根据其经过的处理,可以归类为原始数据文件、预处理文件、初级产品文件,分别以G01、G02、G03前缀命名以示区别,在做了这个基本划分后,再按照具体是哪颗卫星或是哪个产品进行分类,按卫星分如MODIS卫星,风云卫星等,按产品分如发射率产品EMIS,反照率产品RAD等。在此之后按照具体的产品还可以进行一次分层,如在MODIS下还有不同的数据MODIS09、MOIDS43等。这一步对文件的分层主要是出于文件管理的方便。
进行预处理和产品生产的处理程序可能是由java、C++、IDL等多种工具进行开发的,在进行抽象的过程中,忽略掉其具体的细节,仅作为一个转换类进行抽象。把预处理过程中使用的处理程序划为G12层,即将文件类从G01转化为G02的程序。同理,初级产品生产所用的程序归为G23层。则Pre_Modis09A1NS、Pre_MCD43B3属于G12层,EMIS_Modis属于G23层。
在完成上述步骤后,分别构造文件类和转换类的oid树。Oid树的建立有两个作用,其一是使得文件类和转换类的管理变得更加方便有条理,另一方面也为给系统用户提供实际任务执行时当前进度的分层显示。
该实施例所建立的文件类如表1所示,所建立的转换类如表2所示,其中Alias作为每个文件类的唯一标识,转换类的名称唯一。
表1文件类
分层前缀 | 文件名称 | OID | Alias | ||
File_all | |||||
G01 | 1 | G01 | |||
MODIS | 1.1 | G01_MODIS | |||
MOD09A1 | 1.1.1 | G01_MOD09A1 | |||
MCD43B2 | 1.1.2 | G01_MCD43B3 | |||
MCD43B3 | 1.1.3 | G01_MCD43B2 | |||
G02 | 2 | G02 | |||
MODIS | 2.1 | G02_MODIS | |||
MOD09A1NS | 2.1.1 | G02_MOD09A1NS | |||
MCD43B3 | 2.1.2 | G02_MCD43B3 | |||
G03 | 3 | G03 | |||
EMIS | 3.3 | G03_EMIS | |||
MODIS | 3.3.1 | G03_EMIS_Modis |
表2转换类
主配置文件是为了让系统明确系统中所涉及的各种处理程序、文件及其关系而创建的。配置文件的形式和具体内容如何填写由调度系统开发人员进行定义,本发明不限定配置文件的具体形式。该具体实施例中,使用的主配置文件内容示例如下:
主配置文件中oid-definitions部分配置oid树,对文件类和转换类进行了oid配置,并配置了虚拟的起始节点start和完结节点end。oid树的1.1.1中配置了文件类,1.1.2配置了转换类,1.1.3配置命名树,命名树按照年-景进行任务划分。在文件类中,1.1.1.4到1.1.1.6定义了几个特殊的文件类,raw-data和product,这几个特殊的文件类将对应到命名树的year和tile上,作为该层涉及到的输入文件类和输出文件类的一个抽象。在转换类中,额外定义了4个虚拟节点:sp1、sp2、cb1、cb2。SP是虚拟的文件类细分节点,将一个抽象的文件类分成多个较为具体的文件类,CB节点是将具体节点进行抽象的虚拟节点,将多个文件类统一归为其上一层的抽象节点。Raw-data以及SP和CB的定义主要用于任务进度展示,本例中使用的系统可以为用户提供进度图形化显示功能,根据用户需求,可以提供整体任务执行状态展示、每年任务进度、某年每一景任务展示、某一景具体执行情况展示,为了展示中不同层次的衔接而特别定义了这几个文件类和抽象转换类。Alias用作统一的id标示,在下文中使用。
在fileclass-definition和transclass-definition中,分别对文件类和转换类进行定义。文件类的定义如下
<fileclass id=″[G01_MOD09A1]″ nametree=″title#year#tile″desc=″[G01_MOD09Al]″ size=″20″/>
其中id为oid树中文件类的唯一标识alias,通过id可以将当前的配置与oid树联系起来。Nametree=title#year#tile,表示该文件类所属的层次是tile层,这也是对用户进行进度显示时候该文件类所属的层次。其后的desc,size属于本系统使用的数据。转换类与文件类类似。
在mapclass中,按照命名树的划分对每一层的依赖图模型进行定义,分别是顶层视图、年视图、景视图,用于程序运行时初始化运行的实例图。
本例中使用的系统在运行时,根据实际运行时要执行的年份和要进行计算的景号,生成另外两个配置文件,分别为任务配置文件和依赖图实例配置文件,以运行2001年h04v10和h04v11两景数据为例其内容如下:
第一个配置文件,即任务配置文件,将任务依照命名树的分层进行了划分,1.1.1和1.1.2为划分后的两个子任务。
第二个配置文件,即为依赖图实例配置文件,为系统自动生成的与任务对应的顶层依赖图实例配置文件。其中nodes文件定义了该图中的节点,也就是转换类。Lines标签中定义了节点间的边,from标签定义了边的起点,to标签定义边终点,file标签定义了传递的文件。此处的oid是在最初定义oid树时的唯一标识alias。通过这样的形式,该图的节点和输入输出关系就明确了。
依据上述步骤生成的几个配置文件,主调程序就可生成任务执行时的如表10和表11的文件依赖图和转换依赖图,并可以在任务执行时生成对应的执行状态实例图。
表10文件依赖图
No | Key | status |
1 | G01_MOD09A1all:2001:w04v11 | Ready |
2 | G01_MCD43B3all:2001:w04v11 | Ready |
3 | G01_MCD43B2all:2001:w04v11 | Ready |
4 | G02_MOD09A1NSall:2001:w04v11 | Not_created |
5 | G02_MCD43B3all:2001:w04v11 | Not_created |
6 | G03_EMIS_Modisall:2001:w04v11 | Not_created |
7 | G01_MOD09A1all:2001:w04v11 | Ready |
8 | G01_MCD43B3all:2001:w04v11 | Ready |
9 | G01_MCD43B2all:2001:w04v11 | Ready |
10 | G02_MOD09A1NSall:2001:w04v11 | Not_created |
11 | G02_MCD43B3all:2001:w04v11 | Not_created |
12 | G03_EMIS_Modisall:2001:w04v11 | Not_created |
表11转换依赖图
本例中使用的系统通过第二个配置文件,可以为用户生成任务执行状态的顶层图,如图7所示。在双击顶层图后,为用户展示2011年全球各景的分景执行状态图,如图8所示,选中某一景,则进入具体的单景执行实例图,如图9所示。其中,顶层图、分景图、单景图均为进度展示用,并非调度必须的。
本例中所使用的系统采用最基本的任务池,暂时并未对系统任务的优先级进行定义。主机负责任务监控,从机根据自身执行能力从任务池中领取任务。
运行时,主机上的主调程序将任务按照年-景分割,每一年每一景作为一个子任务,建立多个转换实例,每个子任务对应一个转换实例图。在文件依赖图中列出任务中涉及的所有输入输出文件类,监视每个任务所对应的文件状态。如2001年h04v10任务,需要2001年h04v10的对应G01_MODIS09A1,MOD43B2,MOD43B3作为输入,过程当中会生产出2001年G02_MODDIS09A1NS文件及G02_MOD43B3文件,当系统发现这两个文件全都准备好时,则对应的2001年h04v10的EMIS处理程序就可以执行。主机通过和各分机通信监控执行状态,并修改转换依赖图中各转换的状态。当一个转换类满足执行条件,并被主机标记为open时,则从机可以领取该任务并执行,执行完毕后可以继续领取新的任务。当所有状态均finish时,任务完成。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种基于卫星遥感数据特征的分布式并行处理方法,其特征在于,该方法包括:
将文件和处理程序抽象为文件类和转换类,依据文件和处理程序的分层关系分别建立文件类对象标识树和转换类对象标识树;
基于文件类对象标识树、转换类对象标识树、命名树及文件类和转换类的输入输出关系,生成主配置文件;
主机依据主配置文件生成与任务对应的文件依赖图和转换依赖图;
在运行时,主机负责监视各从机的任务执行状态,并负责更新文件依赖图和转换依赖图中各文件类实例和转换类实例的状态信息;
主机依据文件依赖图和转换依赖图判断是否有子任务满足执行条件,将满足执行条件的子任务分发给分机执行。
2.根据权利要求1所述的方法,其特征在于,所述转换类对象标识树基于处理程序的分层关系为每个对应的转换类分配对象标识,除包含所有处理程序对应的转换类节点之外,所述转换类对象标识树还包含用于建立文件类和转换类之间的依赖关系的分支转换节点和合并转换节点。
3.根据权利要求2所述的方法,其特征在于,所述文件类对象标识树基于文件的分层关系为每个对应的文件类分配对象标识,每一层的转换类输出的文件类作为下一层转换类的输入。
4.根据权利要求3所述的方法,其特征在于,所述文件依赖图包含文件类实例信息字段和对应的文件类实例是否可用的状态字段,所述文件类实例信息字段中包含了文件类名称及该文件类实例所处命名树层次的信息。
5.根据权利要求4所述的方法,其特征在于,所述转换类依赖图包含转换类实例信息字段、转换类实例运行状态字段、输入文件类字段、输出文件类字段、上层转换类实例信息字段、下层转换类实例信息字段。
6.根据权利要求5所述的方法,其特征在于,所述主机判断子任务满足执行条件的方法为:
主机中的调度模块不断扫描所述文件依赖图和转换依赖图,判断与具体处理程序对应的转换类实例所依赖的所有文件类实例是否可用,当该转换类实例所依赖的所有文件类实例全部可用时,则该转换类实例对应的子任务满足执行条件。
7.根据权利要求6所述的方法,其特征在于,
在分析执行完一个任务后,通知主机,主机更新该任务对应的转换类实例的状态,并获取该转换类实例对应的输出文件类实例标识信息,并通过获取的输出文件类实例标识信息更新文件依赖图中的文件类实例对应的状态信息。
8.根据权利要求7所述的方法,其特征在于,
所述主机将满足执行条件的子任务放入任务队列,分机从任务队列中获取尚未执行的子任务,当一个分机的任务执行失败时,失败的子任务被重新添加至任务队列。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
依据主配置文件建立依赖图模型,依据依赖图模型建立图形化的分景执行状态图和/或单景执行实例图,且主机通过对文件依赖图和转换依赖图的扫描,依据对应的文件类实例和转换类实例的状态实时更新所述分景执行状态图和/或单景执行实例图。
10.根据权利要求7所述的方法,其特征在于,
采用集中式存储方案将数据存储于磁盘阵列上,将磁盘阵列映射到主机及各从机上;
由主机统一进行任务管理,处理能力强的主机和/或从机开启多个进程并发执行任务处理程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110305008.5A CN102508639B (zh) | 2011-10-10 | 2011-10-10 | 一种基于卫星遥感数据特征的分布式并行处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110305008.5A CN102508639B (zh) | 2011-10-10 | 2011-10-10 | 一种基于卫星遥感数据特征的分布式并行处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102508639A true CN102508639A (zh) | 2012-06-20 |
CN102508639B CN102508639B (zh) | 2014-04-02 |
Family
ID=46220733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110305008.5A Expired - Fee Related CN102508639B (zh) | 2011-10-10 | 2011-10-10 | 一种基于卫星遥感数据特征的分布式并行处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508639B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150401A (zh) * | 2013-03-27 | 2013-06-12 | 领航动力信息系统有限公司 | 一种基于MapReduce的字段整体替换方法 |
CN103942034A (zh) * | 2014-03-21 | 2014-07-23 | 深圳华大基因科技服务有限公司 | 任务调度方法及实现该方法的电子装置 |
CN104166538A (zh) * | 2013-05-16 | 2014-11-26 | 北大方正集团有限公司 | 一种数据任务处理方法及系统 |
CN104461502A (zh) * | 2014-11-03 | 2015-03-25 | 广州汇讯营销咨询有限公司 | 基于Hadoop的任务管理方法和系统 |
CN105589951A (zh) * | 2015-12-18 | 2016-05-18 | 中国科学院计算机网络信息中心 | 一种海量遥感影像元数据分布式存储方法及并行查询方法 |
CN106484520A (zh) * | 2016-10-17 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于数据血缘关系的智能调度方法及系统 |
CN106845926A (zh) * | 2016-12-27 | 2017-06-13 | 中国建设银行股份有限公司 | 一种第三方支付监管系统分布式数据流处理方法及系统 |
CN107077364A (zh) * | 2014-09-02 | 2017-08-18 | 起元科技有限公司 | 基于特定数据端口连接的识别使用图组件的自动聚类的基于图的程序规范的编译 |
CN107273115A (zh) * | 2017-05-17 | 2017-10-20 | 哈尔滨工业大学 | 基于标准化模块的卫星快速构建系统及方法 |
CN108920261A (zh) * | 2018-05-23 | 2018-11-30 | 中国航天系统科学与工程研究院 | 一种适于大规模并行数据处理任务的两级自适应调度方法 |
CN109359100A (zh) * | 2018-09-28 | 2019-02-19 | 北京赛博贝斯数据科技有限责任公司 | Pb级历史数据和在线数据的实时计算的可视化建模方法 |
CN109379216A (zh) * | 2018-09-27 | 2019-02-22 | 中国电子科技集团公司第二十八研究所 | 一种自适应切换贝叶斯网络的动态任务影响估计方法 |
CN111092943A (zh) * | 2019-12-13 | 2020-05-01 | 中国科学院深圳先进技术研究院 | 一种树状结构的多集群遥感方法、系统及电子设备 |
CN111443901A (zh) * | 2018-12-27 | 2020-07-24 | 北京奇虎科技有限公司 | 一种基于Java反射的业务扩展方法及装置 |
CN111722635A (zh) * | 2020-06-05 | 2020-09-29 | 北京空间飞行器总体设计部 | 一种遥感卫星并行处理任务的方法以及遥感卫星系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1164481A2 (en) * | 2000-05-31 | 2001-12-19 | International Business Machines Corporation | Object identifier based protocols in a distributed data processing system |
US20060149786A1 (en) * | 2003-01-21 | 2006-07-06 | Shuhei Nishiyama | Distributed database system |
CN101741904A (zh) * | 2009-11-27 | 2010-06-16 | 中国林业科学研究院资源信息研究所 | 一种分布式空间计算服务节点的构建方法及网关装置 |
-
2011
- 2011-10-10 CN CN201110305008.5A patent/CN102508639B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1164481A2 (en) * | 2000-05-31 | 2001-12-19 | International Business Machines Corporation | Object identifier based protocols in a distributed data processing system |
US20060149786A1 (en) * | 2003-01-21 | 2006-07-06 | Shuhei Nishiyama | Distributed database system |
CN101741904A (zh) * | 2009-11-27 | 2010-06-16 | 中国林业科学研究院资源信息研究所 | 一种分布式空间计算服务节点的构建方法及网关装置 |
Non-Patent Citations (2)
Title |
---|
K.A.HAWICK等: "Distributed High-Performance Computation for Remote Sensing", 《SUPERCOMPUTING, ACM/IEEE 1997 CONFERENCE》, 21 November 1997 (1997-11-21), pages 1 - 13 * |
卢丽君等: "分布式并行计算技术在遥感数据处理中的应用", 《测绘信息与工程》, vol. 30, no. 3, 30 June 2005 (2005-06-30), pages 3 - 5 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150401A (zh) * | 2013-03-27 | 2013-06-12 | 领航动力信息系统有限公司 | 一种基于MapReduce的字段整体替换方法 |
CN103150401B (zh) * | 2013-03-27 | 2017-03-08 | 领航动力信息系统有限公司 | 一种基于MapReduce的字段整体替换方法 |
CN104166538A (zh) * | 2013-05-16 | 2014-11-26 | 北大方正集团有限公司 | 一种数据任务处理方法及系统 |
CN103942034A (zh) * | 2014-03-21 | 2014-07-23 | 深圳华大基因科技服务有限公司 | 任务调度方法及实现该方法的电子装置 |
CN107077364B (zh) * | 2014-09-02 | 2021-06-04 | 起元科技有限公司 | 基于特定数据端口连接的识别使用图组件的自动聚类的基于图的程序规范的编译 |
CN107077364A (zh) * | 2014-09-02 | 2017-08-18 | 起元科技有限公司 | 基于特定数据端口连接的识别使用图组件的自动聚类的基于图的程序规范的编译 |
US11301445B2 (en) | 2014-09-02 | 2022-04-12 | Ab Initio Technology Llc | Compiling graph-based program specifications |
CN104461502A (zh) * | 2014-11-03 | 2015-03-25 | 广州汇讯营销咨询有限公司 | 基于Hadoop的任务管理方法和系统 |
CN105589951A (zh) * | 2015-12-18 | 2016-05-18 | 中国科学院计算机网络信息中心 | 一种海量遥感影像元数据分布式存储方法及并行查询方法 |
CN105589951B (zh) * | 2015-12-18 | 2019-03-26 | 中国科学院计算机网络信息中心 | 一种海量遥感影像元数据分布式存储方法及并行查询方法 |
CN106484520A (zh) * | 2016-10-17 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于数据血缘关系的智能调度方法及系统 |
CN106845926A (zh) * | 2016-12-27 | 2017-06-13 | 中国建设银行股份有限公司 | 一种第三方支付监管系统分布式数据流处理方法及系统 |
CN107273115A (zh) * | 2017-05-17 | 2017-10-20 | 哈尔滨工业大学 | 基于标准化模块的卫星快速构建系统及方法 |
CN108920261A (zh) * | 2018-05-23 | 2018-11-30 | 中国航天系统科学与工程研究院 | 一种适于大规模并行数据处理任务的两级自适应调度方法 |
CN108920261B (zh) * | 2018-05-23 | 2020-03-24 | 中国航天系统科学与工程研究院 | 一种适于大规模并行数据处理任务的两级自适应调度方法 |
CN109379216A (zh) * | 2018-09-27 | 2019-02-22 | 中国电子科技集团公司第二十八研究所 | 一种自适应切换贝叶斯网络的动态任务影响估计方法 |
CN109379216B (zh) * | 2018-09-27 | 2022-02-11 | 中国电子科技集团公司第二十八研究所 | 一种自适应切换贝叶斯网络的动态任务影响估计方法 |
CN109359100A (zh) * | 2018-09-28 | 2019-02-19 | 北京赛博贝斯数据科技有限责任公司 | Pb级历史数据和在线数据的实时计算的可视化建模方法 |
CN111443901A (zh) * | 2018-12-27 | 2020-07-24 | 北京奇虎科技有限公司 | 一种基于Java反射的业务扩展方法及装置 |
CN111443901B (zh) * | 2018-12-27 | 2024-02-09 | 三六零科技集团有限公司 | 一种基于Java反射的业务扩展方法及装置 |
CN111092943A (zh) * | 2019-12-13 | 2020-05-01 | 中国科学院深圳先进技术研究院 | 一种树状结构的多集群遥感方法、系统及电子设备 |
CN111092943B (zh) * | 2019-12-13 | 2022-09-20 | 中国科学院深圳先进技术研究院 | 一种树状结构的多集群遥感方法、系统及电子设备 |
CN111722635A (zh) * | 2020-06-05 | 2020-09-29 | 北京空间飞行器总体设计部 | 一种遥感卫星并行处理任务的方法以及遥感卫星系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102508639B (zh) | 2014-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508639B (zh) | 一种基于卫星遥感数据特征的分布式并行处理方法 | |
CN102831011B (zh) | 一种基于众核系统的任务调度方法及装置 | |
US7647590B2 (en) | Parallel computing system using coordinator and master nodes for load balancing and distributing work | |
CN105117286A (zh) | MapReduce中任务的调度方法和流水化执行方法 | |
CN103279385A (zh) | 一种云计算环境中集群任务调度方法及系统 | |
CN104123182B (zh) | 基于主从架构的MapReduce任务跨数据中心调度系统及方法 | |
CN102375734B (zh) | 应用产品开发系统、方法、装置和运行系统、方法、装置 | |
CN103078941A (zh) | 一种分布式计算系统的任务调度方法及系统 | |
CN108255539B (zh) | 基于云计算和数据虚拟化的气象卫星数据处理系统 | |
CN101710286A (zh) | 面向dag数据驱动型应用的并行编程模型系统和实现方法 | |
CN103279390A (zh) | 一种面向小作业优化的并行处理系统 | |
CN103729246A (zh) | 一种任务调度方法和装置 | |
CN104050042A (zh) | Etl作业的资源分配方法及装置 | |
CN111858027A (zh) | 一种软件机器人协同处理方法及系统 | |
Davami et al. | Fog-based architecture for scheduling multiple workflows with high availability requirement | |
CN114996018A (zh) | 面向异构计算的资源调度方法、节点、系统、设备及介质 | |
Lu et al. | Parallel secondo: A practical system for large-scale processing of moving objects | |
CN117421108B (zh) | 一种资源调度方法 | |
CN113010296B (zh) | 基于形式化模型的任务解析与资源分配方法及系统 | |
CN106445403B (zh) | 针对海量数据成对存储的分布式存储方法和系统 | |
Wu et al. | Geospatial data services within cloud computing environment | |
KR102473776B1 (ko) | 빅데이터 크로스 모델 데이터 통합 처리 방법 및 장치 | |
CN109583071B (zh) | 一种基于云仿真的并行优化方法和系统 | |
Liu | A Programming Model for the Cloud Platform | |
Thangaselvi et al. | An efficient Mapreduce scheduling algorithm in hadoop |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140402 Termination date: 20141010 |
|
EXPY | Termination of patent right or utility model |