基于Nutch的搜索引擎与HBase的结合在大数据时代的应用探究.docVIP

基于Nutch的搜索引擎与HBase的结合在大数据时代的应用探究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Nutch的搜索引擎与HBase的结合在大数据时代的应用探究.doc

基于Nutch的搜索引擎与HBase的结合在大数据时代的应用探究   摘 要:Nutch作为一个在2002年兴起于Apache开源项目的开源搜索引擎,经过十多年的发展,无论在抓取速度、抓取效率还是部署方便性上,都更加成熟,被越来越多的人认可。HBase作为Apache开源项目下的著名分布式的、面向列的开源数据库,有着强大的可扩展性和极高的按行健查找效率。二者与大数据这一概念相伴而生,二者的结合也必将在大数据时代有所作为。   关键词:Nutch;HBase;大数据   中图分类号:TP393.09;TP333   搜索引擎能根据一定的算法或者规则,运用计算机程序从互联网上抓取信息,并在组织、处理和索引信息之后,为用户提供检索类服务。Nutch2.x版本通过使用Apache Gora处理对象的持久映射,使得存储从特定的底层数据存储分离出来。这意味着我们可以实现Nutch与众多NoSQL存储解决方案相集成。HBase,一种面向列的分布式存储系统,具有高可靠性、高性能、可伸缩的优点,利用HBase可在廉价PC上搭建起大规模集群。在致力于起源于开源项目Nutch的大数据处理方面,二者结合所带来的优势不言而喻。   1 需求分析   随着多元化新兴媒体形态不断出现,互联网上的数据每年将增长50%,并且目前世界上90%以上的数据是最近几年才产生的。搜索引擎作为连接受众和互联网海量信息的窗口,发挥着重要作用。而传统通用搜索引擎难以满足企业或者个人的定制化需要,难以准确判别用户感兴趣的信息并提供相应的搜索服务,为解决这些问题,Nutch应运而生。   反观储存层面,当代典型的关系型数据库在大数据的应用中越来越乏力,例如为巨量文档建立索引、高流量网站的网页服务,以及发送流式媒体等方面。而以HBase为代表的NoSQL能实现数据高并发读写,海量数据存储和访问,高扩展性,这些优点使得它在处理Nutch抓取到的海量数据时游刃有余。   2 系统体系结构设计   2.1 系统框架   图1 系统框架结构图   如图1所示,Nutch网络爬虫不断搜索Internet来搜寻新网页,或者更新过的网页,网页独立的存储在HBase中,等待索引。通过MapReduce对抓取到的网页进行索引,以提高用户搜索的方便性和准确性。最后用户通过搜索程序入口提交目标关键词,通过索引在HBase中找到相关记录,并返回给用户。   2.2 Nutch工作过程   图2 Nutch工作过程   (1)Injector注入目标URL列表。从用户指定的urlDir目录下,获取URL列表内容,并进行格式化、过滤,消除其中的不合法地址,设定抓取状态(fetched和unfetched)和初始分值;将URL及其状态、分值存人CrawlDB数据库,或更新已有内容成最新的;(2)Generator产生成抓取列表。从CrawlDB数据库中将地址取出,按一定规则进行过滤和排序;最后将生成的列表写入segments中;(3)Fetcher抓取网页。对segments下的抓取列表顺序抓取。在抓取过程中,页面的地址可能会发生跳转,需要重定向。该过程采用多线程方式,获得页面源文件后同时进行下一步操作,即解析内容;(4)解析网页内容。解析segments目录中由Fetcher抓取到的页面,将页面分解到parse_date和parse_text目录下。其中,parse_date中保存页面的标题、输入输出链接等内容;parse_text中保存页面的文本内容;(5)更新CrawlDB及反转链接。根据segments目录下的crawl_fetch和crawl_parse来更新CrawlDB,增添新的待抓取URL地址。Invert Links统计外部页面对本页面链接,并更新LinkDB,为建立索引的工作提供准备;(6)Indexer建立索引及索引去重。该过程生成Lucene索引,将本地数据转换成文本,并进行分析,并将已分析的文本保存到数据库中。   3 系统部署及实现   3.1 Nutch及HBase安装部署   (1)Nutch 在Eclipse下的配置过程。使用svn从nutch官方网站直接检出项目到本地后,配置项目路径,删除项目文件夹下src文件夹,随后添加部分的java和test文件夹。由于Nutch在版本1.2之后,使用ivy来进行依赖管理。因此要添加IvyDE依赖库,使用ivy下ivy.xml作为依赖库,最后进行ant;(2)Ubuntu终端下直接配置HBase。在终端下,使用wget工具下载zookeeper,并编辑zoo.cfg文件。为防止在负载压力过大,linux默认文件句柄数过低会造成异常,还需要修改nproc值。最后编辑hbase-env.sh、hbas

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档