基于NoSQL技术的搜索引擎设计与实现毕业论文.doc
《基于NoSQL技术的搜索引擎设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于NoSQL技术的搜索引擎设计与实现毕业论文.doc(32页珍藏版)》请在三一文库上搜索。
1、学校代码:10200 学号:1272409029 本科毕业论文基于NoSQL技术的搜索引擎设计与实现 Design and Implementation a Search Engine based on the NoSQL摘 要网络中的资源非常丰富,但是如何有效的搜索信息却是一件困难的事情,建立搜索引擎就是解决这个问题的最好方法。搜索引擎,通常指的是收集了因特网数百亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有包含了该关键词的网页都将作为搜索结果被检索到并展示出来。本文主要是研究了搜索引擎的基本实现。首先是数据抓取,基于Nutc
2、h爬虫系统的部署和实现,抓取命令执行完毕,后台会自动抓取网页,并存储到伪分布式HBase数据库中。其次为基于NoSQL的数据伪分布存储,为本文的实现重点,Hadoop,HBase,Zookeeper部署伪分布式环境,Nutch抓取到的数据存储到伪分布式NoSQL数据库HBase中,索引器为存储的数据进行索引。还有关键字的索引,目前关键字的索引工作做得很少,只是基本实现了数据的基本索引,没有真正实现倒排索引;但实现了以Http请求方式对外提供请求接口,做到组件低耦合,各组件维护提升自由独立。最后结果列表的展示,基于Bootstrap,以及Java提供的Http接口,将以关键字向内部发起请求,获取
3、数据展示于前端。此外引擎实现所需要的伪分布运行环境部署,配置好NoSQL伪分布与开发环境,调试环境,测试环境,这个是所有部件能正常运行的基础。本文基于NoSQL技术实现了一个搜索引擎构架,通过爬虫抓取网页数据,存储到伪分布式NoSQL数据库中,Java类实现对前端提供查询接口,PHP调用接口获取关键字索引的数据,并展示给用户。关键词:搜索引擎;网络爬虫;检索;NoSQL;HBaseAbstractNetwork is very rich in resources, but how to search the effective information is a difficult thing,
4、 the best way to build a search engine is to solve this problem. Search engine, usually refers to the collection of the hundreds of billions of webpage and webpage in each word (i.e. keywords) index, full-text indexing database search engine. When a user searches a keyword, all contain the keyword w
5、ebpage will be as the search results retrieved and displayed.This paper is a basic implementation of the search engine. The first is data capture, and implementation of the Nutch crawler system based on the deployment, grab the command has completed, the background will be automatically crawl the we
6、bpage, and stored in the pseudo distributed HBase database. Then NoSQL data storage based on pseudo distribution, as the key point, the realization of the Hadoop, HBase, Zookeeper deployment pseudo distributed environment, Nutch to capture data storage to the pseudo distributed NoSQL database in HBa
7、se. The work of the indexing keywords is little, but the basic realization of the basic index data; on other hand in order to realize the Http request request interface providing, do component and low coupling, each component maintenance upgrade free and independent. Finally, the results display of
8、the list, based on Bootstrap, Http interface and Java, will be key to the internal request, gets the data displayed on the front. In addition the engine to achieve the deployment environment pseudo distribution operation needed, configure NoSQL pseudo distribution and development environment, the de
9、bugging environment, test environment, they are the basic of system.In this paper, the NoSQL technology to achieve a search engine crawler frame based on, through the webpage data, stored into the pseudo distributed NoSQL database, the Java class implements the query interface of front-end, keyword
10、index to obtain PHP interface data, and displayed to the user. Keywords: Search engine; Index; Retrieval; NoSQL;HBase东北师范大学学士学位论文目 录摘 要IABSTRACTII第一章 绪 论11.1 选题背景及意义11.2 国内外发展状况11.3 论文使用的研究方法与工具21.4 论文的基本思路与逻辑结构2第二章 可行性研究32.1概述32.3可行性分析32.4结论3第三章 搜索引擎分析53.1搜索引擎的体系结构53.2搜索引擎的工作流程83.3搜索引擎分析的遗留问题9第四章 系
11、统设计104.1爬虫系统104.2索引器+分析器114.3存储器124.4 UI前端15第五章 系统实施185.1 Ubuntu 及应用工具配置185.2 Hadoop 配置215.3 HBase 配置225.4 zookeeper 配置245.5服务器启动脚本245.6 Nutch配置25结束语26参考文献27致 谢2828第一章 绪 论1.1 选题背景及意义自从互联网开始发展起,经历了漫长发展。托Google、Baidu成功的福,搜索引擎火了半边天,人们上网方式也被彻底改变了。随着网络的不断发展和壮大,搜索引擎越来越成为人们生活中重要的一部分,找资料、查地图、听音乐,只有想不到的,没有搜索
12、不到的。中国十年多来互联网的不断发展, 截至2012年12月底,我国网民规模达5.64亿,全年共计新增网民5090万人,搜索引擎也出现空前的火热。在互联网出现的初期,雅虎、新浪、网易等大型门户网站拥有着高比例的浏览量,原因在于当初的大部分网站在技术上无法与门户网站相媲美,多数质量较差,内容不丰富,所以大型门户网站优秀的网页设计风格,大量的信息及时更新赢得了用户的认可,创造了第一次互联网的高峰。搜索引擎的出现,整合了众多网站信息,恰恰起到了信息导航的作用。通用搜索引擎就如同互联网第一次出现的门户网站一样,大量的信息整合导航,极快的查询,将所有网站上的信息整理在一个平台上供网民使用,于是信息的价值
13、第一次普遍的被众多商家认可,迅速成为互联网中最有价值的领域。互联网的低谷由此演变为第二次高峰。设计搜索引擎是一项富有挑战性的工作。搜索引擎为上亿个网页建立索引,其中包含大量迥然不同的词汇。而且每天要回答成千上万个查询。在网络中,尽管大型搜索引擎非常重要,但是学术界却很少研究它。1.2 国内外发展状况目前Google已经成为全球最大的全文搜索引擎,并在2000年已经开始提供中文搜索服务。Google每天提供超过2亿次查询服务,搜索时间不到半秒,成为网上最快捷的信息查询方法。Google国外做的很成功并且不断扩张的的时候,中国的市场做的不是很好,百度抓住这个时间差让“百度更懂中文”成功占据了大部分
14、的份额,成为世界上最大规模的中文搜索引擎,致力于向人们提供最便捷的信息获取方式。百度拥有全球最大的中文网页库,每天向全球100多个国家的网络用户提供超过1亿次以上的搜索服务。由于百度在技术上的领先,奠定了其在中国互联网高科技公司的优势地位,成为中国互联网信息服务的旗帜之一。1.3 论文使用的研究方法与工具本论文采用信息研究方法,根据信息论、控制论、系统论的原理1,通过对互联网页面信息的收集、索引,并应用于实践,以实现搜索引擎功能。使用到的工具有:Ubuntu12.10操作系统,vi,myeclipse,netbean,ivy,ant,ssh等。1.4 论文的基本思路与逻辑结构这篇论文按照网站系
15、统开发的顺序一共分为六个章节:绪论、可行性分析、搜索引擎分析、系统设计、系统实施和结论,逐步介绍了搜索引擎开发进程中数据交流原理与逻辑模型建立过程。主要内容有抓取网页,数据存储,检索,以及安装配置等。第二章 可行性研究2.1概述在目前Google,Baidu等主流搜索引擎占领着,而我们上网需求并没有得到完全的满足,还有很多开发领域等着我们尝试,而在当下大数据时代,数据的存储和快速检索成为了互联网发展的趋势,也是工程师解决用户快速响应需求的一个问题。2.2可行性分析检索无处不在,在电商中,显得尤为重量,没有人愿意等待延迟的查询结果,没有快速响应就等于没有用户。用户输入关键字,点击查询,期待快速、
16、准确得到他想要的查询结果。这个过程包含了巨大的商业价值,查询结果的排名,流量的导流,直接决定着电商网站的业衰。而数据每天都在增长,增长速度是也在加快,面对大数据的处理以及快速响应,传统数据模型越显吃力。分布式NoSQL数据库的发展,给出了一个解决方案,它对于大数据的存储以及查询,保持数据的容灾都表现出了极佳的性能。Yahoo!选择了它,Facebook选择了它,Google也选择了它,而分布式NoSQL数据库并没有让这些互联网巨头失望,成就了当下最大的互联网社区,最佳搜索引擎的有力后盾。NoSQL数据库HBase具有高可靠性、面向列、可伸缩、高效性、可在廉价PC Server搭建大规模结构化存
17、储集群等优点。它介于NoSQL和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作) 2。主要用来存储非结构化和半结构化的松散数据。分布式计算就好比蚂蚁吃大象,廉价的机器群可以匹敌任何高性能的计算机,纵向扩展始终抵不过横向扩展3。2.3总结经过对当下传统数据模型在面对大数据呈现吃力的情况的分析,接受分布式NoSQL并借以开发搜索引擎的实际应用,是一个可靠方案。可以尝试开发一个基于分布式NoSQL平台的搜索引擎。此次开发的系统命名为Bee搜索引擎,本文以下所有Bee搜索引擎均代指基于NoSQL的搜索引擎。第三
18、章 搜索引擎分析3.1搜索引擎的体系结构一切以数据为核心,数据的爬取,数据的索引,数据的检索,以及数据与用户交互都是基于数据。首先由爬虫Nutch Crawl抓取数据,并做保存,为加快检索的速度,由索引器对抓取下来的数据进行索引;经过索引的数据在用户检索时,将变得更为高效。总体系结构如下图3.1。图3.1基于NoSQL数据库HBase搜索引擎的体系结构简单的来说,在单机上搭建伪分布部署来实现爬取数据和数据存取。Nutch抓取指定网址数据,存储在HBase数据库中,存储过程由zookeeper管理。脚本调用索引器部件将数据索引化,经过索引化的数据被前端检索查询,最后前端展示查询结果,用户点击结果
19、列表查看目标资料。其中最为关键为:爬虫系统,数据存储,数据索引,以及检索。数据的存放直接决定搜索速度的瓶颈,既要爬取数据快速存储,又要考虑数据的冗余,还要考虑数据的检索速度。综合当下数据库的特点,关系数据库在解决这个工作显得成本过高,而新生NoSQL数据库HBase具有分布式存储,对实时查询进行有良好支持,堪比MySQL的随机访问性能,更是对大数据冗余处理让人满意,不会出现单点故障等优点,在这么一个需要对大数据进行随机、实时访问的场合中,HBase是数据库的最佳选择。本系统只需要功能单一的爬虫,而Nutch2.1就是一个仅具有爬虫功能的一个应用,从分布式处理来说,Nutch支持分布式处理,于是
20、它与HBase成了绝佳的组合。Nutch类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式处理模型保证了系统的性能类似Eclipse的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中4。由于机器条件原因,没有两台和两台以上的电脑进行开发,以单机伪分布部署模仿完全分布部署。配置host文件:/etc/hosts125.222.203.184 paopao-K55VD localhost master本机网卡IP地址:eth0: 125.222.203.184 起动所有引擎系统所有进程,查看java进程:rootpaopao-K55VD:/usr/local/zook
21、eeper# jps9774 DataNode5348 JobTracker10011 SecondaryNameNode9523 NameNode10857 HRegionServer10384 QuorumPeerMain5580 TaskTracker31097 Main13709 Jps10570 HMaster10206 MyEclipse9450 BootstrapHadoop伪分布部署java进程:主机服务器(本机):Hadoop: NameNode, SecondaryNameNode, JobTrackerHBase: HMaster从机服务器(本机):Hadoop: Dat
22、aNode, TaskTrackerHBase: HQuorumPeer, HRegionServer主从服务器java进程关系如图 3.2。图3.2主从服务器java进程关系Zookeeper同步HBase服务状态、监控集群防止单点失效,管理Hadoop集群中的NameNode,HBase中HBaseMaster的选举,Servers之间状态同步等5。具体一点,细一点说,单只HBase中ZooKeeper实例负责的工作就有:存储HBase的Schema,实时监控HRegionServer,存储所有Region的寻址入口,另外也保证HBase集群中只有一个Master6。3.2搜索引擎的工作流
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 NoSQL 技术 搜索引擎 设计 实现 毕业论文
链接地址:https://www.31doc.com/p-3921054.html