美章网 资料文库 海运业分布式搜索引擎的应用范文

海运业分布式搜索引擎的应用范文

本站小编为你精心准备了海运业分布式搜索引擎的应用参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

海运业分布式搜索引擎的应用

《西安工程大学学报》2015年第一期

1关键技术分析

1.1分布式计算分布式计算的基本原理是将待解的问题分解成若干个子问题,由多个独立并行的计算设备来进行计算.Hadoop是一个基于Map/Reduce的相当成功的分布式计算平台,Map/Reduce是Google的一项重要技术,是一种简化的并行计算编程模型[5].当接到一项任务时,不同的数据文件大小差异会很大,这就使线程运行的时间不一样,而整个任务的时间是由处理最大文件的那个线程所决定的,这就导致资源的浪费.所以,一种更好的方法是将输入数据分割成相同的块,大小一般为64M,这样既使有些进程处理速度快,也可以给它分配更多的数据块.Map/Reduce任务被分为Map阶段和Reduce阶段两个处理阶段.每个阶段都以键/值对作为输入和输出,由程序员决定它们的类型并具体定义Map函数和Reduce函数.Map函数是数据的准备阶段,对指定的属性进行提取,输出后的数据被存入本地硬盘.因为一旦作业处理完成,Map输出的中间结果可以被删除,如果中间结果传递给Reduce函数前失败,就由Hadoop在另一个结点上重新运行这个Map函数.中间结果被送到Reduce函数后,所有的Reduce函数对整个数据列表进行遍历,最终得到符合条件的结果.执行流程如图1所示.

1.2分布式存储HDFS最高效的访问模式是一次写入,多次读取.一个HDFS集群由一个NameNode(管理者)和一定数目的DataNode(工作者)组成.NameNode管理文件系统的命名空间,维护着文件系统树及整棵树内的所有文件和目录;DataNode是文件系统的工作节点,受NameNode和客户端的调用,根据需要存储或检索数据块,并定期向NameNode发送它们存储的块列表.当机器出现故障时,需要根据NameNo-de的块来重建文件,所以NameNode实现容错非常重要,Hadoop为此提供了两种机制.一种机制是备份那些组成文件系统元数据持久状态的文件,一般的配置是将持久状态写入本地磁盘的同时,写入一个远程挂载的网络文件系统;另一种机制运行一个辅助的NameNode,一般运行在一个单独的计算机上,它会保存合并后命名空间镜像的副本.HDFS文件系统使用副本存储策略来实现高可靠性.系统的复制因子一般为3,分别位于3个DataNode上,其中一个位于不同集群上.当一个DataNode出现故障后,其保存的数据仍然可以通过其他DataNode上保存的数据进行读取.网络断开会造成一组DataNode和NameNode失去联系,NameNode根据缺失的心跳信息判断故障情况.当一个在DataNode出现故障,这时NameNode就再复制该DataNode的副本并存储到其他DataNode上,以此来保证系统的高可靠性.当用户需要访问文件系统中的文件时,都需要向NameNode提交请求,获得相应的权限后,再对DateNode进行读或写.分布式文件系统结构如图2所示.

1.3搜索引擎技术架构作为互联网应用中最具技术含量的应用之一,优秀的搜索引擎需要复杂的架构和算法,以此来支撑对海量数据的获取、存储,以及对用户查询的快速而准确地响应.搜索引擎的信息源来自于互联网网页,通过网络爬虫将整个互联网的信息获取到本地,因为互联网页面中有相当大比例的内容是完全相同或者近似重复的,“网页去重”模块会对此做出检测,并去除重复内容.在此之后,搜索引擎会对网页进行解析,抽取出网页主体内容,以及页面中包含的指向其他页面的链接[6].为了加快响应用户查询的速度,网页内容通过“倒排索引”这种高效查询数据结构来保存,而网页之间的链接关系也会予以保存.之所以要保存链接关系,是因为这种关系在网页相关性排序阶段是可利用的,通过“链接分析”可以判断页面的相对重要性,可以对用户提供比较准确的搜索结果.由于网页数量太多,搜索引擎不仅需要保存网页原始信息,还要存储一些中间的处理结果,使用单台或者少量的机器明显是不现实的,分布式搜索引擎应运而生.Google等商业搜索引擎为此开发了一整套云存储与云计算平台,即前文介绍的Hadoop平台,使用数以万计的普通PC搭建了海量信息的可靠存储与计算架构,以此作为搜索引擎的基础支撑.大部分的HDFS程序对文件操作需要的是一次写入多次读取的操作模式.一个文件一旦创建、写入、关闭之后就不需要再修改.这个设定简化了数据一致性问题,并使高吞吐量的数据访问变得可能.网络爬虫程序可以完美地适合这个模型.搜索引擎的技术架构如图3所示.

2基于Hadoop的海运业分布式搜索引擎架构

随着经济全球化的出现,海运企业面对的是一个更大的市场空间和更激烈的竞争环境,信息的实时性交换要求越来越高,同时也对应用系统的全球快速部署提出了更高的要求.传统的企业IT架构给计算资源和软件留下了众多“孤岛”,因此集成和管理变得非常困难,传统的区域性计算机信息中心已经难以适应这种竞争需求,需要建立一个以数据为中心、分布式应用一体化的信息系统[7],以提高企业的核心竞争力.海运企业也有其特殊的一面,就是分公司与分支机构遍布全球各个港口,并且相互间的信息交互频繁,企业需要实时动态的查询船泊挂靠港口以及单证资料的传递信息,客户也需要随时能了解货物的运输情况.因此,基于Hadoop平台的分布式搜索引擎架构,特别适用于典型的全球性企业,尤其适用海运业,而且海运业的计算机应用系统经过几十年的发展,已经形成了一套完整的体系,如图4所示.其中,网关中心与各地区的海关、码头、堆场等服务商进行数据交换,采用全球通用的标准,例如EDI标准进行编码(UN/EDIFACT),进行双向数据交换,以达到和配合单位的数据共享,提升作业效率,降低人工录入成本.传输方式可以采用FTP或EMAIL等,主要对象和数据内容如下。Hadoop平台采用分布式存储技术,使得原来分布在各分支机构服务器上的数据处理能按照HDFS集群的方式集中在一起,成为分布式存储中心.将时效性高、处理时间集中的业务集中处理,合理分配人力资源.不但降低了人力成本,也提高了工作效率.Hadoop平台以分布式存储技术作为底层支撑,爬虫模块在搜索各个服务器的时候,定义一系列的Map/Reduce任务,下载服务器数据,分析数据,提取数据之间的关联,计算链接权重以及PageRank评分.索引模块将下载的数据解析成文本文档,并对抓取的内容进行分词,然后提取词元序列,按照重要性生成索引,方便用户检索业务数据.模拟千名用户在同一时刻对系统进行查询操作,测试数十次,响应速度很快,数据查询返回结果均在3s以内.同时也模拟进行了异地大量数据查询,例如10万条数据返回时间也均在5s以内.测试结果令人满意,如图5所示.

3结束语

基于Hadoop平台的分布式搜索引擎架构,特别适用于典型的全球性企业,面对庞大的数据量也可以快速处理,提高了系统的可靠性和可扩展性.用在中小型机构当中,也可以大大改善其数据的存储和检索功能.但如何对任务进行分割,使Hadoop平台达到负载均衡,将是接下来研究的重点.改进中文分词和网页评分策略,也将构造出性能更好、搜索准确率更高的分布式搜索引擎.

作者:陈宁柴向阳孙勇单位:西安工程大学计算机科学学院西安西翼智能科技有限公司