Nutch之简介与安装

初学Nutch之简介与安装

初学Nutch之简介与安装

1、Nutch简介

  Nutch是一个由Java实 现的,开放源代码(open-source)的web搜索引擎。主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行 查询的一套工具。其底层使用了Hadoop来做分布式计算与存储,索引使用了Solr分布式索引框架来做,Solr是一个开源的全文索引框架,从 Nutch 1.3开始,其集成了这个索引架构。

1.1 Nutch的目标

  Nutch 致力于让每个人能很容易,同时花费很少就可以配置世界一流的Web搜索引擎。为了完成这一宏伟的目标,Nutch必须能够做到:

  • 每个月取几十亿网页
  • 为这些网页维护一个索引
  • 对索引文件进行每秒上千次的搜索
  • 提供高质量的搜索结果
  • 以最小的成本运作

1.2 Nutch的优点

  • 透明度

  Nutch是开放源代码的,因此任何人都可以查看他的排序算法是 如何工作的。商业的搜索引擎排序算法都是保密的,我们无法知道为什么搜索出来的排序结果是如何算出来的。更进一步,一些搜索引擎允许竞价排名,比如百度, 这样的索引结果并不是和站点内容相关的。因此Nutch对学术搜索和政府类站点的搜索来说,是个好选择。因为一个公平的排序结果是非常重要的。

  • 扩展性

  你是不是不喜欢其他的搜索引擎展现结果的方式呢?那就用 Nutch 写你自己的搜索引擎吧。 Nutch 是非常灵活的,他可以被很好的客户订制并集成到你的应用程序中。使用Nutch 的插件机制,Nutch 可以作为一个搜索不同信息载体的搜索平台。当然,最简单的就是集成Nutch到你的站点,为你的用户提供搜索服务。

  • 对搜索引擎的理解

  我们并没有google的源代码,因此学习搜索引擎Nutch是个不错的选择。了解一个大型分布式的搜索引擎如何工作是一件让人很受益的事情。 在写Nutch的过程中,从学院派和工业派借鉴了很多知识:比如:Nutch的核心部分目前已经被重新用 Map Reduce 实现了。Map Reduce 是一个分布式的处理模型,最先是从 Google 实验室提出来的。并且 Nutch 也吸引了很多研究者,他们非常乐于尝试新的搜索算法,因为对Nutch 来说,这是非常容易实现扩展的。

1.3 Nutch与Lucene关系

  Lucene是一个Java高性能全文索引引擎工具包可以方便的嵌入到各种实际应用中实现全文索引搜索功能。它提供了一系列API,能够对文档进行预处理、过滤、分析、索引和检索排序。在保持高效和简单的特点之外,还保证了开发者可以自由定制和组合各种核心功能。Nutch是一个应用程序,是一个以Lucene为基础实现的搜索引擎应用,Lucene为Nutch 提供了文本搜索和索引的API,Nutch不仅提供搜索,而且还有数据抓取的功能。

  简单的说:

  • Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
  • Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。

  一个常见的问题是:我应该使用Lucene还是Nutch?

  最简单的回答是:如果你不需要抓取数据的话,应该使用Lucene。

  常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面。在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API建立索引。

  在你没有本地数据源,或者数据源非常分散的情况下,应该使用Nutch。

2、Nutch安装

我们现在进行的是Nutch的单机版安装以及配置。

2.1准备

  操作系统:CentOS7.0

  JDK版本:jdk-7u15-linux-x64.tar.gz

  Nutch版本:apache-nutch-1.2-bin.tar.gz

  Tomcat版本:apache-tomcat-7.0.61.tar.gz

2.2 安装CentOS

  CentOS7.0安装说明。

2.3 安装JDK

  JDK1.7安装说明。

2.4 安装Tomcat

  将apache-tomcat-7.0.61.tar.gz拷贝到CentOS系统内,解压。

  

tar -zxvf /home/hadoop/下载/apache-tomcat-7.0.61.tar.gz -C /opt

  添加Tomcat环境变量

vim /etc/profile

source /etc/profile
# set tomcat environment
export CATALINA_HOME=/opt/apache-tomcat-7.0.61/
export CATALINA_BASE=/opt/apache-tomcat-7.0.61/
export PATH=$PATH:$ CATALINA_HOME/bin

  

  启动tomcat

[[email protected] hadoop]# cd /opt/apache-tomcat-7.0.61/
[[email protected] apache-tomcat-7.0.61]# bin/catalina.sh start

  

  访问地址:http://127.0.0.1:8080

2.5 安装Nutch

  将apache-nutch-1.2-bin.tar.gz拷贝到CentOS系统内,解压。

tar -zxvf /home/hadoop/下载/apache-tomcat-7.0.61.tar.gz -C /opt

  

  测试Nutch命令

[[email protected] apache-tomcat-7.0.61]# cd /opt/nutch-1.2/
[[email protected] nutch-1.2]# bin/nutch

   

  将nutch自带的war文件拷贝到webapps下并解压,修改文件夹名称为ROOT

  

  启动tomcat

[[email protected] nutch-1.2]# cd /opt/apache-tomcat-7.0.61/
[[email protected] apache-tomcat-7.0.61]# bin/catalina.sh start
# bin/catalina.sh stop   #关闭tomcat命令

  

2.6 体验Nutch

  增加要抓取的页面

[[email protected] apache-tomcat-7.0.61]# cd /opt/nutch-1.2/
[[email protected] nutch-1.2]# mkdir urls
[[email protected] nutch-1.2]#echo http://news.163.com/>>urls/163

  

  编辑conf/crawl-urlfilter.txt文件,设定要抓取的网址信息。

