论文部分内容阅读
随着信息时代的到来,互联网上的信息爆发式的增长,我们日常使用的搜索引擎需要检索的内容信息量也随着迅速增加。整个世界的信息数据总量在2011年就已经超过了1.2ZB,并且根据国际数据公司IDC的预测,世界信息量2020年也将超过35ZB。在这种数据量下,传统的单机搜索引擎的索引的数据量已经不能满足人们的要求,搜索引擎的研究现在纷纷转向了分布式。在Google发表三篇关于分布式系统的论文即HDFS、MapReduce和BigTable之后,Apache基于这三篇论文开发了开源的Hadoop系统。作为Hadoop框架的第二代产品,Hadoop YARN解决了在Hadoop老版系统在线程模型、内存消耗和使用效率、系统的可扩展性、系统的可靠性和性能上的缺陷,在此基础上进一步提升了新版MapReduce编程框架的执行效率。 本文在Hadoop YARN框架的基础上结合Lucene全文索引工具包、Zookeeper分布式系统同步工具、Memcached分布式缓存系统,构建了分布式搜索引擎NKCareerSearch。利用此系统不仅可以研究Hadoop YARN这一新技术,同时也可以在此基础上开展分布式搜索引擎缓存设计、分布式倒排索引存储等搜索技术的研究。 本文详细分析介绍搜索引擎的原理和工作流程并对Hadoop YARN平台的架构和优势给出了详尽的分析。在此基础上本文给出了在Hadoop YARN框架上使用MapReduce编程模型实现分布式爬虫和分布式索引模块的详细设计和实现。在使用Zookeeper作为集群管理工具的基础上,设计实现了分布式索引的分布及管理,搜索代理对外服务的抽象接口以及分布式搜索子系统的整体架构。并在实验室环境下对分布式搜索引擎系统进行了测试,并与Nutch和ElasticSearch等开源搜索引擎进行了对比分析。