Nutch简介

原文出处:http://www.sanesee.com/

Nutch作为当今最流行的开源爬虫之一,已被企业广泛使用。Nutch的插件机制使得开发者可以灵活地定制网页抓取策略。Nutch有着悠久的历史,当今大名鼎鼎的Hadoop就是由Nutch发展而来。Nutch不仅可以运行在单机模式下,还可以运行在分布式模式下。

1 认识Nutch

目前Nutch分为两个大版本1.x和2.x,Apache分别对这两个大版本进行独立开发和维护。其中,1.x和2.x最大的不同点在于,1.x是基于hadoop的HDFS文件系统的,而2.x将数据的存储层抽象出来,可以将数据保存在Hbase、MySQL等数据库中。还有一点很重要,Nutch在1.2以及之前,都是作为一个完整的搜索引擎进行发布的,而从1.3开始,Nutch本身就主要只有爬虫功能,若需要对抓取的数据建立索引并进行搜索,还要用到Solr全文检索服务器。由于Nutch和Solr都是基于Lucene开发的,因此Nutch抓取的数据可以轻松地在Solr中建立索引。Nutch官网可以下载到编译好的1.x包,但2.x只提供源码,需要自己编译。Nutch使用Ant来构建的,若自己编译的话,需要安装Ant来编译源码。

对于如何选择Nutch的版本,主要考虑一下以下问题:如果只需要抓取少量的网站,并对其建立索引,使用1.x和2.x都可以,甚至都可以使用单机的,而不需分布式。但如果要抓取大量网站,甚至是全网爬行,那么最好选择1.x,并且采用分布式,因为1.x是基于hadoop文件系统的,而hadoop又是专门为处理大数据而生。若抓取大量网站时采用2.x,可能会遇到一些性能问题,要是使用MySQL来存储数据,网页数据上百亿时,性能将是一个噩梦。

Nutch1.x不同的版本变化也比较大,执行命令发生过较大改变,因此,建议初学者下载本教程对应的版本1.10,等到熟悉使用Nutch的时候,那些改变对你而言就没太大影响了。

Nutch作为当今最流行的开源爬虫之一,已被企业广泛使用。Nutch的插件机制使得开发者可以灵活地定制网页抓取策略。Nutch有着悠久的历史,当今大名鼎鼎的Hadoop就是由Nutch发展而来。Nutch不仅可以运行在单机模式下,还可以运行在分布式模式下。

2 Nutch工作环境

Nutch仅支持在Linux环境下工作,若要在Windows操作系统中使用Nutch,需要安装Cygwin。Cygwin是在Windows下模拟Linux操作系统的软件,它并非一个实际的操作系统。

最新版的Nutch 1.10需要JDK7运行环境,当然也可以使用最新版的JDK8。

若需要配置分布式运行环境,还需要下载hadoop-1.2.0的版本。Hadoop的历史版本下载地址为http://archive.apache.org/dist/hadoop/core/

本教程将演示编译Nutch源码的过程,因此还需要安装Ant。

3 下载Nutch

在Nutch的官方网站http://nutch.apache.org/downloads.html可以下载到最新版的Nutch,若需要下载历史版本,请在这里下载http://archive.apache.org/dist/nutch/。本教程下载的包为apache-nutch-1.10-src.zip,它是一个源码包,需要我们自己编译,具体的编译过程在后续教程中详细讲解。