[[email protected] nutch-1.2]#vim conf/crawl-urlfilter.txt
修改MY.DOMAIN.NAME为:
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*163.com/

  编辑conf/nutch-site.xml文件,增加代理的属性,并编辑相应的属性值

  设定搜索目录(是由于默认的segment路径与我们实际的路径不符所造成的)

[[email protected] nutch-1.2]# cd /opt/apache-tomcat-7.0.61/
[[email protected] apache-tomcat-7.0.61]# vim webapps/ROOT/WEB-INF/classes/nutch-site.xml

  增加四行代码,修改成为

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
  <property>
    <name>searcher.dir</name>
    <value>/opt/nutch-1.2/crawl.demo</value>
  </property>
</configuration>

  这里的/opt/nutch-1.2/crawl.demo是nutch路径,爬虫到时候的数据就会放在程序新建的crawl.demo下面,即nutch抓取的页面的保存目录。

  nutch对中文的支持还不完善,需要修改tomcat文件夹下conf/server.xml文件

[[email protected] apache-tomcat-7.0.61]# vim conf/server.xml 

  增加两句,修改为

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

  抓取网页

[[email protected] nutch-1.2]# bin/nutch crawl urls -dir crawl.demo -depth 2 -threads 4 -topN 5 >& crawl.log

  

  抓取过程写入crawl.log中,可以查看如下

  

  搜索发生错误时,查看crawl.log文件是一个不错的办法。

  查看结果

  非中文搜索结果:

  

  中文搜索结果:

  

时间: 2024-08-03 15:48:07

Nutch之简介与安装的相关文章

Ubuntu下部分软件的简介及其安装步骤

1.安装linux摄像头应用软件cheese sudo apt-get install cheese 2.Ubuntu Tweak    Ubuntu Tweak是一款专门为Ubuntu(GNOME桌面)准备的配置.调整工具.主要面向新手级的普通用户.它可以设置很多并不能在系统首选项中设置的隐藏选项,以满足用户自定义的乐趣.即使是新手,也可以方便地通过它来进行适合自己的系统调整.    安装命令:    第一步:添加tweak源 sudo add-apt-repository ppa:tuala

Node.js【4】简介、安装和配置、快速入门

笔记来自<Node.js开发指南>BYVoid编著 第1章 Node.js简介 Node.js是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为脚本语言世界的一等公民,在服务端堪与PHP.Python.Perl.Ruby平起平坐. Node.js可以作为服务器向用户提供服务,与PHP.Python.RubyonRails相比,它跳过了Apache.Nginx等HTTP服务器,直接面向前端开发. Node.js还可以调用C/C++的代码,这样可以充分利用已有的诸多函

Mahout学习之Mahout简介、安装、配置、入门程序测试

一.Mahout简介 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的

Grant简介以及安装

Grant简介以及安装 1.   安装Grunt-cli需要使用npm,全局安装  命令:npm install –g grunt-cli(可能会涉及权限问题) 注意,安装grunt-cli并不等于安装了 Grunt!Grunt CLI的任务很简单:调用与Gruntfile在同一目录中 Grunt. 这样带来的好处是,允许你在同一个系统上同时安装多个版本的 Grunt. 这样就能让多个版本的 Grunt 同时安装在同一台机器上. npm时node.js的包管理工具( Grunt基于Node.js

CAS系列:CAS Server简介与安装

CAS是什么? JA-SIG CAS 是一个企业级的.开源的基于Java2EE的SSO解决方案.它有多种用不同语言编写的客户端.CAS是由耶鲁大学(Yale)开发. CAS Server版本与Java版本 CAS 3.1 要部署CAS3.1,至少得JDK1.5 . On the Windows PC, building CAS has been tested with the following: JDK 1.5.0_8 and higher JDK 1.6 and higher On Linu

Git 学习笔记&lt;简介与安装&gt; (一)

Git,开源中国以及GitHub所使用的系统, Is A 一个分布式版本控制系统 Be Used to 为团队合作写代码提供方便的管理系统.几乎满足你所有关于合作写代码的幻想. Has 本地端:工作区.版本库 (版本库还含有一个暂存区) 远程仓库:版本库(用来储存版本库的服务器) How To Install Linux: 首先,先输入git,看看是否安装Git: $ gitThe program 'git' is currently not installed. You can install

redis简介及安装

1 redis简介及安装 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. 首先需要了解,Redis的一些数据结构,包括 lists, sets, ordered sets 以及 hashes . Redis常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes).列表(

ADFS 2.0 配置简介 PartⅠ – 安装ADFS

    Active Directory Federation Service 也即联盟身份认证服务是微软的单点登录解决方案 (SSO),配置步骤相当多,中文资料也比较少,写在这里希望对后来人有所帮助,语言使用的是中文系统,实际上使用英文可能部署起来更容易些,因为感觉翻译不是很好. 一些术语 Active Directory (AD)    活动目录,以目录的形式抽象管理服务器上的资源.用户.计算机等等,Windows Server 自带. Domain        计算机域,是比工作组更优秀

第一章 Mysql简介及安装和配置

第一章 Mysql简介及安装和配置 ·    第一节:Mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品. 使用 C和 C++编写的. 集群(Cluster),适合大规模应用 ·   第二节:Mysql安装及配置 MySql安装注意一次行安装成功,不然要处理注册表. 安装选择编码格式为GBK或UTF-8. 安装MySql图形界面(Navica或MySQlog). p.MsoNormal,li.MsoNormal,div.Mso