您好,登录后才能下订单哦!
这篇文章主要介绍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”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。