Navigation Big Data Retrieval
Fangyuan Meng 1, Tao Wei1,2
1. Beijing Satellite Navigation Center, Beijing, China 2. Sichuan University, Chengdu, China
1. 185427910@qq.com, 2. 675279854@qq.com
Abstract: Nowadays, satellite navigation has been applied to all aspects of people's livelihood, infrastructure and national defense because of its high precision, all-weather and non-ground station restrictions. How to ensure the stability of the system related to the national economy and the people's livelihood. In the large-scale satellite navigation and positioning system, the analysis and processing of the massive log and the monitoring of the system status are the key factors to ensure the stability of the system. The existing system through the log troubleshooting issues are through the remote login server to the appropriate directory query,time-consuming and laborious. This paper presents a log analysis and monitoring system based on Elasticsearch, Logstash and Kibana, which is used to collect and retrieve massive log and system information in real time. This system can find, locate and deal with system abnormity more quickly and improve the usability of satellite system. This paper describes the framework of the system, the function and working principle of each component, and describes in detail the process of collecting, filtering and indexing the log and system information to the final query and display.The results show that the method can be used to improve the system in the event of failure through the log for investigation and processing speed.
Keywords: Navigation Big Data;Elasticsearch;Real-Time Search;Distributed
ElasticSearch分布式搜索引擎在导航
大数据检索中的应用
孟方园1,魏 涛1,2
1.北京卫星导航中心,北京,中国,100094 1. 185427910@qq.com, 2. 675279854@qq.com 2.四川大学,成都,中国,610065
【摘要】人类利用太阳,地磁及其他天体进行导航已有数千年历史,随着上世纪70年代GPS的出现,卫星导航开启了人类导航的新篇章。在互联网迅猛发展的带动下,基于卫星导航的应用和产品层出不穷,随之而来的是日益增长的海量卫星导航数据,导航数据区别于其他数据的一大特点是它的时空特性。本文提出一种基于ElasticSearch分布式搜索引擎的导航大数据处理技术,可高效、可靠的对导航大数据进行导入、索引和分布式存储,并以近实时的性能进行全文检索及按字段检索,特别对包含位置信息的数据实现了地理检索功能,同时提供冲突管理,容灾备份,RESTful API等多项特性。利用该技术可大幅提高分析和处理海量卫星导航数据的效率。文中使用实际的GSP数据进行测试,实测表明在百万到千万级导航数据量下,该方法具有较好的可靠性和性能。 【关键词】Elasticsearch;实时搜索;分布式
1 引言
现如今,卫星导航技术已充分运用在各行各业之中,具体地说,就是把导航芯片嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将其与现有的互联网整合起来,实现人类社会与物理系统的整合,在这个整合的网络当中,存在能力超级强大的中心计算机群,通过获取各类设备产生的数据,并对这些海量数据进
行分析处理,从而实现提高资源利用率和生产力水平,改善人与自然间关系的目的。然而随着数据量的日益增长以及导航数据的时空特性,对如何高效的处理这类数据提出了挑战。
利用分布式[1,2]的方式处理大数据是一个有效的措施,分布式ElasticSearch构建的检索系统近年来也不断出现,如陈亚杰等人研究的基于分布式ElasticSearch的天文大数据检索[3],姜康等人讨论了基于
ElasticSearch的元数据的搜索与共享[4],郑义成等人对基于ElasticSearch的海量AIS数据存储的研究[5]。
2 分布式搜索引擎ElasticSearch
分布式搜索引擎ElasticSearch是一个开源的、基于Lucene的分布式搜索引擎。ElasticSearch可以提供稳定、实时、可靠的检索服务,具有高可用、易扩展以及近实时的特点。 它采用RESTful的架构风格,提供了简单易用的查询和共享接口;使用GET获得请求对象的当前状态, 使用POST改变请求对象的状态, 使用PUT创建一个新对象,使用DELETE删除请求对象。
ElasticSearch能够方便地为数据建立索引,可将一个索引分割成多个索引分片(索引分片数可由用户指定, 默认为5),然后将多个分片均衡地分布在集群的所有可用节点上,形成分布式结构,减轻了单个节点的负担。 在ElasticSearch集群中,还可以为每个索引分片设置副本(副本数仍然可以由用户自行指定, 默认为1),当某索引分片失效时,可以及时使用副本恢复数据。ElasticSearch还拥有自动发现节点机制和快速数据恢复机制,当有新节点加入集群时,ElasticSearch可及时发现并自动重新进行负载均衡,为新节点分配数据;当某节点失效时,它同样会自动重新为可用节点分配数据。
主要功能包括分布式实时文件索引、实时全文搜索、结构化搜索以及特殊字段搜索、高可用性、多租户、REST风格API等。数据流进入系统后,数据能够快速的可视化,所有数据立即可用被搜索和分析。并且允许开始小规模使用,随着使用数据的增长,它可以建立及时的横向扩展。当需要更多的容量时,只需添加更多的节点,增加额外的硬件,即可让集群自动利用新的设备。
Figure 1. Distributed search platform architecture diagram
图 1.分布式搜索平台架构图
4 基于ElasticSearch的海量导航数据检索
Elasticsearch(简称ES)为分布式部署,使用3台服务器提供分布式搜索服务,通过任意服务器IP的9200端口均可访问整个集群并获得服务,且集群中的任意节点都可以被选举为主节点。通过将索引分片为9片,并配置1份复制片,主分片及复制分片被合理的存储在不同的Node上,从而达到分布式存储及容灾备份等作用,具体如图2所示。
3 总体架构
基于ElasticSearch搜索引擎搭建的分布式搜索平台总体架构图如图1所示。导航数据从KAFA中获取,筛选处理后推往集群进行索引。ElasticSearch集群可线性扩展,有效应对了导航数据量的高速增长。
Figure 2. Elasticsearch cluster overview
图 2.Elasticsearch集群概览
4.1 数据索引
通过其他服务组件将数据推送至分布式消息系统—Kafka,搜索平台中调用Kafka的API,开启一个专门的Kafka consumer线程,阻塞地等待数据,可以接近实时地获取数据。当收到数据并做预处理后再将其插入ElasticSearch集群建立索引。将数据插入ES需要使
用ES的java api获取Client,通过对该Client的调用从而实现对ES的所有操作。
由于导航数据的包含地理位置(经纬度)的特性,为了能对经纬度信息进行索引,在做数据插入前,需对经纬度信息进行处理,构建es_geo字段,格式为es_geo:{lat,lon},用于匹配ES对经纬度的索引,同时需在对应索引的Mapping中指定es_geo字段为geo_point类型。
提交文档进行索引的方式是批量索引,策略为每当添加的文档数量达到1000或添加的文档容量达到5M时或每隔5秒提交一次。
Figure 4. Point data search
图 4.点类数据搜索
4.2 全文搜索
ElasticSearch使用倒排索引的结构达到快速全文搜索的目的,倒排索引是实现“单词-文档矩阵”的一种具体存储形式,通过倒排索引,可以更具单词快速获取包含这个单词的文档列表,倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。具体结构如图3所示。
Figure 5. Shape data search 图 5.Sape类数据搜索
Figure 3. Inverted index
图 3.倒排索引
除了可进行全文搜索外,还实现了类似关系型数据库的结构化搜索功能,对于搜索关键词中形如“port:80、city:xx”的内容,将会作为过滤条件添加进搜索请求。
返回的文档就像是包含在矩形和圆形中的蓝色点,红色点用来确定边框,红色线段确定距离范围,在图形之外的点将被过滤。
针对geo_shape的搜索可以包含多种形状类型,如点、包络线、多边形、甚至说多个多边形,如图5所示。例如,我们可以定义一个中国的多边形,然后查找那些城市是位于中国的,这些城市也可以是多边形,当然也可以用一个点来定义,通过这样的过滤方式都能够准确的找到。
5 测试结果
使用300万条导航数据进行测试,测试工具为Loadruner,模拟多用户并发访问条件下ElasticSearch分布式搜索引擎的响应时间。ElasticSearch集群由3个节点组成,服务器CPU配置为Quad-Core AMD
Opteron(TM) Processor 2352 CPU@2.10GHz, 内存为8G的服务器,操作系统为Ubuntu 14.04 LTS。
4.3 地理搜索
地理搜索大体上分对geo_point(点)和geo_shape(形状)的搜索。针对geo_point的搜索又可分为基于距离排序的搜索和基于边界条件(多边形或圆形)的搜索,如图4所示。
5.1 全文搜索并发测试
关键词从词库中随机选择,在200用户数,290 QPS条件下,响应时间约为34ms;180 QPS条件下,响应时间约为17ms,如图6所示。
6 结论
根据卫星导航数据对于地理检索的需要, 以及随着数据量的不断增长,传统的关系型数据库在存储和检索导航数据时存在诸多不足, 本文研究了一种基于ElasticSearch分布式搜索引擎的高效导航数据检索方。利用ElasticSearch的实时全文检索、线性扩容及支持地理搜索等特点来解决海量导航数据的高效检索问题。实验证明, 这种基于ElasticSearch的海量数据检索方法在检索效率和扩展性方面都有较大优势, 可以满足用户高效检索的需求。
Figure 6. Full-text search concurrency test
图 6.全文搜索并发测试
5.2 条件组合搜索并发测试
每个用户先进行一次关键词搜索,然后在50W关键词、30个地理搜索条件、30个时间段、30个数值范围内各随机选择一个,进行条件组合搜索。
在200用户数条件下进行组合搜索,搜索速度达到420 QPS时,组合搜索和关键字搜索的响应时间分别为130ms、200ms,如图7所示。
References (参考文献)
[1] AndreevaJ,AnjumA,BarrassT,etal.ITNS,2005,52:8
84.
[2] XiaoW,JiCL,LiJD.AMM,2013,303:2235
[3] Chen Yajie, Wang Feng, Research on Application
of ElasticSearch Distributed Search Engine in Astronomical Data Retrieval, Journal of Astronomy, 2016.陈亚杰,王锋,邓辉等.
ElasticSearch分布式搜索引擎在天文大数据检索中的应用研究,天文学报,2016.
[4] Jiang Kang, Feng Jun, ElasticSearch based
metadata search and sharing platform, Computer and Modernization, 2015.姜康,冯钧等. 基于
ElasticSearch的元数据搜索与共享平台,计算机与现代化,2015.
[5] Zheng Yicheng, Mo Qinhua, Wang Haihong, A
Mass Storage Method of AIS Data Based on
ElasticSearch, 2016.郑义成,莫钦华,王海鸿. 基于ElasticSearch的海量AIS数据存储方法, 2016
Figure 7. Combined search concurrency test
图 7.组合搜索并发测试
因篇幅问题不能全部显示,请点此查看更多更全内容