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

复制代码
<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.
​
​可以不管
相关推荐
摇滚侠18 小时前
Apache Skywalking 实战 阅读笔记 第三章
笔记·apache·skywalking
摇滚侠2 天前
Apache Skywalking 实战 阅读笔记 第二章
笔记·apache·skywalking
摇滚侠3 天前
Apache Skywalking 实战 阅读笔记 第一章
笔记·apache·skywalking
小小龙学IT21 天前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache
Shepherd061921 天前
【IT 运维】Apache 使用 mod_remoteip 恢复 Cloudflare 后的真实访客 IP
运维·tcp/ip·apache
isyangli_blog21 天前
SDN 基本应用实践 —— 使用命令行实现简易防火墙功能实验报告
服务器·php·apache
小小龙学IT22 天前
Apache Pulsar 深度解析:从架构设计到生产落地
apache
Full Stack Developme23 天前
Apache Tika 教程
java·开发语言·python·apache
laplaya23 天前
C++大型项目组件通信与依赖管理实践
c++·log4j·apache
万岳科技23 天前
教育培训小程序如何构建线上线下一体化教学体系
小程序·apache