共计 3905 个字符,预计需要花费 10 分钟才能阅读完成。
这篇文章主要介绍 Nutch1.7 如何配置到 eclipse,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
进入正题:
1、将 nutch 项目部署到 eclipse
首先到 nutch 官网上找到 FAQ 链接 http://wiki.apache.org/nutch/FAQ,进入链接
点击第二个链接查看。
参照文档进行配置,有卡壳不明白的地方,继续在网上针对具体问题查找资料。集成时可参照 http://blog.csdn.net/witsmakemen/article/details/8866235。
运行之前必须有一下先决条件:
A、在 windows 上安装配置 Apache Ant,http://ant.apache.org/manual/index.html
B、安装 Eclipse,这个不用说肯定是必须的。
C、在 Linux 安装 svn。目的:迁出 nutch2.7 源代码。
D、在 Linux 下检出 nutch2.7 代码
[root@nutch-five branch-1.7]# svn co http://svn.apache.org/repos/asf/nutch/branches/branch-1.7/
E、在 Linux 安装 ivy 插件。目的,根据 ivy 配置文件动态下载 jar 包。
F、编译 branch2.7
[root@nutch-five branch-1.7]# ant
2、在 Linux 下执行 ant 命令编译源代码:ant /p
3、编译成功后,将 trunk 文件夹复制到 windows 中,导入 eclipse /span
A、eclipse : File — New — Java Project
B、点击 NEXT
找到 conf 文件夹,然后点击 Add Folder conf to build path
defautl output 设置为 apache-nutch-1.7/conf
在这儿我因为不能创建 conf,所以写为 conf
点击 Finish
至此,建立成功。
C、此时会发现工程有错误(红色的小叉叉),这是因为缺少引用导致。
以 parse-html 为例:
import org.cyberneko.html.parsers.*;
这里报错是因为缺少 nekohtml-0.9.5.jar
如何获取 nekohtml-0.9.5.jar:
找到 runtime/local/plugins/lib-nekohtml/nekohtml-jar,单击右键 add to build path,其他 bug 以此类推。
在 这儿一共要的 jar 包大概有,runtime/local/plugins/lib-nekohtml/nekohtml-jar、runtime /local/plugins/parse-html/tagsoup.jar、runtime/local/plugins/feed /rome.jar(解决了 com.sun.syndication.io.SyndFeedInput 报错问题)、runtime/local /plugins/urlfilter-automaton/automaton.jar(解决 dk.brics.automaton.RunAutomaton 报错问题)
至此整个工程将应该不会有错了。
4、新建文件夹 urls
在文件夹内新建文件 url,存放待抓取网址
如:http://www.163.com/
5、运行程序
6、报异常:
ERROR security.UserGroupInformation (UserGroupInformation.java:doAs(1193)) – PriviledgedActionException as:hadoop cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-hadoop\mapred\staging\hadoop1071373990\.staging to 0700
解决方案:
下 载 hadoop 的源代码,重新编译 hadoop 的 hadoop-core.jar 包,替换掉 nutch 项目中的 hadoop-core.jar 的 jar 包。(注意:下载时先确定 nutch 引用的 hadoop 的哪个版本的 jar 包,然后下载对应版本。在 runtime/local/lib 中可以找到对应 hadoop 的 jar 包。)
下载 hadoop 源代码:
下载链接:http://apache.dataguru.cn/hadoop/common/hadoop-1.2.1/
1、注释掉 build.xml 中的
target name= create-native-configure
exec executable= autoreconf dir= ${native.src.dir} searchpath= yes failonerror= yes arg value= -if /
/exec
/target
2、去掉 compile-core-native 中的 create-native-configure 依赖
target name= compile-core-native depends= create-native-configure,compile-core-classes
if= compile.native
3、修改 hadoop-1.1.2/src/core/org/apache/hadoop/fs/FileUtil.java 691 行,把 throw new IOException 改为 LOG.warn
4、用 ant 编译项目,编译成功后从 build 文件夹中取出 hadoop-core.jar 文件夹,放入 nutch 项目中,替换项目中原有 hadoop-core.jar,放入 build/lib 文件夹下。再通过 buildpath 添加 jar 包。
添加完毕后,运行测试
7、继续运行,继续报错
java.lang.RuntimeException: Error in configuring object
解决方案:
将 nutch-default.xml 中的
property
name plugin.folders /name
value ./src/plugin /value
description Directories where nutch plugins are located. Each
element may be a relative or absolute path. If absolute, it is used
as is. If relative, it is searched for on the classpath. /description
/property
红色处改一下就可以了。
参照上边的运行方法,继续运行测试,产生异常:
java.net.SocketException: Software caused connection abort: recv failed
解决方案:
链接不成功,可以忽略,对程序没有影响。
至此,nutch 在 eclipse 中集成成功。
相关异常:
ERROR security.UserGroupInformation (UserGroupInformation.java:doAs(1193)) – PriviledgedActionException as:hadoop cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-hadoop\mapred\staging\hadoop1071373990\.staging to 0700
解决方案:
重新编译 hadoop 的 hadoop-core.jar 包,替换掉 nutch 项目中的 hadoop 的 jar 包
1、注释掉 build.xml 中的
target name= create-native-configure
exec executable= autoreconf dir= ${native.src.dir} searchpath= yes failonerror= yes arg value= -if /
/exec
/target
2、去掉 compile-core-native 中的 create-native-configure 依赖
target name= compile-core-native depends= create-native-configure,compile-core-classes
if= compile.native
3、修改 hadoop-1.1.2/src/core/org/apache/hadoop/fs/FileUtil.java 691 行,把 throw new IOException 改为 LOG.warn
4、用 ant 编译项目,编译成功后从 build 文件夹中取出 hadoop-core.jar 文件夹,放入 nutch 项目中,替换项目中原有 hadoop-core.jar,放入 build/lib 文件夹下。再通过 buildpath 添加 jar 包。
添加完毕后,运行测试
源码环境搭建时发现 sun.net.util.ipaddressutil 的包没有
sun.net 包里的类,在 eclipse 里默认是不让用的。解决办法是自定义 access rules 工程上右键 - 工程属性 - java builder path- Libraries 标签,点击 JRE System Library 里面的 Access rules,add sun/** 为 accessible,如果该项存在,就 edit。
以上是“Nutch1.7 如何配置到 eclipse”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!