http://nlp.solutions.asia/?p=180

http://www.promenade.me/archives/146

环境 ubuntu 12.04

sql建表

CREATE DATABASE nutch DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;

and enter followed by

use nutch;

and enter and then copy and paste the following altogether:

CREATE TABLE `webpage` (
`id` varchar(767) 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(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;

主要问题是

1 sql建表会出现字段长度太长,

解决办法:

编辑my.cnf,在mysqld下面加入下面的配置

[mysqld] add

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

2 生成batchId时的java错误

编辑    {$nutch_dir}src/java/org/apache/nutch/crawl/GeneratorReducer.java,然后看其100行左右

batchId的生成方式,改一下换成Rondom随机生一个

----------------------------------------------------------------

batchId = new Utf8(conf.get(GeneratorJob.BATCH_ID));

//改为

int randomSeed = Math.abs(new Random().nextInt());
String batchIdStr = (System.currentTimeMillis() / 1000) + "-" + randomSeed;
batchId = new Utf8( batchIdStr );

//别忘了在最上面加上
import java.util.Random;

---------------------------------

3  gora-core的问题,在  ${nutch_dir}ivy/ivy.xml中找到name="gora-core" rev="0.3"  把0.3  替换成 0.2.1

然后进入${nutch_dir}下,命令行下输入: ant runtime

等编译完成后,进入${nutch_dir}runtime/local, 命令行下输入:bin/nutch crawl urls -depth 3 -topN 5

如果有错误,看log/hadoop.log报什么错误,作相应的修改

4 wegpage表中的batchId 这个字段不存在的问题,这个在wegpage表中的新增一个 batchId  varchar(767) 就行了。

终于搞定了,可以采集了,省下的功能再研究

折腾2个小时,没有前辈们的blog文章还真不容易搞。感谢前辈们的分享

04-23 08:16