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.
​
​可以不管
相关推荐
Aurora_NeAr2 小时前
Apache Iceberg数据湖基础
apache
FreeBuf_3 小时前
Apache组件遭大规模攻击:Tomcat与Camel高危RCE漏洞引发数千次利用尝试
java·tomcat·apache
jingyu飞鸟8 小时前
linux系统源代码安装apache、编译隐藏版本号
linux·运维·apache
vortex51 天前
Apache 配置文件提权的实战思考
apache
涤生大数据1 天前
Apache Spark 4.0:将大数据分析提升到新的水平
数据分析·spark·apache·数据开发
阿絮~2 天前
Apache RocketMQ进阶之路阅读笔记和疑问
笔记·apache·rocketmq
Fireworkitte4 天前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
蚂蚁数据AntData4 天前
从性能优化赛到社区Committer,走进赵宇捷在Apache Fory的成长之路
大数据·开源·apache·数据库架构
小湘西4 天前
Apache HttpClient 的请求模型和 I/O 类型
java·http·apache