云计算环境中智慧城市垂直搜索技术研究
发布时间:2014-09-16 16:09
【摘要】 政府、行业、企业和公众都对智慧城市领域的垂直搜索功能有较为迫切的需要,但目前缺少相关的应用研究工作文章在对垂直搜索引擎、云计算等相关技术进行应用研究的基础上,提出了一种面向智慧城市的垂直搜索平台整体解决方案,该方案具有行业化程度高、性能和可靠性强、可伸缩性好等特点,能够满足不同用户的实际需求,具有良好的应用价值。
【关键词】 智慧城市; 垂直搜索; 云计算;
一、前言
随着科技水平的不断提高,社会经济的快速发展,对智慧城市系统的要求也越来越高。现如今,要基于云计算的智慧城市垂直搜索技术的应用需求不断增加,因此,我们要加强先进理论与先进技术的学习与应用,不断进行智慧城市垂直搜索技术的研发和探讨,使智慧城市更快更好的发展。
二、智慧城市的现状
智慧城市作为下一个万亿级的信息通信业务蓝海市场将是新的业务增长点。2010年以来,已有20个省近50个城市或地区提出建设“智慧城市”的目标和规划,在此背景下,很多II厂商和服务提供商积极响应政府提出的城市化发展策略,把“智慧城市”作为业务发展重点,通过和地方政府合作共同打造智慧城市云平台,发挥基础资源优势,以行业应用为切入点,整合产业资源,打造共赢模式。因此,智慧城市云平台的建设在新形势下对IT厂商和服务运营商的业务发展具有重要意义。智慧城市云平台、资源整合和共建模式也能缓解地方政府进行智慧城市建设的资金压力,有利于推动智慧城市项目落地和产业发展。
在智慧城市信息系统中,政府、企业都要在智慧基础设施之上进行科技和业务的创新应用,城市的各个关键系统和参与者要进行和谐高效地协作[1]。所以在智慧城市信息系统建设中垂直搜索技术的应用将会非常广泛。智慧城市系统中垂直搜索引擎是针对智慧城市中的用户,包括城市的管理者、公众和企业,是满足为公众、企业服务、提高城市管理水平这类需求的专业搜索引擎。在智慧城市的信息系统中,应用系统、服务、数据量都会非常庞大,对于智慧城市的各类用户,通过垂直搜索功能是直接找到自己关心和需要信息的最便捷途径。因此,智慧城市信息系统中垂直搜索系统的智能化程度也是智慧城市中“智慧”的重要体现。
三、智慧城市云计算中心体系架构
1、智慧城市运营支撑体系
建立针对智慧应用建设、运维、管理新特性的智慧城市运营支撑体系,以确保应用系统持续、稳定、安全运行。
2、基础设施层
按照云计算的基本架构,智慧城市的底层为基础设施层,包括智能接入和基础资源两部分。
其中智能接入部分本文由笔耕文化传播http://www.bigengculture.com/收集整理包括物联网感知设备和基础通信网络等,保障智慧应用的接入。物联网是互联网的应用的延伸和拓展,可以实现更透彻的感知、更广泛的互联互通以及更深入的城市智能化。因此物联网成为智慧城市智能接入的重要基础设施。
由于网络终端的计算和存储能力十分有限,而云计算技术具有强大的资源整合能力,能够实现对海量数据的存储、计算以及保障信息的安全,因此智慧城市的基础资源体现云资源池的概念并建立各类主题数据库资源,各个应用可以根据系统的需求在资源池和数据库资源中进行按需存取,提高资源的使用效率,实现资源的高度共享和协同,这也是智慧城市建设的核心思路之一。
3、云服务平台及应用层
智慧城市的中间层是面向智慧应用的云服务平台及应用,通过云服务平台的构建实现信息管理、垂直搜索、共享以及应用发布等,通过数据挖掘、数据分析等智能处理可以更好的支持用户决策和行动。智慧城市的应用主要聚焦在智慧政府、智慧民生、智慧产业这三大领域,实现信息应用的精细化、智能化,满足各领域不断涌现的信息化需求。智慧城市的垂直搜索引擎提供的主要内容不应该局限于普通的网页索引,而且包括面向公众、企业和城市管理者的城市服务、商业信息的加工,既包括政府部门的结构化的信息也包括大量多源异构的非结构化信息。
4、门户层
位于智慧城市上层的是向政府、企业和公众客户提供各类智慧城市应用系统的门户层,是直接面向城市市民体验智慧服务的入口。包括各种政府面向公众和企业提供的服务,面向企业产业发展的信息搜索服务,以及面向公众生活的信息推送和搜索服务等。
四、云计算在垂直搜索的应用研究
1、基于云计算的搜索引擎架构
垂直搜索引擎在智慧城市数据中心的核心和基础功能模块,智慧城市的应用汇有大量调用搜索引擎的业务需求,因此对于搜索引擎的功能和性能指标都有很高的要求。所以就要求垂直搜索引擎在提供全面、专业、准确的搜索功能,并且在用户体验、效率、稳定性、可靠性等方面都需要全面的技术保证。国内外很多学者都对垂直搜索引擎进行了大量研究[2-4],但是对于在智慧城市云计算中心,面向多种业务、海量数据条件下,结合最新云计算技术的垂直搜索引擎还有很多技术点需要研究。具体来说,有以下问题需要解决。
(一)、垂直搜索的大数据存储
在智慧城市信息系统中,抓取的网络信息,城市业务系统产生数据会随着时间飞速增加,垂直搜索引擎要处理的数据信息和索引信息也会快速膨胀。因此,智慧城市的垂直搜索需要解决搜索大数据的高效存储问题,同时还要解决水平扩容问题,并且扩容需要在不中断业务的情况下进行。
(二)、垂直搜索的大数据处理
在智慧城市的云计算中心会存储海量的数据,垂直搜索系统需要在信息抓取、存档、建立索引、信息搜索等环节优化面向海量数据处理的时间,提高数据处理效率和容错率。
(三)、并发访问性能
在智慧城市云计算中心,除了数据规模的不断增长,数据源数、数据接口、用户数都会不同程度增长,需要通过云计算技术解决资源竞争问题,包括并发分流、数据缓存、请求超时、状态维持问题等。
由于云计算技术在资源整合、整体性能、可靠性、扩展性等方面存在突出优势,以上搜索引擎在智慧城市应用中面临问题可以利用计算技术进行优化,当然也包括对搜索技术本身的优化。
云计算技术在垂直搜索中进行应用的方式是设计基于云计算技术的垂直搜索引擎架构。该架构可以实现对外部数据源和内部文档以及业务系统数据的全文搜索支持,并能随着数据量和业务需求动态扩展。优点是可以支持的数据量庞大,对数据的内容以及大小都没有限制。架构一般采用分布式文件系统和并行算法进行数据的存储和检索。
2、大数据存储应用研究
(一)、网络与文件数据存储
智慧城市云计算中心的网页数据和文档数据是由爬虫服务直接获取到本地的HTML, XML等格式的文本文件和自有应用系统产生的文件。这些文件如果要可搜索,需要进行解析服务和建索服务,这些文件本身是属于原始信息,一般以文件的形式存储在磁盘上。这些文本文件会随着获取数据的增加而快速增大,大到单台服务器无法存储的程度,因此对于这种大数据文件的管理,一般采用云计算中的分布式存储解决方案。在分布式存储系统采用的是块存储模式,超过块大小的文件均被切分成多个块分散存储在多个DataNode(数据节点)中,同时基于Replication(副本)机制,同一个块的多个副本按距离远近分别存放在相对可靠的DataNode中。NameNode(管理节点)负责管理分配DataNode。这样就通过并行的方式提高了数据存储能力,并能水平扩展,另外通过冗余方式保证了系统的高可用性和可靠性。
(二)、结构化数据存储
结构化数据是由数据抽取服务从业务系统数据库中抽取出供检索和分析的业务数据。这类数据主要是关系型数据库中的数据,往往具有明显的规则和关系特征,并且在垂直搜索中主要面向高并发读操作。因此研究采用一种轻量级,并支持高并发读和可横向扩展的MySQL云集群方案。基于业务数据特征在MySQL集群中建立分片存储形式,大表数据可以跨分片,特定业务表数据绑定特定分片。每个分片内,一个Master(主)数据库提供写服务,并和N台Slave(从)数据库提供读服务。还有一个Standby(热备)的Master数据库提供故障转移服务,另外每个数据分片都存储在2个以上的Slave数据库中,通过冗余方式以保证系统的高可用性。
(三)、索引数据管理
在智慧城市云计算中心中的数据,无论是分布式文件系统中的网页数据,文档数据还是数据库中的业务数据,如果要能被垂直搜索引擎可检索,均需要通过解析服务和建索服务进行索引化处理。处理方式是通过分词技术对文件进行解析,并产生索引信息,追加到索引文件中。索引数据主要用于大批量的检索操作,适合采用NoSQL数据库,如使用分布式Hbase、MongoDB之类的文档型数据库存储,既能满足大索引文件的管理要求,又可通过分布式存储提高性能。
(四)、检索结果数据缓存
通常情况下,垂直搜索引擎的检索结果数据是不做存储的,但对于常用的热门关键字,重复的检索处理结果的存储可以优化搜索引擎的整体性能。因此采用缓存将热门的检索结果保存在垂直搜索引擎的RAM内存中,后续请求可以直接获取检索结果,不用再执行检索过程。内存中检索结果数据的结构较为简单,属于标准的Key/Value(键/值)结构,可以使用memcached等分布式缓存系统来存取。通常的策略是:在搜索引擎中建立固定缓存区,对指定的业务性热门关键词的检索结果进行缓存,设置较长的存活时间;建立动态缓存区,对一般关键词的检索结果进行缓存,设置较短的存活时间。
3、分布式计算技术应用研究
对于智慧城市云计算中心海量数据的搜索处理,需要采用多节点并行计算来提高整体处理效率,在当前的云计算大数据技术体系中,MapReduce是被广泛接受并认可的分布式计算框架[5]。
(一)、分布式信息抓取
分布式信息抓取服务负责将外部网络的网页数据,以及指定文档服务器的文件抓取到智慧城市云计算中心建立本地文件存储。分布式信息抓取服务一般不采用MapReduce框架。信息抓取的Agent(代理程序)分发部署在多个节点各自运行,信息抓取服务本身一般不对数据进行加工处理,仅仅是并行的进行数据收集。分布式信息抓取服务的运行模式为主从式,由管理节点抓取服务程序负责管理协调其他抓取服务的活动,包括服务的健康度检查,服务监控,任务分配等方面。
(二)、分布式数据抽取
智慧城市云计算中心的垂直搜索引擎需要为业务系统和用户提供业务信息的全文搜索能力,因此需要为业务系统内的数据建立索引,并能提供业务数据的内容。由于业务系统数据往往是存储在业务数据库中,而业务数据库需要不断响应业务系统的业务操作请求。为了不对业务系统的正常运行造成影响,垂直搜索引擎不会在业务数据库上进行建立索引和数据读取的操作,而是先通过数据抽取服务获取这些业务数据到搜索引擎管理的数据库中,再进行建立索引处理。在上层用户或者系统读取检索结果中的目标数据时,也是从这个库中读取。
这就需要建立分布式数据抽取服务,定时从业务数据库中把业务数据更新到搜索数据库中,在面临多个业务数据库时,分布式部署方式可以分担导入数据工作,缩短导入时间,在数据抽取周期短的情况下,尽量降低对业务数据库的影响。Sqoop工具可以把关系型数据库数据抽取到分布式文件系统中。
(三)、分布式建立索引
分布式建立索引服务负责将采集到的内外部文件以及数据库中的数据通过分词、排序、合并、设置权重等手段建立索引数据,作为垂直搜索引擎进行检索操作的对象。建立索引服务可以基于MapReduce技术并行处理建立反向索引数据,即以关键词为基准关联数据源的索引。分布式建立索引服务把新索引数据不断追加到索引文件中,并按照设定的周期定期更新已有的索引数据。
(四)、分布式检索
检索服务是直接面向系统或用户提供实时信息查询服务,因此在检索的准确性和时间效率上有很高的要求。在智慧城市的垂直搜索中针对检索存在大量用户,并且会面向不同业务和目标用户的特征。针对这种特征,在技术上采用分布式检索机制以分流不同类别的检索请求,降低单次检索服务的计算规模。检索分片的划分一般根据业务需求、用户特征、数据特点等建立准则。当前主流的分布式检索引擎是Hadoop的Map/Reduce框架,其采用Master/Slave(主/从) 结构,由一个主管理节点的JobTracker(作业管理程序) 和多个从数据节点TaskTracker(任务管理程序) 组成。JobTracker 负责作业调度,TaskTracker 执行计算任务,所有的TaskTracker 都需要运行在DataNode上,这种模式是每一个TaskTracker所执行的检索服务处理的数据都是存储在DataNode本地的数据分片,而不会对其他服务器的数据分片进行检索。这样可以减少数据在网络上的传输,降低对网络带宽的需求,防止在DataNode数量扩展时网络带宽成为系统的性能瓶颈。
4、负载均衡与高可靠性技术
在智慧城市云计算中心,垂直搜索引擎为很多用户和系统服务,必然会有高并发的情况发生,为了使引擎在高并发访问情况下能正常响应,需要引入负载均衡技术。在面对大量的用户请求首先建立Nginx服务器集群,配置灵活的负载均衡策略实现Web请求的反向代理功能,以达到Web请求的分流和负载均衡。同时,在垂直搜索引擎的内部,通过Map/Reduce框架中的数据分片,一个分片存储在多个数据节点,各数据节点并行处理后汇总结果到管理节点,然后再返回给Web服务器。
在垂直搜索引擎中是通过分布式冗余机制避免单点故障和高可靠性,具体的来说管理节点一般是两个做HA,数据节点则采用索引分片,并对每个分片创建多个Replication(副本)分布存储在其他的DataNode上,每个DataNode上都存储一个主分片和多个副本分片。一个DataNode宕机,其主分片所在的DataNode会把副本分片作为主分片,并提供对这个分片的计算服务。所以单个数据节点宕机不会影响索引服务,一主N备的模式可以支持N个数据节点的故障冗余。
五、结束语
本文提出了一种在智慧城市云计算中心中应用的垂直搜索技术架构,面向智慧城市的应用需求,利用云计算技术在存储容量、计算性能和扩展性方面的优势,优化了垂直搜索引擎,可以支持智慧城市对垂直搜索的大规模的应用需求。在后续工作中,还要把垂直搜索、云计算、大数据的最新技术结合进行研究,以不断促进智慧城市应用水平的提高。
参考文献:
本文编号:9011
【关键词】 智慧城市; 垂直搜索; 云计算;
一、前言
随着科技水平的不断提高,社会经济的快速发展,对智慧城市系统的要求也越来越高。现如今,要基于云计算的智慧城市垂直搜索技术的应用需求不断增加,因此,我们要加强先进理论与先进技术的学习与应用,不断进行智慧城市垂直搜索技术的研发和探讨,使智慧城市更快更好的发展。
二、智慧城市的现状
智慧城市作为下一个万亿级的信息通信业务蓝海市场将是新的业务增长点。2010年以来,已有20个省近50个城市或地区提出建设“智慧城市”的目标和规划,在此背景下,很多II厂商和服务提供商积极响应政府提出的城市化发展策略,把“智慧城市”作为业务发展重点,通过和地方政府合作共同打造智慧城市云平台,发挥基础资源优势,以行业应用为切入点,整合产业资源,打造共赢模式。因此,智慧城市云平台的建设在新形势下对IT厂商和服务运营商的业务发展具有重要意义。智慧城市云平台、资源整合和共建模式也能缓解地方政府进行智慧城市建设的资金压力,有利于推动智慧城市项目落地和产业发展。
在智慧城市信息系统中,政府、企业都要在智慧基础设施之上进行科技和业务的创新应用,城市的各个关键系统和参与者要进行和谐高效地协作[1]。所以在智慧城市信息系统建设中垂直搜索技术的应用将会非常广泛。智慧城市系统中垂直搜索引擎是针对智慧城市中的用户,包括城市的管理者、公众和企业,是满足为公众、企业服务、提高城市管理水平这类需求的专业搜索引擎。在智慧城市的信息系统中,应用系统、服务、数据量都会非常庞大,对于智慧城市的各类用户,通过垂直搜索功能是直接找到自己关心和需要信息的最便捷途径。因此,智慧城市信息系统中垂直搜索系统的智能化程度也是智慧城市中“智慧”的重要体现。
三、智慧城市云计算中心体系架构
1、智慧城市运营支撑体系
建立针对智慧应用建设、运维、管理新特性的智慧城市运营支撑体系,以确保应用系统持续、稳定、安全运行。
2、基础设施层
按照云计算的基本架构,智慧城市的底层为基础设施层,包括智能接入和基础资源两部分。
其中智能接入部分本文由笔耕文化传播http://www.bigengculture.com/收集整理包括物联网感知设备和基础通信网络等,保障智慧应用的接入。物联网是互联网的应用的延伸和拓展,可以实现更透彻的感知、更广泛的互联互通以及更深入的城市智能化。因此物联网成为智慧城市智能接入的重要基础设施。
由于网络终端的计算和存储能力十分有限,而云计算技术具有强大的资源整合能力,能够实现对海量数据的存储、计算以及保障信息的安全,因此智慧城市的基础资源体现云资源池的概念并建立各类主题数据库资源,各个应用可以根据系统的需求在资源池和数据库资源中进行按需存取,提高资源的使用效率,实现资源的高度共享和协同,这也是智慧城市建设的核心思路之一。
3、云服务平台及应用层
智慧城市的中间层是面向智慧应用的云服务平台及应用,通过云服务平台的构建实现信息管理、垂直搜索、共享以及应用发布等,通过数据挖掘、数据分析等智能处理可以更好的支持用户决策和行动。智慧城市的应用主要聚焦在智慧政府、智慧民生、智慧产业这三大领域,实现信息应用的精细化、智能化,满足各领域不断涌现的信息化需求。智慧城市的垂直搜索引擎提供的主要内容不应该局限于普通的网页索引,而且包括面向公众、企业和城市管理者的城市服务、商业信息的加工,既包括政府部门的结构化的信息也包括大量多源异构的非结构化信息。
4、门户层
位于智慧城市上层的是向政府、企业和公众客户提供各类智慧城市应用系统的门户层,是直接面向城市市民体验智慧服务的入口。包括各种政府面向公众和企业提供的服务,面向企业产业发展的信息搜索服务,以及面向公众生活的信息推送和搜索服务等。
四、云计算在垂直搜索的应用研究
1、基于云计算的搜索引擎架构
垂直搜索引擎在智慧城市数据中心的核心和基础功能模块,智慧城市的应用汇有大量调用搜索引擎的业务需求,因此对于搜索引擎的功能和性能指标都有很高的要求。所以就要求垂直搜索引擎在提供全面、专业、准确的搜索功能,并且在用户体验、效率、稳定性、可靠性等方面都需要全面的技术保证。国内外很多学者都对垂直搜索引擎进行了大量研究[2-4],但是对于在智慧城市云计算中心,面向多种业务、海量数据条件下,结合最新云计算技术的垂直搜索引擎还有很多技术点需要研究。具体来说,有以下问题需要解决。
(一)、垂直搜索的大数据存储
在智慧城市信息系统中,抓取的网络信息,城市业务系统产生数据会随着时间飞速增加,垂直搜索引擎要处理的数据信息和索引信息也会快速膨胀。因此,智慧城市的垂直搜索需要解决搜索大数据的高效存储问题,同时还要解决水平扩容问题,并且扩容需要在不中断业务的情况下进行。
(二)、垂直搜索的大数据处理
在智慧城市的云计算中心会存储海量的数据,垂直搜索系统需要在信息抓取、存档、建立索引、信息搜索等环节优化面向海量数据处理的时间,提高数据处理效率和容错率。
(三)、并发访问性能
在智慧城市云计算中心,除了数据规模的不断增长,数据源数、数据接口、用户数都会不同程度增长,需要通过云计算技术解决资源竞争问题,包括并发分流、数据缓存、请求超时、状态维持问题等。
由于云计算技术在资源整合、整体性能、可靠性、扩展性等方面存在突出优势,以上搜索引擎在智慧城市应用中面临问题可以利用计算技术进行优化,当然也包括对搜索技术本身的优化。
云计算技术在垂直搜索中进行应用的方式是设计基于云计算技术的垂直搜索引擎架构。该架构可以实现对外部数据源和内部文档以及业务系统数据的全文搜索支持,并能随着数据量和业务需求动态扩展。优点是可以支持的数据量庞大,对数据的内容以及大小都没有限制。架构一般采用分布式文件系统和并行算法进行数据的存储和检索。
2、大数据存储应用研究
(一)、网络与文件数据存储
智慧城市云计算中心的网页数据和文档数据是由爬虫服务直接获取到本地的HTML, XML等格式的文本文件和自有应用系统产生的文件。这些文件如果要可搜索,需要进行解析服务和建索服务,这些文件本身是属于原始信息,一般以文件的形式存储在磁盘上。这些文本文件会随着获取数据的增加而快速增大,大到单台服务器无法存储的程度,因此对于这种大数据文件的管理,一般采用云计算中的分布式存储解决方案。在分布式存储系统采用的是块存储模式,超过块大小的文件均被切分成多个块分散存储在多个DataNode(数据节点)中,同时基于Replication(副本)机制,同一个块的多个副本按距离远近分别存放在相对可靠的DataNode中。NameNode(管理节点)负责管理分配DataNode。这样就通过并行的方式提高了数据存储能力,并能水平扩展,另外通过冗余方式保证了系统的高可用性和可靠性。
(二)、结构化数据存储
结构化数据是由数据抽取服务从业务系统数据库中抽取出供检索和分析的业务数据。这类数据主要是关系型数据库中的数据,往往具有明显的规则和关系特征,并且在垂直搜索中主要面向高并发读操作。因此研究采用一种轻量级,并支持高并发读和可横向扩展的MySQL云集群方案。基于业务数据特征在MySQL集群中建立分片存储形式,大表数据可以跨分片,特定业务表数据绑定特定分片。每个分片内,一个Master(主)数据库提供写服务,并和N台Slave(从)数据库提供读服务。还有一个Standby(热备)的Master数据库提供故障转移服务,另外每个数据分片都存储在2个以上的Slave数据库中,通过冗余方式以保证系统的高可用性。
(三)、索引数据管理
在智慧城市云计算中心中的数据,无论是分布式文件系统中的网页数据,文档数据还是数据库中的业务数据,如果要能被垂直搜索引擎可检索,均需要通过解析服务和建索服务进行索引化处理。处理方式是通过分词技术对文件进行解析,并产生索引信息,追加到索引文件中。索引数据主要用于大批量的检索操作,适合采用NoSQL数据库,如使用分布式Hbase、MongoDB之类的文档型数据库存储,既能满足大索引文件的管理要求,又可通过分布式存储提高性能。
(四)、检索结果数据缓存
通常情况下,垂直搜索引擎的检索结果数据是不做存储的,但对于常用的热门关键字,重复的检索处理结果的存储可以优化搜索引擎的整体性能。因此采用缓存将热门的检索结果保存在垂直搜索引擎的RAM内存中,后续请求可以直接获取检索结果,不用再执行检索过程。内存中检索结果数据的结构较为简单,属于标准的Key/Value(键/值)结构,可以使用memcached等分布式缓存系统来存取。通常的策略是:在搜索引擎中建立固定缓存区,对指定的业务性热门关键词的检索结果进行缓存,设置较长的存活时间;建立动态缓存区,对一般关键词的检索结果进行缓存,设置较短的存活时间。
3、分布式计算技术应用研究
对于智慧城市云计算中心海量数据的搜索处理,需要采用多节点并行计算来提高整体处理效率,在当前的云计算大数据技术体系中,MapReduce是被广泛接受并认可的分布式计算框架[5]。
(一)、分布式信息抓取
分布式信息抓取服务负责将外部网络的网页数据,以及指定文档服务器的文件抓取到智慧城市云计算中心建立本地文件存储。分布式信息抓取服务一般不采用MapReduce框架。信息抓取的Agent(代理程序)分发部署在多个节点各自运行,信息抓取服务本身一般不对数据进行加工处理,仅仅是并行的进行数据收集。分布式信息抓取服务的运行模式为主从式,由管理节点抓取服务程序负责管理协调其他抓取服务的活动,包括服务的健康度检查,服务监控,任务分配等方面。
(二)、分布式数据抽取
智慧城市云计算中心的垂直搜索引擎需要为业务系统和用户提供业务信息的全文搜索能力,因此需要为业务系统内的数据建立索引,并能提供业务数据的内容。由于业务系统数据往往是存储在业务数据库中,而业务数据库需要不断响应业务系统的业务操作请求。为了不对业务系统的正常运行造成影响,垂直搜索引擎不会在业务数据库上进行建立索引和数据读取的操作,而是先通过数据抽取服务获取这些业务数据到搜索引擎管理的数据库中,再进行建立索引处理。在上层用户或者系统读取检索结果中的目标数据时,也是从这个库中读取。
这就需要建立分布式数据抽取服务,定时从业务数据库中把业务数据更新到搜索数据库中,在面临多个业务数据库时,分布式部署方式可以分担导入数据工作,缩短导入时间,在数据抽取周期短的情况下,尽量降低对业务数据库的影响。Sqoop工具可以把关系型数据库数据抽取到分布式文件系统中。
(三)、分布式建立索引
分布式建立索引服务负责将采集到的内外部文件以及数据库中的数据通过分词、排序、合并、设置权重等手段建立索引数据,作为垂直搜索引擎进行检索操作的对象。建立索引服务可以基于MapReduce技术并行处理建立反向索引数据,即以关键词为基准关联数据源的索引。分布式建立索引服务把新索引数据不断追加到索引文件中,并按照设定的周期定期更新已有的索引数据。
(四)、分布式检索
检索服务是直接面向系统或用户提供实时信息查询服务,因此在检索的准确性和时间效率上有很高的要求。在智慧城市的垂直搜索中针对检索存在大量用户,并且会面向不同业务和目标用户的特征。针对这种特征,在技术上采用分布式检索机制以分流不同类别的检索请求,降低单次检索服务的计算规模。检索分片的划分一般根据业务需求、用户特征、数据特点等建立准则。当前主流的分布式检索引擎是Hadoop的Map/Reduce框架,其采用Master/Slave(主/从) 结构,由一个主管理节点的JobTracker(作业管理程序) 和多个从数据节点TaskTracker(任务管理程序) 组成。JobTracker 负责作业调度,TaskTracker 执行计算任务,所有的TaskTracker 都需要运行在DataNode上,这种模式是每一个TaskTracker所执行的检索服务处理的数据都是存储在DataNode本地的数据分片,而不会对其他服务器的数据分片进行检索。这样可以减少数据在网络上的传输,降低对网络带宽的需求,防止在DataNode数量扩展时网络带宽成为系统的性能瓶颈。
4、负载均衡与高可靠性技术
在智慧城市云计算中心,垂直搜索引擎为很多用户和系统服务,必然会有高并发的情况发生,为了使引擎在高并发访问情况下能正常响应,需要引入负载均衡技术。在面对大量的用户请求首先建立Nginx服务器集群,配置灵活的负载均衡策略实现Web请求的反向代理功能,以达到Web请求的分流和负载均衡。同时,在垂直搜索引擎的内部,通过Map/Reduce框架中的数据分片,一个分片存储在多个数据节点,各数据节点并行处理后汇总结果到管理节点,然后再返回给Web服务器。
在垂直搜索引擎中是通过分布式冗余机制避免单点故障和高可靠性,具体的来说管理节点一般是两个做HA,数据节点则采用索引分片,并对每个分片创建多个Replication(副本)分布存储在其他的DataNode上,每个DataNode上都存储一个主分片和多个副本分片。一个DataNode宕机,其主分片所在的DataNode会把副本分片作为主分片,并提供对这个分片的计算服务。所以单个数据节点宕机不会影响索引服务,一主N备的模式可以支持N个数据节点的故障冗余。
五、结束语
本文提出了一种在智慧城市云计算中心中应用的垂直搜索技术架构,面向智慧城市的应用需求,利用云计算技术在存储容量、计算性能和扩展性方面的优势,优化了垂直搜索引擎,可以支持智慧城市对垂直搜索的大规模的应用需求。在后续工作中,还要把垂直搜索、云计算、大数据的最新技术结合进行研究,以不断促进智慧城市应用水平的提高。
参考文献:
- [1] 张会平. 地市级政府网站的信息计量指标研究[J]. 电子科技大学学报(社科版). 2011(06)
- [2] 付强. 基于Lucene的高校图书垂直搜索引擎的研究与实现[J]. 太原师范学院学报(自然科学版). 2011(04)
- [3] 黄蔚,刘忠,刘全. RL_Spider:一种自主垂直搜索引擎网络爬虫[J]. 计算机应用与软件. 2011(12)
- [4] 李广建,王巍巍. 国外政府网站整合服务研究[J]. 情报科学. 2011(04)
- [5] 邵秀丽,刘彬,张涛. 基于Nutch的垂直搜索引擎的设计和实现[J]. 计算机工程与设计. 2011(02)
- [6] 赵建伟,郑诚,吴永俊. 基于语义查询扩展的垂直搜索研究[J]. 计算机工程. 2010(12)
本文编号:9011
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/9011.html