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准备
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
2.3 安装JDK
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
[root@localhost hadoop]# cd /opt/apache-tomcat-7.0.61/
[root@localhost 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命令
[root@localhost apache-tomcat-7.0.61]# cd /opt/nutch-1.2/
[root@localhost nutch-1.2]# bin/nutch
将nutch自带的war文件拷贝到webapps下并解压,修改文件夹名称为ROOT

启动tomcat
[root@localhost nutch-1.2]# cd /opt/apache-tomcat-7.0.61/
[root@localhost apache-tomcat-7.0.61]# bin/catalina.sh start
# bin/catalina.sh stop #关闭tomcat命令

2.6 体验Nutch
增加要抓取的页面
[root@localhost apache-tomcat-7.0.61]# cd /opt/nutch-1.2/
[root@localhost nutch-1.2]# mkdir urls
[root@localhost nutch-1.2]#echo http://news.163.com/>>urls/163

编辑conf/crawl-urlfilter.txt文件,设定要抓取的网址信息。
[root@localhost 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路径与我们实际的路径不符所造成的)
[root@localhost nutch-1.2]# cd /opt/apache-tomcat-7.0.61/
[root@localhost 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文件
[root@localhost 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" />
抓取网页
[root@localhost nutch-1.2]# bin/nutch crawl urls -dir crawl.demo -depth 2 -threads 4 -topN 5 >& crawl.log

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

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

中文搜索结果:

Nutch之简介与安装的更多相关文章
- 初学Nutch之简介与安装
1.Nutch简介 Nutch是一个由Java实 现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行 查询 ...
- Nutch搜索引擎(第2期)_ Solr简介及安装
1.Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化 ...
- Nutch搜索引擎Solr简介及安装
Nutch搜索引擎(第2期)_ Solr简介及安装 1.Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的 ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- Java Gradle入门指南之简介、安装与任务管理
这是一篇Java Gradle入门级的随笔,主要介绍Gradle的安装与基本语法,这些内容是理解和创建build.gradle的基础,关于Gradle各种插件的使用将会在其他随笔中介绍. ...
- 细细品味Storm_Storm简介及安装
Storm是由专业数据分析公司BackType开发的一个分布式实时数据处理软件,可以简单.高效.可靠地处理大量的数据流.Twitter在2011年7月收购该公司,并于2011年9月底正式将Storm项 ...
- VMware vSphere 5.1 简介与安装
虚拟化系列-VMware vSphere 5.1 简介与安装 标签: 虚拟化 esxi5.1 VMware vSphere 5.1 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...
- Node.js的简介和安装
一.Node.js的简介和安装 a) 什么是Node.js? Node.js是一个开发平台 让JavaScript运行在服务器端的开发平台 ---简单点说就是用JavaScript写服务器 ...
- DNN简介以及安装
开源框架DNN简介以及安装 donetnuke 是一款免费的开源cms框架,目前也有收费版,不过免费版也可以适应大家大部分的需求.我前些阵子是老板让我在20天内,做好一个官网并且发布,并且指定使用dn ...
随机推荐
- MongoDB学习笔记-基础概念
mongodb中基本的概念 文档.集合.数据库 与关系数据库的概念对比更容易理解
- android数据储存之应用安装位置
原文地址:http://developer.android.com/guide/topics/data/install-location.html#Compatiblity 从API8開始,你能够将你 ...
- cocos2dX 它CCScene创建原则和切换模式
今天, 让我们来看看现场CCScene创建原则和切换模式, 首先, 个什么样子: 我们先来看看效果: 啥也没有: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZX ...
- leetcode第一刷_Minimum Path Sum
能够用递归简洁的写出,可是会超时. dp嘛.这个问题须要从后往前算,最右下角的小规模是已知的,边界也非常明显,是最后一行和最后一列,行走方向的限制决定了这些位置的走法是唯一的,能够先算出来.然后不断的 ...
- UVa11488-Hyper Prefix Sets(trie树)
H Hyper Prefix Sets Prefix goodness of a set string is length of longest common prefix*number of str ...
- 1002. 写这个号码 (20)(数学啊 ZJU_PAT)
主题链接:http://pat.zju.edu.cn/contests/pat-b-practise/1002 读入一个自然数n,计算其各位数字之和.用汉语拼音写出和的每一位数字. 输入格式:每一个測 ...
- hive的udf制剂
1.配置环境 1.介绍jar包裹:hive-exec-0.8.0.jar 和 hadoop-core-0.20.2.jar 2.书写udf性能 1.extends UDF 2.又一次定义UDF的eva ...
- W3C DOM 事件模型(简述)
1.事件模型 由于事件捕获与冒泡模型都有其长处和解释,DOM标准支持捕获型与冒泡型,能够说是它们两者的结合体.它能够在一个DOM元素上绑定多个事件处理器,而且在处理函数内部,thiskeyword仍然 ...
- SQL Server安全性专题一:简介
原文:SQL Server安全性专题一:简介 一. 安全威胁与法则 1. 安全定义 2. 安全威胁 3. 安全法则 安全定义: 在SQLServer环境中,安全性可以认为是[数据保护].包括: 数 ...
- 亚马逊记AWS(Amazon Web Services)自由EC2应用
很长时间,我听到AWS能够应用,但是需要结合信用卡,最近申请了. 说是免费的,我还是扣6.28,后来我上网查了.认为是通过进行验证.像服务期满将返回. 关键是不要让我进入全抵扣信用卡支付passwor ...