博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nutch2.2+mysql部署
阅读量:5237 次
发布时间:2019-06-14

本文共 3680 字,大约阅读时间需要 12 分钟。

安装MySQL( 在此不做陈述,MySQL数据库可能是在windows,可能是在linux下,以下配置以linux为例)

配置MySQL默认值(/etc/mysql/my.cnf [mysqld] )

innodb_file_format=barracuda

innodb_file_per_table=true

innodb_large_prefix=true

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

max_allowed_packet=500M

 

#创建数据库(可以基于navicat等可视化管理工具)

CREATE DATABASE nutch DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;

#选择数据库

use nutch;

#创建表:

#注意此处的id长度,官方文档貌似也是767,但是我创建的时候出错了。默认编码格式是utf8mb4占四个字节,767/4 大致是190左右;

#如果是ut8则可设置到255,但是在使用ut8的时候,采集发生了错误。可能是字符集范围的关系吧。

CREATE TABLE `webpage` (

`id` varchar(190) NOT NULL,
`headers` blob,
`text` longtext DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`markers` blob,
`parseStatus` blob,
`modifiedTime` bigint(20) DEFAULT NULL,
`prevModifiedTime` bigint(20) DEFAULT NULL,
`score` float DEFAULT NULL,
`typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
`batchId` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
`baseUrl` varchar(767) DEFAULT NULL,
`content` longblob,
`title` varchar(2048) DEFAULT NULL,
`reprUrl` varchar(767) 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
ROW_FORMAT=COMPRESSED
DEFAULT CHARSET=utf8mb4;

#nutch2.2部署

1.从官网下载压缩包 如果想导入到eclipse中的话建议下载apache-nutch-2.2-src.tar.gz包(先不要编译)

2.修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件,

将 <dependency org=”org.apache.gora” name=”gora-core” rev=”0.3″ conf=”*->default”/>

 变成<dependency org=”org.apache.gora” name=”gora-core” rev=”0.2.1″ conf=”*->default”/>

至于原因,xml文件内有说明。

 

取消失gora-sql的注释

<dependency org=”org.apache.gora” name=”gora-sql” rev=”0.1.1-incubating” conf=”*->default” />

 

 取消mysql的注释

 

<dependency org=”mysql” name=”mysql-connector-java” rev=”5.1.18″ conf=”*->default”/>

 

 3.修改${APACHE_NUTCH_HOME}/conf/gora.properties文件

注释掉原来Default SqlStore Properties采用的配置规则;

新增mysql配置项

###############################

# MySQL properties #
###############################
gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver
gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true
gora.sqlstore.jdbc.user=xxxxx
gora.sqlstore.jdbc.password=xxxxx

 

 4.修改${APACHE_NUTCH_HOME}/conf/gora-sql-mapping.xml文件

将primarykey 的length属性修改为 190(原本为512) 和建立的数据库内长度对应

 

5.修改nutch-site.xml 添加必要配置

<property>

<name>http.agent.name</name>
<value>YourNutchSpider</value>
</property>

<property>

<name>http.accept.language</name>
<value>ja-jp, en-us,en-gb,zh-cn,en;q=0.7,*;q=0.3</value>
<description>Value of the “Accept-Language” request header field.
This allows selecting non-English language as default one to retrieve.
It is a useful setting for search engines build for certain national group.
</description>
</property>

<property>

<name>parser.character.encoding.default</name>
<value>utf-8</value>
<description>The character encoding to fall back to when no other information
is available</description>
</property>

<property>

<name>storage.data.store.class</name>
<value>org.apache.gora.sql.store.SqlStore</value>
<description>The Gora DataStore class for storing and retrieving data.
Currently the following stores are available: ….
</description>
</property>

6.使用ant进行编译吧 到此部署结束了,如果你不是第一次使用nutch 那就开始测试吧,nutch2.2仍然支持bin/nutch crawl 命令 2.3就不行啦

 

  (采集页面过大时候,放大http.content.limit属性值,比如京东首页...) 

附:测试实例(此处只大致列出命令 不做具体说明了)

cd ${APACHE_NUTCH_HOME}/runtime/local

mkdir -p urls

echo http://nutch.apache.org/ > urls/seed.txt

bin/nutch crawl urls/ -threads 1 -depth 2

好了应该呼呼的跑起来了吧。(注意mysql服务是否开启)

转载于:https://www.cnblogs.com/objectchen/p/4361935.html

你可能感兴趣的文章
水平垂直居中
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
自己到底要的是什么
查看>>
Kruskal基础最小生成树
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>