一、Nutch概述
Apache Nutch是一个开放源代码的Java搜索引擎框架,它提供了运行自己的搜索引擎所需要的全部工具,包括全文搜索和Web爬虫,使用Nutch不仅可以建立自己内部网的搜索引擎,同时也可以针对整个网络建立搜索引擎。
【软件特色】
1、Nutch致力于让每个人能很容易,同时花费很少就可以配置世界一流的Web搜索引擎
2、每个月取几十亿网页
3、为这些网页维护一个索引
4、对索引文件进行每秒上千次的搜索
5、提供高质量的搜索结果
【功能特点】
1、支持将起始URL集合注入到Nutch系统之中
2、支持生成片段文件,其中包含了将要抓取的URL地址
3、根据URL地址在互联网上抓取相应的内容
4、解析所抓取到的网页,并分析其中的文本和数据
5、根据新抓取的网页中的URL集合来更新起始URL集合,并再次进行抓取
6、同时,对抓取到的网页内容建立索引,生成索引文件存放在系统之中 官网:Apache Nutch™
软件下载:https://dlcdn.apache.org/nutch/2.4/apache-nutch-2.4-src.tar.gz
二、Nutch安装
1、安装Java JDK 8
省略
2、安装MySQL
省略
3、安装ant
下载地址Apache Ant - Binary Distributions
第一步:将apache-ant-1.9.16-bin.tar.gz软件上传Linux服务器/usr/local/soft/文件夹下,对软件进行解压
cd /usr/local/soft/ tar -zxvf apache-ant-1.9.16-bin.tar.gz chmod 777 apache-ant-1.9.16
第二步:添加环境变量
编辑环境变量vi /etc/profile
添加
# set Ant enviroment export ANT_HOME=/usr/local/soft/apache-ant-1.9.16 export PATH=$PATH:$ANT_HOME/bin
使环境变量生效source /etc/profile
第三步:查看ant版本
ant -version
4、安装nutch
第一步:将apache-nutch-2.4-src.tar.gz软件上传Linux服务器/usr/local/soft/文件夹下,对软件进行解压,重命名
cd /usr/local/soft/ tar -zxvf apache-nutch-2.4-src.tar.gz mv apache-nutch-2.4 nutch
第二步:修改配置文件
cd /usr/local/soft/nutch/conf/
修改:nutch-site.xml,新增
<property> <name>storage.data.store.class</name> <value>org.apache.gora.sql.store.SqlStore</value> </property>
修改:gora.properties,新增
###### # # MySQL properties ###### # gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver gora.sqlstore.jdbc.url=jdbc:mysql://192.168.1.11:3306/nutch?useUnicode=true&character=utf8&useSSL=false&serverTimezone=UTC gora.sqlstore.jdbc.user=root gora.sqlstore.jdbc.password=root123
修改ivy/ivy.xml,新增
<dependency org="mysql" name="mysql-connector-java" rev="5.1.18" conf="*->default"/> <dependency org="org.apache.gora" name="gora-sql" rev="0.1.1-incubating" conf="*->default" /> <!--<dependency org="org.apache.gora" name="gora-core" rev="0.8" conf="*->default"/> 这一行需要隐藏,变成0.2.1版本--> <dependency org="org.apache.gora" name="gora-core" rev="0.2.1" conf="*->default"/>
修改ivy/ivysettings.xml,将第24行Central Repository:内容改为http://maven.aliyun.com/nexus/content/groups/public/
第三步:创建MySQL数据库表
打开MySQL数据库,创建nutch数据库,然后在nutch数据库中创建webpage表
CREATE DATABASE nutch DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE TABLE `webpage` (`id` varchar(767) CHARACTER SET latin1 NOT NULL, `headers` blob, `text` mediumtext DEFAULT NULL, `status` int(11) DEFAULT NULL, `markers` blob, `parseStatus` blob, `modifiedTime` bigint(20) DEFAULT NULL, `score` float DEFAULT NULL, `typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL, `baseUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL, `content` mediumblob, `title` varchar(2048) DEFAULT NULL, `reprUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL, `fetchInterval` int(11) DEFAULT NULL, `prevFetchTime` bigint(20) DEFAULT NULL, `inlinks` mediumblob, `prevSignature` blob, `outlinks` mediumblob, `fetchTime` bigint(20) DEFAULT NULL, `retriesSinceFetch` int(11) DEFAULT NULL, `protocolStatus` blob, `signature` blob, `metadata` blob, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
5、编译nutch
cd /usr/local/soft/nutch ant
首次编译过程会耗费较多时间,因为需要下载较多的依赖包,具体时间根据实际网络情况而定,快的话需要5-10分钟,慢的话需要20分钟以上。
编译过程中也有可能因为网络问题而出现编译失败,只需要使用如下命令清除上次编译结果(不会删除已经下载好的依赖包):
ant clean
然后再使用如下命令进行编译:
ant
Nutch编译成功之后,会在主目录下生成一个runtime文件夹。其中包含deploy和local两个子文件夹。deploy用于分布式抓取,而local用于本地单机抓取。
如果编译过程中出现
[taskdef] Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found. ivy-probe-antlib: ivy-download: [taskdef] Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found. 可以不管