CN111460012A - 基于Spark的气象历史台站沿革数据可视化方法及*** - Google Patents
基于Spark的气象历史台站沿革数据可视化方法及*** Download PDFInfo
- Publication number
- CN111460012A CN111460012A CN202010338643.2A CN202010338643A CN111460012A CN 111460012 A CN111460012 A CN 111460012A CN 202010338643 A CN202010338643 A CN 202010338643A CN 111460012 A CN111460012 A CN 111460012A
- Authority
- CN
- China
- Prior art keywords
- data
- leather
- spark
- file
- weather
- 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.)
- Pending
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/24—Querying
- G06F16/248—Presentation of query results
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了基于Spark的气象历史台站沿革数据可视化方法,方法包括:在服务器上搭建Spark分布式批处理引擎;获取气象历史台站的沿革数据,并对数据按照标识码进行拆分存储到数据库中;设计大文件批处理切分方法,将沿革数据文件切分为N个数据块进行解析,得到解析结果;使用Leaflet技术搭建web端的气象历史台站地图展示框架;设计统一访问接口,通过统一访问接口发布沿革数据解析结果;接收客户端的数据请求,通过接口返回客户端所请求的信息查询结果和沿革数据解析结果,并在搭建的展示框架上对信息查询结果和沿革数据解析结果进行展示。本发明还提供了基于Spark的气象历史台站沿革数据可视化***。本发明可以提高大文件的处理效率,方便用户进行检索。
Description
技术领域
本发明涉及气象大数据技术领域,尤其涉及基于Spark的气象历史台站沿革数据可视化方法及***。
背景技术
气象数据是反映天气的一组数据,气象数据可分为气候资料和天气资料。国家气象信息中心每天接收来自国内外主要台站的观测资料,这些资料日积月累,随时间的推移而成为气候资料。国内一部分台站每月将观测记录报表和数字化资料寄送或传输到国家气象信息中心,这些资料或报表成为气候资料重要的部分。此外,气候资料还包括通过各种渠道收集到的其他学科如水文、地学等资料。气象历史台站的数据量非常庞大,需要耗费大量的时间和资源进行气象数据的可视化分析。
Spark是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。与Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。尽管创建Spark是为了支持分布式数据集上的迭代作业,但是实际上它是对Hadoop的补充,可以在Hadoop文件***中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。
传统的气象历史台站沿革数据的可视化采用通用批处理MapReduce技术实现,但是MapReduce在数据的处理过程中,其计算结果需要保存到磁盘上,影响了整体的数据处理速度。并且MapReduce在处理任务失败后其处理的数据会丢失,不能实现数据层次容错。此外,MapReduce只提供了Map和Reduce两种操作,通用性低。
发明内容
本发明的目的在于克服现有技术的不足,提供基于Spark的气象历史台站沿革数据可视化方法及***,能够提高气象历史台站沿革数据的文件解析效率和迭代运算的效率,更高效的进行数据批处理,实现为用户高效实时展示台站信息,并提供沿革信息的在线检索查询。
本发明的目的是通过以下技术方案来实现的:
基于Spark的气象历史台站沿革数据可视化方法,方法包括以下步骤:
S1,在服务器上搭建Spark分布式批处理引擎;
S2,获取气象历史台站的沿革数据,并对获取的数据按照标识码进行拆分,分表分类存储到数据库中;
S3,设计大文件批处理切分方法,将数据库中存储的沿革数据文件切分为N个数据块,并对切分后的数据块进行解析,得到解析结果;
S4,基于天地图使用Leaflet技术搭建web端的气象历史台站地图展示框架;
S5,采用rest和web service相结合的方式设计统一访问接口,通过统一访问接口发布沿革数据解析结果和气象历史台站信息查询服务;
S6,接收客户端的数据请求,通过rest接口返回客户端所请求的信息查询结果和沿革数据解析结果,使得客户端在浏览器的气象历史台站地图展示框架上对信息查询结果和沿革数据解析结果进行展示。
具体的,所述步骤S1中Spark分布式批处理引擎的搭建过程包括以下子步骤:
S101,搭建一个主节点和两个从节点,在主节点上安装Spark并配置Spark的环境变量;
S102,修改配置文件,配置jdk、scala以及Spart主节点的IP和memory;
S103,修改slaves文件,在文件中添加主节点和从节点;
S104,使用scp命令将主节点上配置完成的spark复制到从节点中;
S105,分别进入主节点和从节点的sbin目录启动Spark分布式批处理引擎。
具体的,所述步骤S2中气象历史台站的沿革数据包括地面气象数据、高空气象数据、辐射气象数据、酸雨气象数据、农业气象数据。
具体的,所述步骤S3中大文件批处理切分方法采用Java多线程方式对沿革数据文件进行切分,对文件切分时使用RandomAccessFile类中的seek方法可跳到沿革数据文件任意位置进行数据读取。
具体的,所述步骤S3中对沿革数据文件切分过程中还包括:文件切分时计算数据块的end位置,并查找其后首次出现回车符<CR>的文件指针位置,将其作为数据块切分真正的结束位置。
基于Spark的气象历史台站沿革数据可视化***,***包括
数据预处理模块,用于获取气象历史台站沿革数据,并将沿革数据分类存储到数据库中;
数据切分模块,用于对数据库中的沿革数据文件进行切分形成多个数据块,并分别对数据块进行解析;
网络通信模块,用于发布沿革数据解析结果和提供气象历史台站信息查询服务,以及接收客户端发送的数据请求;
数据展示模块,用于从网络通信模块获取数据库中气象历史台站沿革数据解析结果和客户端请求的信息查询结果并在web端进行展示。
本发明的有益效果:
1.针对大文件处理采用Java多线程方式,将大文件切分为 N 小块,每一块交由一个线程去解析,保证了业务数据的完整性,大大提高了大文件的处理效率,方便用户查询台站信息,提高用户访问速度;
2.使用MySQL数据库进行存储,将数据按“首部”、“沿革数据”的标识码拆分成21张表进行存储,每张表冗余存储站号和台站类型信息,极大减轻了数据存储时数据本身给数据库带来的压力,加快了检索效率,使用户可以更快、更便捷的检索需要的数据;
3.使用rest和web service相结合的方式访问接口,用户可通过在浏览器中,使用REST服务的URI,在页面中直接查看数据,极大提升了用户访问效率;
4.采用了当下流行的前端Leaflet技术,基于信息中心天地图进行在线的台站地图展示。Leaflet设计简便、性能高、可用性好,在所有主要桌面和移动平台都能高效运作,具有跨平台、易拓展、兼容性好等优势,极大提高了用户浏览地图页面的速度、访问的容错性;
5.采用Spark分布式批处理引擎,提高了文件解析效率,在解析处理数据过程中,选择了大内存的处理服务器,将海量中间处理数据存放在内存中,提高了迭代运算的效率,更高效的进行批处理,降低了延时,方便了用户的检索。
附图说明
图1是本发明的方法流程图。
图2是本发明的***结构示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本实施例中,如图1所示,基于Spark的气象历史台站沿革数据可视化方法,方法包括以下步骤:
第一步,在Linux服务器上搭建Spark分布式批处理引擎,具体为搭建一个主节点Master和两个从节点Work,在Master节点上安装Spark并使用“vi /etc/profile”命令配置环境变量,在文件末尾添加“SPARK_HOME”变量。然后修改配置文件,配置jdk、scala以及Spart主节点的IP和memory。其次,修改conf目录下slaves文件配置从结点,将默认的localhost删掉,修改为:bigdata02、bigdata03,再使用scp命令将主节点上配置完成的spark复制到从节点中。最后,分别进入主节点和从节点的sbin目录启动Spark分布式批处理引擎。
第二步,获取气象历史台站的沿革数据,并对获取的数据按照首部、沿革数据的标识码拆分成21张表进行存储,每张表冗余存储站号和台站类型信息,分表分类存储到MYSQL数据库中。其中,气象历史台站的沿革数据包括地面气象数据、高空气象数据、辐射气象数据、酸雨气象数据、农业气象数据。
第三步,设计大文件批处理切分方法,方法采用Java多线程方式,将沿革数据大文件切分为 N 个数据块,每一数据块交由一个线程去解析,得到解析结果。其中,文件切分时使用RandomAccessFile类中的seek方法可跳到沿革数据文件任意位置进行数据读取。此外,文件切分时计算数据块的end位置,并查找其后首次出现回车符<CR>的文件指针位置,将其作为数据块切分真正的结束位置。
第四步,基于信息中心发布的天地图,使用Leaflet技术搭建web端的气象历史台站地图展示框架。
第五步,采用rest和web service相结合的方式设计统一访问接口rest,通过rest接口发布沿革数据解析结果和气象历史台站信息查询服务。用户可以通过rest接口服务的URI,在客户端页面中直接查看数据。同时接口提供数据获取功能,包括:台站位置经纬度信息查询、台站历史沿革信息查询等。并且面向不同的应用模式和开发运行环境,提供多种服务方式,主要包括:REST服务和web service。
第六步,接收客户端的数据请求,通过rest接口返回客户端所请求的信息查询结果和沿革数据解析结果,使得客户端在浏览器的气象历史台站地图展示框架上对信息查询结果和沿革数据解析结果进行展示。
本实施例中采用Spark分布式批处理的方式对气象历史台站沿革数据进行分布式批量处理解析,在本发明的另一些实施例中,也可以采用Flink流处理的方式来替换本实施例中的Spark分布式批处理方式,通过定制化内存管理,减少OOM (out of memory)现象的出现。
本实施例中,如图2所示,还提供一种基于Spark的气象历史台站沿革数据可视化***,***包括数据预处理模块、数据切分模块、网络通信模块和数据展示模块,其中,数据预处理模块用于获取气象历史台站沿革数据,并将沿革数据分类存储到数据库中;数据切分模块用于对数据库中的沿革数据文件进行切分形成多个数据块,并分别对数据块进行解析;网络通信模块用于发布沿革数据解析结果和提供气象历史台站信息查询服务,以及接收客户端发送的数据请求;数据展示模块用于从网络通信模块获取数据库中气象历史台站沿革数据解析结果和客户端请求的信息查询结果并在web端进行展示。
本***的数据切分模块使用Java多线程,在处理过程中,针对大文件处理采用Java多线程方式,将大文件切分为 N 个数据块,每一个数据块交由一个线程去解析,直到所有块都被解析完成。对文件切分时使用RandomAccessFile类,其seek方法可跳到任意位置进行数据读取,文件切分时计算切块end位置,再查找其后首次出现的<CR>的文件指针位置,将其作为切块真正的结束位置,以保证业务数据的完整性。
3.本***的数据展示模块使用在台站的地图展示部分,采用了当下流行的前端Leaflet技术,基于信息中心天地图进行在线的台站地图展示。Leaflet设计简便、性能高和可用性好,在所有主要桌面和移动平台能高效运作,在现代浏览器上会利用HTML5和CSS3的优势,同时也支持旧的浏览器访问,具有跨平台、易拓展、兼容性好等优势。
本***网络通信模块使用Rest和web service相结合统一访问接口,基于MySQL的数据存储,提供数据获取功能,包括:台站位置经纬度信息查询、台站历史沿革信息查询等。并且面向不同的应用模式和开发运行环境,提供多种服务方式,主要包括:REST服务和webservice。
本***的整体采用了Spark分布式处理设计,更加通用,容错性高,并且支持的运算平台,支持的开发语言更多。它基于内存的运算要快100倍以上;而基于磁盘的运算也要快10倍以上。实现了高效的DAG执行流程,可以通过基于内存来高效地处理数据流,Spark把中间数据放到内存中,迭代运算效率高。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。
Claims (6)
1.基于Spark的气象历史台站沿革数据可视化方法,其特征在于,包括以下步骤:
S1,在服务器上搭建Spark分布式批处理引擎;
S2,获取气象历史台站的沿革数据,并对获取的数据按照标识码进行拆分,分表分类存储到数据库中;
S3,设计大文件批处理切分方法,将数据库中存储的沿革数据文件切分为N个数据块,并对切分后的数据块进行解析,得到解析结果;
S4,基于天地图使用Leaflet技术搭建web端的气象历史台站地图展示框架;
S5,采用rest和web service相结合的方式设计统一访问接口,通过统一访问接口发布沿革数据解析结果和气象历史台站信息查询服务;
S6,接收客户端的数据请求,通过rest接口返回客户端所请求的信息查询结果和沿革数据解析结果,使得客户端在浏览器的气象历史台站地图展示框架上对信息查询结果和沿革数据解析结果进行展示。
2.根据权利要求1所述的基于Spark的气象历史台站沿革数据可视化方法,其特征在于,所述步骤S1中Spark分布式批处理引擎的搭建过程包括以下子步骤:
S101,搭建一个主节点和两个从节点,在主节点上安装Spark并配置Spark的环境变量;
S102,修改配置文件,配置jdk、scala以及Spart主节点的IP和memory;
S103,修改slaves文件,在文件中添加主节点和从节点;
S104,使用scp命令将主节点上配置完成的spark复制到从节点中;
S105,分别进入主节点和从节点的sbin目录启动Spark分布式批处理引擎。
3.根据权利要求1所述的基于Spark的气象历史台站沿革数据可视化方法,其特征在于,所述步骤S2中气象历史台站的沿革数据包括地面气象数据、高空气象数据、辐射气象数据、酸雨气象数据、农业气象数据。
4.根据权利要求1所述的基于Spark的气象历史台站沿革数据可视化方法,其特征在于,所述步骤S3中大文件批处理切分方法采用Java多线程方式对沿革数据文件进行切分,对文件切分时使用RandomAccessFile类中的seek方法可跳到沿革数据文件任意位置进行数据读取。
5.根据权利要求1所述的基于Spark的气象历史台站沿革数据可视化方法,其特征在于,所述步骤S3中对沿革数据文件切分过程中还包括:文件切分时计算数据块的end位置,并查找其后首次出现回车符<CR>的文件指针位置,将其作为数据块切分真正的结束位置。
6.基于Spark的气象历史台站沿革数据可视化***,其特征在于,包括
数据预处理模块,用于获取气象历史台站沿革数据,并将沿革数据分类存储到数据库中;
数据切分模块,用于对数据库中的沿革数据文件进行切分形成多个数据块,并分别对数据块进行解析;
网络通信模块,用于发布沿革数据解析结果和提供气象历史台站信息查询服务,以及接收客户端发送的数据请求;
数据展示模块,用于从网络通信模块获取数据库中气象历史台站沿革数据解析结果和客户端请求的信息查询结果并在web端进行展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010338643.2A CN111460012A (zh) | 2020-04-26 | 2020-04-26 | 基于Spark的气象历史台站沿革数据可视化方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010338643.2A CN111460012A (zh) | 2020-04-26 | 2020-04-26 | 基于Spark的气象历史台站沿革数据可视化方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111460012A true CN111460012A (zh) | 2020-07-28 |
Family
ID=71682629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010338643.2A Pending CN111460012A (zh) | 2020-04-26 | 2020-04-26 | 基于Spark的气象历史台站沿革数据可视化方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460012A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182086A (zh) * | 2020-09-29 | 2021-01-05 | 华能新能源股份有限公司 | 一种气象数据仓库后端接口数据传输交互***及方法 |
CN112214472A (zh) * | 2020-09-02 | 2021-01-12 | 国家气象信息中心 | 气象格点数据的存储及查询方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984421A (zh) * | 2010-09-03 | 2011-03-09 | 中国科学院软件研究所 | 基于实时数据库的气象要素数据组织录入与查询方法 |
WO2016045512A1 (zh) * | 2014-09-22 | 2016-03-31 | 同济大学 | 基于分布式框架的大规模实时交通指数服务方法与*** |
-
2020
- 2020-04-26 CN CN202010338643.2A patent/CN111460012A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984421A (zh) * | 2010-09-03 | 2011-03-09 | 中国科学院软件研究所 | 基于实时数据库的气象要素数据组织录入与查询方法 |
WO2016045512A1 (zh) * | 2014-09-22 | 2016-03-31 | 同济大学 | 基于分布式框架的大规模实时交通指数服务方法与*** |
Non-Patent Citations (2)
Title |
---|
博客园: "【并发】55、多线程并发解析单文件大数据了量解析入库,11880000万数据88线程55分钟入库", 《HTTPS://WWW.CNBLOGS.COM/CUTTER-POINT/P/10560324.HTML 》 * |
赵文芳等: "Spark Streaming框架下的气象自动站数据实时处理***", 《计算机应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214472A (zh) * | 2020-09-02 | 2021-01-12 | 国家气象信息中心 | 气象格点数据的存储及查询方法、装置及存储介质 |
CN112214472B (zh) * | 2020-09-02 | 2024-01-30 | 国家气象信息中心 | 气象格点数据的存储及查询方法、装置及存储介质 |
CN112182086A (zh) * | 2020-09-29 | 2021-01-05 | 华能新能源股份有限公司 | 一种气象数据仓库后端接口数据传输交互***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7410181B2 (ja) | ハイブリッド・インデックス作成方法、システム、プログラム | |
CN106202207B (zh) | 一种基于HBase-ORM的索引及检索*** | |
EP3327588B1 (en) | Value-id-based sorting in column-store databases | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和*** | |
CN107103032B (zh) | 一种分布式环境下避免全局排序的海量数据分页查询方法 | |
CN112559481A (zh) | 一种基于分布式***和关系数据库的数据存储方法及装置 | |
CN101136027B (zh) | 用于数据库索引、搜索和数据检索的***和方法 | |
CN112269816B (zh) | 一种政务预约事项相关性检索方法 | |
CN102254004A (zh) | 一种网络日志挖掘中的Web建模方法及*** | |
CN111427847A (zh) | 面向用户自定义元数据的索引与查询方法和*** | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN111506621A (zh) | 一种数据统计方法及装置 | |
CN111460012A (zh) | 基于Spark的气象历史台站沿革数据可视化方法及*** | |
CN115827907A (zh) | 基于分布式内存的跨云多源数据立方体发现与集成方法 | |
CN102968456A (zh) | 一种栅格数据读取处理方法和装置 | |
CN104156482A (zh) | 一种地图瓦片数据的发布方法 | |
CN111813744A (zh) | 文件的搜索方法、装置、设备及存储介质 | |
CN111611222A (zh) | 一种基于分布式存储的数据动态处理方法 | |
CN111666302A (zh) | 用户排名的查询方法、装置、设备及存储介质 | |
CN116414935A (zh) | 一种基于Elastic Search的分布式搜索空间矢量数据的方法 | |
CN111177098A (zh) | 查看***日志上下文的方法及*** | |
US9230011B1 (en) | Index-based querying of archived data sets | |
US11947490B2 (en) | Index generation and use with indeterminate ingestion patterns | |
CN112000666B (zh) | 一种面向列的数据库管理*** | |
CN115168505A (zh) | 一种用于海洋时空数据的管理***以及方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |