日期:2014-05-16 浏览次数:20832 次
最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步。
对nutch的实现过程熟悉下,就可以实现电影采集网站了 如
无为电影在线
1)准备eclipse 安装Maven ,svn
2)在svn中下载官方2.x最新源码(参考官方http://wiki.apache.org/nutch/RunNutchInEclipse说明)
3)把工程转成maven工程,等系统下载依赖包
4)这时候可能有红叉,因为缺少jar包,这是pom的问题
<dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet</artifactId> <version>2.0.5</version> <optional>true</optional> </dependency> <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet.ext.jackson</artifactId> <version>2.0.5</version> <optional>true</optional> </dependency>比如上面这段二个包就下载不下来。maven仓库没有。需要把restlet的私库加进来:
<repositories> <repository> <id>maven-restlet</id> <name>Public online Restlet repository</name> <url>http://maven.restlet.org</url> </repository> </repositories>在pom.xml中增加这段,就可以下载了。
这时候按道理,应该就可以了,可是还有些问题,nutch2.x自身配的dadoop-core是1.1.1的版本,在windows环境下运行起来会有问题,如:会抛出权限异常:cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-2070047262
在网上搜索这个异常,别人提供的办法是,使用hadoop-core-1.0.2-modified.jar (下载地址) 这个包可以不配到maven,加到Lib就可以,看各人爱好。
再按道理讲,这时候该没问题了吧,实践证明 ,还是不行,(先把配置讲完)pom中配的gora-core是最新版0.3,配置mysql的时候会有问题。要改成0.2.1.
另外增加gora-sql包
<dependency> <groupId>org.apache.gora</groupId> <artifactId>gora-core</artifactId> <version>0.2.1</version> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.gora</groupId> <artifactId>gora-sql</artifactId> <version>0.1.1-incubating</version> <exclusions> <exclusion> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> </exclusion> </exclusions> </dependency>另外还有这几个包要在pom中配置:
<dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.ccil.cowan.tagsoup</groupId> <artifactId>tagsoup</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>dk.brics.automaton</groupId> <artifactId>automaton</artifactId> <version>1.11-8</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency>
至此环境差不多,是不是特别麻烦,现在写出来都有这么多要改,在最开始不知道的时候,得花多少时间去应付报错,找问题。
5)安装mysql,创建数据库nutch:
CREATE DATABASE nutch DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci;还有建表:
CREATE TABLE `webpage` (
`id` varchar(255) NOT NULL,