CN110955731A - 一种基于Chord环的多源遥感大数据处理方法及装置 - Google Patents
一种基于Chord环的多源遥感大数据处理方法及装置 Download PDFInfo
- Publication number
- CN110955731A CN110955731A CN201911280139.5A CN201911280139A CN110955731A CN 110955731 A CN110955731 A CN 110955731A CN 201911280139 A CN201911280139 A CN 201911280139A CN 110955731 A CN110955731 A CN 110955731A
- Authority
- CN
- China
- Prior art keywords
- data
- subsystem
- remote sensing
- data center
- tasks
- 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.)
- Withdrawn
Links
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及遥感大数据领域,具体涉及一种基于Chord环的多源遥感大数据处理方法及装置。该方法及装置中,每个数据中心作为Chord环的一个节点,有一个对外的接口,并且具备一个路由表来进行查询路由工作。每个数据中心都具有一定的独立性,拥有自己独立的任务提交站点,同时可以访问其他数据中心的数据。多个数据中心在逻辑上构成一个Chord环。本发明具有良好的横向拓展能力,在实现数据共享的同时彻底解决了遥感数据的迁移问题,并且实现遥感数据的计算共享。
Description
技术领域
本发明涉及遥感大数据领域,具体而言,涉及一种基于Chord环的多源遥感大数据处理方法及装置。
背景技术
随着计算机、数字传感器、网络通信技术、航空卫星等技术的飞速发展,人类已经进入大数据时代,大数据为人类工业生产决策、变革商业模式提供了有利支撑。遥感是大数据最主要的来源之一,农情遥感大数据对农田监控、灌溉计划、灾害预警等农业生产活动具有重要指示作用,但是农情遥感大数据特殊的数据格式、庞大的数据量给其应用带来了挑战。目前国内外众多研究机构一直致力于农情遥感大数据的存储、计算、归档、传播等各个方面的研究,提出了各种农情遥感大数据的处理方案。
主要包括:s1:基于多核处理器的遥感大数据处理方案,多核处理器可以同时在不同的内核上运行多条指令,从而提高了并行计算程序的总体速度。目前几乎所有个人电脑使用的微处理器都是多核的,Intel i7+四核+八线程配置的电脑越来越普遍,一些服务器甚至达到八核、十六核。多核处理器大大提高ENVI等传统遥感桌面软件的处理效率,并且实验研究条件容易获取。S2:基于网格计算的遥感数据处理系统,网格计算是一种重要的工具,用于聚集和合并分布在世界各地、通过网络连接的异构资源组由于负载平衡在分布式环境中是一个具有挑战性的任务,网格计算提供了一个非常适合、低成本且一致的体系结构。S3:基于Hadoop MapReduce的遥感图像处理系统,Hadoop MapReduce是一个流行的大数据处理框架,已经成为业界和学术界事实上的标准,可以通过有效的大数据管理和分布式并行处理为用户提供集成的快速的遥感图像处理服务。S4:基于GPU的遥感图像处理系统,当前针对遥感大数据的并行计算平台通常基于CUDA编程模型。得益于GPU+CUDA的高效性和可编程性,目前该技术已经被成功地应用到遥感应用领域,例如遥感影像融合、云跟踪和重建、色彩平衡。S5:基于Master-Slave架构的遥感图像处理系统,目前已知的最早的也是唯一的面向多源遥感数据的遥感大数据处理架构是Cloud RS,在改善了遥感大数据存储和计算的问题上,避免了遥感大数据的传输。
基于不同的数据规模、不同的应用和不同的研究目的,不同的研究机构或公司采用的农情遥感大数据处理手段不同,但是基本都基于上面所提到的几种方案。但是这些方案都存在一定的缺陷,包括:S1:基于多核处理器的技术,受限于计算机内存,基于多核处理器的高性能计算在面对海量遥感数据时的计算和存储仍然捉襟见肘。S2:基于网格计算的遥感数据处理系统,稳定性和可靠性依赖于第三方工具,没有考虑到数据传输的问题,单纯从提高计算能力的角度解决问题,而且由于网格资源的动态性,有时任务无法在给定的约束(截止日期、成本)内完成。S3:基于Hadoop MapReduce的遥感图像处理系统,例如AgrCloud,没有解决数据的多源问题,而且在计算速度上还可以进一步提升,Hadoop只适合批处理。S4:基于GPU的遥感图像处理系统,目前已经提出的基于GPU的遥感图像处理系统没有提及面对海量遥感数据时候该结构的应对策略和存储方式,当然更没有考虑到遥感数据的获取以及多数据源的问题。
发明内容
本发明实施例提供了一种基于Chord环的多源遥感大数据处理方法及装置,以至少解决现有处理方法对遥感数据迁移难的技术问题。
根据本发明的一实施例,提供了一种基于Chord环的多源遥感大数据处理方法,包括以下步骤:
构建基于Chord环的系统架构,系统架构由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心;每个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作;
将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理。
进一步地,将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理包括:
某个数据中心的用户通过本数据中心的子系统提交任务,任务包括数据和要计算的指标;
该子系统通过Chord环资源定位方法找到数据位于哪一个数据中心,然后将任务进行切分,将子任务分别发送到位于不同数据中心的子系统;
接收分发任务的子系统通过本地Redis索引查找数据具体位置,然后进行计算。
进一步地,某个数据中心的用户通过本数据中心的子系统提交任务包括:
用户通过某个数据中心的子系统的网站提交任务,任务通过Ajax传输到后端Servlet;
该子系统通过Chord环资源定位方法找到数据位于哪一个数据中心,然后将任务进行切分,将子任务分别发送到位于不同数据中心的子系统包括:
Servlet接收到任务请求,进行处理,判断任务类型,封装成Kafka消息,通过Producer发送到Kafka消息队列中;
Consumer从消息队列中捕获到新发送的Kafka消息后启动处理工作;
Consumer查询本地数据库是否含有所需数据,如果没有,则查询所需数据位于哪一个数据中心;
Consumer对任务进行切分,对子任务进行本地处理或者发送到其他的数据中心进行处理;
将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理还包括:
启动监听线程Listener,通过三层监听机制监测各个数据中心的计算结果。
进一步地,Servlet接收到任务请求,进行处理,判断任务类型包括:
对每个子系统提交的任务进行解析,分析任务所涉及的计算任务和数据;查询数据库,确认分布在哪些数据中心;然后将这些数据划分成子数据块,子数据块和计算任务绑定构成子任务,分发到不同的子系统进行计算。
进一步地,分发到不同的子系统进行计算包括:
子系统计算子任务通过HTTP协议发送到其他的数据中心;基于HTTP协议的子任务分发的具体过程包括:创建URL对象;创建url连接,设置连接属性;构建输出缓冲流;构建PrintWriter对象;刷新输出并关闭连接。
进一步地,方法包括:节点的更新;节点的更新包括:新数据中心的加入和数据中心的退出。
进一步地,新数据中心的加入包括:
在该数据中心构建一个DHPS子系统,然后将子系统作为一个节点加入到DHPS中,子系统的加入需要一个称为向导的已知子系统的协助,任何一个运行在Chord环中的子系统都可以充当这个角色;加入过程包括新子系统本身的Join操作和被其他子系统发现两个阶段。
进一步地,数据中心的退出包括:
数据中心的退出不需要通知其他数据中心,数据中心子系统退出Chord环时,周期性对Chord节点的前继和后继进行探测。
进一步地,方法还包括:
采用分布式文件系统HDFS存储遥感图像;
基于Spark的指标计算:当任务提交然后被分发到不同的数据中心以后,在各自的数据中心进行计算;
采取Redis数据库作为数据中心内部索引。
根据本发明的另一实施例,提供了一种基于Chord环的多源遥感大数据处理装置,包括:
系统架构构建单元,用于构建基于Chord环的系统架构,系统架构由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心;每个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作;
任务处理单元,用于将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理。
本发明实施例中的基于Chord环的多源遥感大数据处理方法及装置,每个数据中心作为Chord环的一个节点,有一个对外的接口,并且具备一个路由表来进行查询路由工作。每个数据中心都具有一定的独立性,拥有自己独立的任务提交站点,同时可以访问其他数据中心的数据。多个数据中心在逻辑上构成一个Chord环。本发明具有良好的横向拓展能力,在实现数据共享的同时彻底解决了遥感数据的迁移问题,并且实现遥感数据的计算共享。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明基于Chord环的多源遥感大数据处理方法的流程图;
图2为本发明基于Chord环的多源遥感大数据处理方法的总体架构图;
图3为本发明基于Chord环的多源遥感大数据处理方法中DHPS子系统工作流程图;
图4为本发明基于Chord环的多源遥感大数据处理方法中任务分解图;
图5为本发明基于Chord环的多源遥感大数据处理方法中新数据中心加入示意图;
图6为本发明基于Chord环的多源遥感大数据处理装置的模块图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
针对目前遥感数据处理系统的不足,为了提高农情指标计算平台的计算效率,从根本上解决遥感数据的迁移及存储问题,本发明提出了一种基于Chord环的多源遥感大数据存储与计算解决方案。每个数据中心作为Chord环的一个节点,有一个对外的接口,并且具备一个路由表来进行查询路由工作。每个数据中心都具有一定的独立性,拥有自己独立的任务提交站点,同时可以访问其他数据中心的数据。具体地本发明针对跨数据中心的多源遥感大数据,提出了一种分布式、基于Chord环的跨数据中心的存储与计算的解决方案,利用Spark进行计算,HDFS进行存储。多个数据中心在逻辑上构成一个Chord环,数据中心之间的通信基于HTTP协议。本发明具有良好的横向拓展能力,在实现数据共享的同时彻底解决了遥感数据的迁移问题,并且实现遥感数据的计算共享。
实施例1
根据本发明一实施例,提供了一种基于Chord环的多源遥感大数据处理方法,参见图1,包括以下步骤:
S100:构建基于Chord环的系统架构,系统架构由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心;每个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作;
S200:将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理。
本发明实施例中的基于Chord环的多源遥感大数据处理方法,每个数据中心作为Chord环的一个节点,有一个对外的接口,并且具备一个路由表来进行查询路由工作。每个数据中心都具有一定的独立性,拥有自己独立的任务提交站点,同时可以访问其他数据中心的数据。多个数据中心在逻辑上构成一个Chord环。本发明具有良好的横向拓展能力,在实现数据共享的同时彻底解决了遥感数据的迁移问题,并且实现遥感数据的计算共享。
下面以具体的实施例,对本发明基于Chord环的多源遥感大数据处理方法进行详细说明。
本发明针对多源遥感大数据,提出了一种基于Chord环的多源遥感大数据存储与计算解决方案,总体架构如图2所示。当然本发明不仅仅针对遥感大数据,针对任何其他具备大数据特色的问题,也同样适用。
本发明的系统结构图如图2所示。整个系统由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心。每一个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作。某个数据中心的用户通过本数据中心的子系统提交任务,任务包括数据和要计算的指标,子系统通过Chord环资源定位方法找到数据位于哪一个数据中心,然后将任务进行切分,将子任务分别发送到位于不同数据中心的子系统,子系统通过本地Redis索引查找数据具体位置,然后进行计算。
DHPS子系统工作流程图如图3所示。以下将结合附图,对本发明的具体实施方式和实施例加以详细说明,所描述的具体实施例仅用以解释本发明,并非用于限定本发明的具体实施方式。
一本发明方法工作流程如下:
1.用户通过某个数据中心的子系统的网站提交任务,任务通过Ajax传输到后端Servlet。
2.Servlet接收到任务请求,进行处理,判断任务类型,封装成Kafka消息。通过Producer发送到Kafka消息队列中。
3.Consumer从消息队列中捕获到新发送的Kafka消息后启动处理工作。
4.Consumer查询本地数据库是否含有所需数据,如果没有,则查询所需数据位于哪一个数据中心。
5.Consumer对任务进行切分,对子任务进行本地处理或者发送到其他的数据中心进行处理。
6.启动监听线程Listener,通过三层监听机制监测各个数据中心的计算结果。
通过以上工作流程,从一个数据中心的子系统提交的任务可能会被切分然后发送到其他数据中心的子系统。
二任务的分解与分发
(2.1)任务的分解
任务分解如图4所示,对每个子系统提交的任务进行解析,分析任务所涉及的计算任务和数据。查询数据库,看这些数据分布在哪些数据中心。然后将这些数据划分成子数据块,子数据块和计算任务绑定构成子任务,分发到不同的子系统进行计算。
(2.2)任务的分发
子系统需要将计算子任务通过HTTP协议发送到其他的数据中心。基于HTTP协议的子任务分发的具体过程,描述如下:
(1)创建URL对象:
url=new URL(″http://172.20.109****″)
(2)创建url连接,设置连接属性:
httpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestMethod(″POSTm);
httpURLConnection.setRequestProperty(″charset″,″utf-8″);
(3)构建输出缓冲流:
BufferedOutputStream outputStream
=new BufferedOutputStream(httpURLConnection.getOutputStream()
(4)构建PrintWriter对象:
PrintWriter pw=new PrintWriter
(new BufferedOutputStream(httpURLConnection.getOutputStream()));
Pw.write(“point1=”+point1);
(5)刷新输出并关闭连接:
Pw.flush();
pw.close();
point1和point2表示区域的左上和右下两个点的坐标。传到其他子系统以后,会在其他子系统进行计算。不同的是,此时该数据中心一定包含这些数据。
三节点的更新
(3.1)新数据中心的加入
如果有新的数据中心需要纳入到DHPS中,首先需要在该数据中心构建一个DHPS子系统,然后将子系统作为一个节点加入到DHPS中。子系统的加入需要一个称为向导的已知子系统的协助,任何一个运行在Chord环中的子系统都可以充当这个角色。加入过程包括新子系统本身的Join操作和被其他子系统发现两个阶段,如图5所示。假设np和ns是Chord环中相邻两个子系统,n为新子系统,它加入Chord环后应该位于np和ns之间。在第1阶段中,n请求向导为它的后继(即ns),并初始化自身Finger表和后继表。按照Finger表定义,第1个需要查找后继的表项位置Join操作完成后节点的情形如图5左侧部分所示。此时只有n对自身属性进行了设置,其他子系统并不知道新子系统的加入。因此,第2阶段引入了stabilize操作,所有子系统定期检查其后继的前继,并向自己的直接后继发送Notify消息。在图5的例子中:(1)若np比n先向ns发送Notify,此次stabilize并不改变网络状态;(2)若n先向ns发送Notify,ns计算n的ID得知n比np更接近自己而认为有一个新子系统加入,ns由此把前继修改成n,然后,np在查看其后继(此时还是ns)的前继(此时已改为n)也发现了n的加入,np把其后继修改成n并向n发送Notify,把n的前继修改成np,这样,np、n、ns构成了完整的弦环,如图5右侧部分所示。当只有一个子系统时,Chord约定它的前继、后继都指向自身。
(3.2)数据中心的退出
数据中心的退出不需要通知其他数据中心,数据中心的退出主要指的是数据中心子系统退出Chord环,数据中心子系统退出会造成Chord环的断裂。为了处理这个问题,需要周期性对Chord节点的前继和后继进行探测。如果子系统n发现其后继已经失效,则从后继表中顺序查找第1个可用子系统替换,并按照子系统加入时的算法重建Finger表,然后通知前继。前继拷贝n的后继表,并添加n作为直接后继,如果有必要,去掉最后一个表项,以避免后继表的过度膨胀。对前继节点失效的处理需要借助于Notify消息。考虑图5右侧部分的例子,ns虽然能够感知n的失效却无法进行修复。由于上述对后继失效的处理过程能够保证Chord环后继链的正确性,因此np通过在stabilize中向新后继ns发送Notify,把ns的前继改成np。其他子系统也可能在Finger表项中保存有退出的子系统的记录,因此需要多次平衡,把失效信息扩散到Chord环中。这种方法能够保证Chord环的完整性。
四指标计算模块
(4.1)基于HDFS的存储
遥感图像的存储拟采用分布式文件系统HDFS,因为HDFS是Hadoop自带的分布式文件系统,和其他文件系统不同,它具有高度的容错性,并且运行在普通的廉价服务器上,对硬件性能要求不高。而且HDFS对Spark的支持也非常成熟,Java提供了对HDFS进行操作的丰富的API,便于数据的上传和管理。
(4.2)基于Spark的指标计算
当任务提交然后被分发到不同的数据中心以后,然后在各自的数据中心进行计算。农情指标类型丰富,计算复杂程度也不同。本发明提供了NDVI、NDWI、RVI、HAI等较为简单的指标的计算。计算引擎采用Spark。
本发明的指标计算基于Geotrellis库。因为Geotrellis是一个专门应用在栅格数据处理上的库,既可以提供高效的实时处理,也可以提供强大的批处理能力,提供了很多方便易用的API,避免了自己开发的麻烦。同时,随着Geotrellis的进一步发展,系统功能的进一步完善,可以使用的功能越来越丰富,便于进一步拓展。
(4.3)基于Redis的本地数据索引
本发明拟采取Redis数据库作为数据中心内部索引。Redis是一个开源的轻量级的基于内存的数据存储系统,数据可以以key-value的形式存储在内存中。Redis功能强大,速度极快,可以用作数据库、高速缓存和消息中间件。
可以将数据的属性作为key,地址作为String类型的Value进行存储。
key的格式拟设计如下:“A_BC”。其中:
A为固定值LS8,代表卫星类型;
B表示Path;
C表示Row。
根据key的格式,"LS8_153031"表示Landsat8卫星图像中Path=153,Row=031对应的数据。value的值是String类型,代表数据地址。如下:
其中172.16.0.140表示NameNode的IP,冒号后面表示数据存放的HDFS目录。
实施例2
根据本发明的另一实施例,提供了一种基于Chord环的多源遥感大数据处理装置,参见图6,包括:
系统架构构建单元201,用于构建基于Chord环的系统架构,系统架构由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心;每个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作;
任务处理单元202,用于将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理。
本发明实施例中的基于Chord环的多源遥感大数据处理装置,每个数据中心作为Chord环的一个节点,有一个对外的接口,并且具备一个路由表来进行查询路由工作。每个数据中心都具有一定的独立性,拥有自己独立的任务提交站点,同时可以访问其他数据中心的数据。多个数据中心在逻辑上构成一个Chord环。本发明具有良好的横向拓展能力,在实现数据共享的同时彻底解决了遥感数据的迁移问题,并且实现遥感数据的计算共享。
下面以具体的实施例,对本发明基于Chord环的多源遥感大数据处理装置进行详细说明。
本发明针对多源遥感大数据,提出了一种基于Chord环的多源遥感大数据存储与计算解决方案,总体架构如图2所示。当然本发明不仅仅针对遥感大数据,针对任何其他具备大数据特色的问题,也同样适用。
系统架构构建单元201:本发明的系统结构图如图2所示。整个系统由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心。每一个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作。某个数据中心的用户通过本数据中心的子系统提交任务,任务包括数据和要计算的指标,子系统通过Chord环资源定位方法找到数据位于哪一个数据中心,然后将任务进行切分,将子任务分别发送到位于不同数据中心的子系统,子系统通过本地Redis索引查找数据具体位置,然后进行计算。
DHPS子系统工作流程图如图3所示。以下将结合附图,对本发明的具体实施方式和实施例加以详细说明,所描述的具体实施例仅用以解释本发明,并非用于限定本发明的具体实施方式。
一本发明装置工作流程如下:
1.用户通过某个数据中心的子系统的网站提交任务,任务通过Ajax传输到后端Servlet。
2.Servlet接收到任务请求,进行处理,判断任务类型,封装成Kafka消息。通过Producer发送到Kafka消息队列中。
3.Consumer从消息队列中捕获到新发送的Kafka消息后启动处理工作。
4.Consumer查询本地数据库是否含有所需数据,如果没有,则查询所需数据位于哪一个数据中心。
5.Consumer对任务进行切分,对子任务进行本地处理或者发送到其他的数据中心进行处理。
6.启动监听线程Listener,通过三层监听机制监测各个数据中心的计算结果。
任务处理单元202:通过以上工作流程,从一个数据中心的子系统提交的任务可能会被切分然后发送到其他数据中心的子系统。
二任务的分解与分发
(2.1)任务的分解
任务分解如图4所示,对每个子系统提交的任务进行解析,分析任务所涉及的计算任务和数据。查询数据库,看这些数据分布在哪些数据中心。然后将这些数据划分成子数据块,子数据块和计算任务绑定构成子任务,分发到不同的子系统进行计算。
(2.2)任务的分发
子系统需要将计算子任务通过HTTP协议发送到其他的数据中心。基于HTTP协议的子任务分发的具体过程,描述如下:
(1)创建URL对象:
url=new URL(″http://172.20.109****″)
(2)创建url连接,设置连接属性:
httpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestMethod(″POST″);
httpURLConnection.setRequestProperty(″charset″,″utf-8″);
(3)构建输出缓冲流:
BufferedOutputStream outputStream
=new BufferedOutputStream(httpURLConnection.getOutputStream()
(4)构建PrintWriter对象:
PrintWriter Pw=new PrintWriter
(new BufferedOutputStream(httpURLConnection.getOutputStream()));
pw.write(“point1=”+point1);
(5)刷新输出并关闭连接:
pw.flush();
pw.close();
point1和point2表示区域的左上和右下两个点的坐标。传到其他子系统以后,会在其他子系统进行计算。不同的是,此时该数据中心一定包含这些数据。
三节点的更新
(3.1)新数据中心的加入
如果有新的数据中心需要纳入到DHPS中,首先需要在该数据中心构建一个DHPS子系统,然后将子系统作为一个节点加入到DHPS中。子系统的加入需要一个称为向导的已知子系统的协助,任何一个运行在Chord环中的子系统都可以充当这个角色。加入过程包括新子系统本身的Join操作和被其他子系统发现两个阶段,如图5所示。假设np和ns是Chord环中相邻两个子系统,n为新子系统,它加入Chord环后应该位于np和ns之间。在第1阶段中,n请求向导为它的后继(即ns),并初始化自身Finger表和后继表。按照Finger表定义,第1个需要查找后继的表项位置Join操作完成后节点的情形如图5左侧部分所示。此时只有n对自身属性进行了设置,其他子系统并不知道新子系统的加入。因此,第2阶段引入了stabilize操作,所有子系统定期检查其后继的前继,并向自己的直接后继发送Notify消息。在图5的例子中:(1)若np比n先向ns发送Notify,此次stabilize并不改变网络状态;(2)若n先向ns发送Notify,ns计算n的ID得知n比np更接近自己而认为有一个新子系统加入,ns由此把前继修改成n,然后,np在查看其后继(此时还是ns)的前继(此时已改为n)也发现了n的加入,np把其后继修改成n并向n发送Notify,把n的前继修改成np,这样,np、n、ns构成了完整的弦环,如图5右侧部分所示。当只有一个子系统时,Chord约定它的前继、后继都指向自身。
(3.2)数据中心的退出
数据中心的退出不需要通知其他数据中心,数据中心的退出主要指的是数据中心子系统退出Chord环,数据中心子系统退出会造成Chord环的断裂。为了处理这个问题,需要周期性对Chord节点的前继和后继进行探测。如果子系统n发现其后继已经失效,则从后继表中顺序查找第1个可用子系统替换,并按照子系统加入时的算法重建Finger表,然后通知前继。前继拷贝n的后继表,并添加n作为直接后继,如果有必要,去掉最后一个表项,以避免后继表的过度膨胀。对前继节点失效的处理需要借助于Notify消息。考虑图5右侧部分的例子,ns虽然能够感知n的失效却无法进行修复。由于上述对后继失效的处理过程能够保证Chord环后继链的正确性,因此np通过在stabilize中向新后继ns发送Notify,把ns的前继改成np。其他子系统也可能在Finger表项中保存有退出的子系统的记录,因此需要多次平衡,把失效信息扩散到Chord环中。这种方法能够保证Chord环的完整性。
四指标计算模块
(4.1)基于HDFS的存储
遥感图像的存储拟采用分布式文件系统HDFS,因为HDFS是Hadoop自带的分布式文件系统,和其他文件系统不同,它具有高度的容错性,并且运行在普通的廉价服务器上,对硬件性能要求不高。而且HDFS对Spark的支持也非常成熟,Java提供了对HDFS进行操作的丰富的API,便于数据的上传和管理。
(4.2)基于Spark的指标计算
当任务提交然后被分发到不同的数据中心以后,然后在各自的数据中心进行计算。农情指标类型丰富,计算复杂程度也不同。本发明提供了NDVI、NDWI、RVI、HAI等较为简单的指标的计算。计算引擎采用Spark。
本发明的指标计算基于Geotrellis库。因为Geotrellis是一个专门应用在栅格数据处理上的库,既可以提供高效的实时处理,也可以提供强大的批处理能力,提供了很多方便易用的API,避免了自己开发的麻烦。同时,随着Geotrellis的进一步发展,系统功能的进一步完善,可以使用的功能越来越丰富,便于进一步拓展。
(4.3)基于Redis的本地数据索引
本发明拟采取Redis数据库作为数据中心内部索引。Redis是一个开源的轻量级的基于内存的数据存储系统,数据可以以key-value的形式存储在内存中。Redis功能强大,速度极快,可以用作数据库、高速缓存和消息中间件。
可以将数据的属性作为key,地址作为String类型的Value进行存储。
key的格式拟设计如下:“A_BC”。其中:
A为固定值LS8,代表卫星类型;
B表示Path;
C表示Row。
根据key的格式,"LS8_153031"表示Landsat8卫星图像中Path=153,Row=031对应的数据。value的值是String类型,代表数据地址。如下:
其中172.16.0.140表示NameNode的IP,冒号后面表示数据存放的HDFS目录。
相比于现有方法,本发明具有以下优点:
(1)可以跨数据中心进行所选地区农情指标的计算,不同数据中心的子系统在逻辑上构成Chord环,同时数据中心之间不需要迁移数据。
(2)基于Spark的计算方案。Spark是基于Hadoop改进的一种流行的基于内存的大数据框架,在速度上较Hadoop有更明显的提升。
(3)基于HTTP协议的数据中心之间的通信。HTTP协议是互联网的基础协议之一,可以用于在数据中心之间的任务传输,结果传输。
(4)基于Redis的数据索引。Redis是一种Key-Value类型的非关系型内存数据库产品,支持多种数据类型,可以根据键直接哈希到数据地址,非关系型数据结构存储非结构化地址数据具有很大的优势,并且Redis使用简单,将数据缓存在内存里面,效率比较高。
本发明经过试验确定可行,并且性能表现优良。本发明除了计算农情遥感大数据,针对任何其他具备大数据特色的问题,也同样适用。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的系统实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于Chord环的多源遥感大数据处理方法,其特征在于,包括以下步骤:
构建基于Chord环的系统架构,所述系统架构由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心;每个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作;
将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理。
2.根据权利要求1所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理包括:
某个数据中心的用户通过本数据中心的子系统提交任务,任务包括数据和要计算的指标;
该子系统通过Chord环资源定位方法找到数据位于哪一个数据中心,然后将任务进行切分,将子任务分别发送到位于不同数据中心的子系统;
接收分发任务的子系统通过本地Redis索引查找数据具体位置,然后进行计算。
3.根据权利要求2所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述某个数据中心的用户通过本数据中心的子系统提交任务包括:
用户通过某个数据中心的子系统的网站提交任务,任务通过Ajax传输到后端Servlet;
所述该子系统通过Chord环资源定位方法找到数据位于哪一个数据中心,然后将任务进行切分,将子任务分别发送到位于不同数据中心的子系统包括:
Servlet接收到任务请求,进行处理,判断任务类型,封装成Kafka消息,通过Producer发送到Kafka消息队列中;
Consumer从消息队列中捕获到新发送的Kafka消息后启动处理工作;
Consumer查询本地数据库是否含有所需数据,如果没有,则查询所需数据位于哪一个数据中心;
Consumer对任务进行切分,对子任务进行本地处理或者发送到其他的数据中心进行处理;
所述将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理还包括:
启动监听线程Listener,通过三层监听机制监测各个数据中心的计算结果。
4.根据权利要求3所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述Servlet接收到任务请求,进行处理,判断任务类型包括:
对每个子系统提交的任务进行解析,分析任务所涉及的计算任务和数据;查询数据库,确认分布在哪些数据中心;然后将这些数据划分成子数据块,子数据块和计算任务绑定构成子任务,分发到不同的子系统进行计算。
5.根据权利要求4所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述分发到不同的子系统进行计算包括:
子系统计算子任务通过HTTP协议发送到其他的数据中心;基于HTTP协议的子任务分发的具体过程包括:创建URL对象;创建url连接,设置连接属性;构建输出缓冲流;构建PrintWriter对象;刷新输出并关闭连接。
6.根据权利要求1所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述方法包括:节点的更新;所述节点的更新包括:新数据中心的加入和数据中心的退出。
7.根据权利要求6所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述新数据中心的加入包括:
在该数据中心构建一个DHPS子系统,然后将子系统作为一个节点加入到DHPS中,子系统的加入需要一个称为向导的已知子系统的协助,任何一个运行在Chord环中的子系统都可以充当这个角色;加入过程包括新子系统本身的Join操作和被其他子系统发现两个阶段。
8.根据权利要求6所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述数据中心的退出包括:
数据中心的退出不需要通知其他数据中心,数据中心子系统退出Chord环时,周期性对Chord节点的前继和后继进行探测。
9.根据权利要求1所述的基于Chord环的多源遥感大数据处理方法,其特征在于,所述方法还包括:
采用分布式文件系统HDFS存储遥感图像;
基于Spark的指标计算:当任务提交然后被分发到不同的数据中心以后,在各自的数据中心进行计算;
采取Redis数据库作为数据中心内部索引。
10.一种基于Chord环的多源遥感大数据处理装置,其特征在于,包括:
系统架构构建单元,用于构建基于Chord环的系统架构,所述系统架构由多个子系统构成,每个子系统都有独立的任务提交站点,每个子系统位于一个数据中心;每个子系统有一个对外的接口,并且具备一个路由表来进行查询路由工作;
任务处理单元,用于将从一个数据中心的子系统提交的任务切分然后发送到其他数据中心的子系统进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911280139.5A CN110955731A (zh) | 2019-12-13 | 2019-12-13 | 一种基于Chord环的多源遥感大数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911280139.5A CN110955731A (zh) | 2019-12-13 | 2019-12-13 | 一种基于Chord环的多源遥感大数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110955731A true CN110955731A (zh) | 2020-04-03 |
Family
ID=69981342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911280139.5A Withdrawn CN110955731A (zh) | 2019-12-13 | 2019-12-13 | 一种基于Chord环的多源遥感大数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955731A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095781A (zh) * | 2021-04-12 | 2021-07-09 | 山东大卫国际建筑设计有限公司 | 一种基于边缘计算的温控设备管控方法、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256167A1 (en) * | 2007-04-10 | 2008-10-16 | International Business Machines Corporation | Mechanism for Execution of Multi-Site Jobs in a Data Stream Processing System |
CN101741696A (zh) * | 2008-11-07 | 2010-06-16 | 中国测绘科学研究院 | 一种分布式地理信息环境中的多用户实时协作系统 |
CN104850583A (zh) * | 2015-04-15 | 2015-08-19 | 清华大学 | 海量气候模式输出数据的分布式协同分析系统及方法 |
CN106210064A (zh) * | 2016-07-15 | 2016-12-07 | 桂林电子科技大学 | 一种基于授权的可控p2p大规模遥感数据分发方法 |
CN110349044A (zh) * | 2019-07-15 | 2019-10-18 | 深圳先进技术研究院 | 一种农情监测方法、系统以及电子设备 |
-
2019
- 2019-12-13 CN CN201911280139.5A patent/CN110955731A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256167A1 (en) * | 2007-04-10 | 2008-10-16 | International Business Machines Corporation | Mechanism for Execution of Multi-Site Jobs in a Data Stream Processing System |
CN101741696A (zh) * | 2008-11-07 | 2010-06-16 | 中国测绘科学研究院 | 一种分布式地理信息环境中的多用户实时协作系统 |
CN104850583A (zh) * | 2015-04-15 | 2015-08-19 | 清华大学 | 海量气候模式输出数据的分布式协同分析系统及方法 |
CN106210064A (zh) * | 2016-07-15 | 2016-12-07 | 桂林电子科技大学 | 一种基于授权的可控p2p大规模遥感数据分发方法 |
CN110349044A (zh) * | 2019-07-15 | 2019-10-18 | 深圳先进技术研究院 | 一种农情监测方法、系统以及电子设备 |
Non-Patent Citations (1)
Title |
---|
谢文君,徐静,吴沉寒: "一种基于Chord优化的空间数据存储方法", 《计算机应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095781A (zh) * | 2021-04-12 | 2021-07-09 | 山东大卫国际建筑设计有限公司 | 一种基于边缘计算的温控设备管控方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Inoubli et al. | An experimental survey on big data frameworks | |
US9589069B2 (en) | Platform for continuous graph update and computation | |
CN111400326B (zh) | 一种智慧城市数据管理系统及其方法 | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
Kamburugamuve et al. | Survey of distributed stream processing for large stream sources | |
CN111327681A (zh) | 一种基于Kubernetes的云计算数据平台构建方法 | |
Padhy | Big data processing with Hadoop-MapReduce in cloud systems | |
Candan et al. | Frontiers in information and software as services | |
CN108737168B (zh) | 一种基于容器的微服务架构应用自动构建方法 | |
Baer et al. | DBStream: A holistic approach to large-scale network traffic monitoring and analysis | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN114169579B (zh) | 核电工业互联网综合智能平台系统 | |
Fang et al. | Integrating workload balancing and fault tolerance in distributed stream processing system | |
Bansal et al. | Big data streaming with spark | |
CN110955731A (zh) | 一种基于Chord环的多源遥感大数据处理方法及装置 | |
Chen et al. | The research about video surveillance platform based on cloud computing | |
CN114925075B (zh) | 一种多源时空监测信息实时动态融合方法 | |
Chen et al. | Big data storage architecture design in cloud computing | |
CN113378219B (zh) | 一种非结构化数据的处理方法和系统 | |
Jamal et al. | Performance Comparison between S3, HDFS and RDS storage technologies for real-time big-data applications | |
Chaari et al. | On the robot path planning using cloud computing for large grid maps | |
Sun et al. | RS-pCloud: a peer-to-peer based edge-cloud system for fast remote sensing image processing | |
Lu et al. | Cloud data acquisition and processing model based on blockchain | |
Sonbol et al. | EdgeKV: Distributed key-value store for the network edge | |
US11757959B2 (en) | Dynamic data stream processing for Apache Kafka using GraphQL |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200403 |