之前在eclipse上部署hadoop时好像也遇到过这个问题。但是,现在已经不知道怎么解决了。
所以,笔记很重要!!!
注释掉
<target name="create-native-configure">
<exec executable="autoreconf" dir="${native.src.dir}" searchpath="yes" failonerror="yes"> <arg value="-if"/>
</exec>
</target>
去掉compile-core-native
<target name="compile-core-native" depends="create-native-configure,compile-core-classes"
if="compile.native">
中的create-native-configure依赖
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文件夹,放入我们eclipse中的hadoop项目中,替换项目中原有hadoop-core.jar,放入lib文件夹下。再通过buildpath添加jar包。
不用修改build.xml,直接修改FileUtil.java文件中的“checkReturnValue(rv, f, permission);”,直接注释掉,再用ant命令编译一遍即可产生hadoop-core.jar包,同样将hadoop-core.jar替换掉项目中hadoop-core.jar。
继解决了上一个异常Failed to set permissions of path:之后,运行文件又出现异常:
运行参数为:urls -dir crawl -depth 2 -topN 2
异常为:
这个错是由于未正确指定参数Program arguments导致的。来来去去就这么几个错,折腾了一天。深刻体会到,有时候想问题真的不要那么狭隘,要敢于大胆假设。从没想过是Program arguments的问题。。。不过找到问题了就快了。
Eclipse查看hadoop源代码导入不成功。以hadoop-1.2.1.tar.gz为例,我们先解压hadoop项目,然后在压缩成zip格式的文件,导入即可成功。
我遇见的这个问题并不是由于程序本身问题导致的,而是因为传递配置参数时没写正确。
在eclipse中运行injector类时,传的参数应当为:
Main class: org.apache.nutch.crawl.Injector
VM arguments: -Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log
Program arguments: crawldb urls
继续运行,这次会发现已经开始报错了。很好,报错是好事,害怕的就是它不报错。能报错就好办了,继续解决下边这个异常:
nutch部署过程中出现了下面错误,主要是没有正确配置插件导致的,可以通过设置nutch-site.xml文件的plugin.folders属性解决问题
修改conf下nutch-default文件将plugin.folders的值由plugins修改为./src/plugin
因为plugin文件在src目录下。