Apache Nutch介绍与部署编译

一、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,新增

storage.data.store.class

org.apache.gora.sql.store.SqlStore

修改: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,新增

修改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.

​可以不管


为什么司马懿可以篡位
抖音达人带货需要营业执照吗?需要多少粉丝?