首先到nutch官網上找到FAQ連接http://wiki.apache.org/nutch/FAQ,進入連接html
點擊第二個連接查看。java
參照文檔進行配置,有卡殼不明白的地方,繼續在網上針對具體問題查找資料。集成時可參照http://blog.csdn.net/witsmakemen/article/details/8866235。apache
A、在windows上安裝配置Apache Ant,http://ant.apache.org/manual/index.htmlwindows
B、安裝Eclipse,這個不用說確定是必須的。eclipse
C、在Linux安裝svn。目的:遷出nutch1.7源代碼。svn
D、在Linux下檢出nutch1.7代碼oop
[root@nutch-five branch-1.7]# svn co http://svn.apache.org/repos/asf/nutch/branches/branch-1.7/測試
E、在Linux安裝ivy插件。目的,根據ivy配置文件動態下載jar包。fetch
F、編譯branch1.7ui
[root@nutch-five branch-1.7]# ant
找到 conf 文件夾 ,而後點擊 Add Folder 'conf' to build path
defautl output 設置爲 apache-nutch-1.7/conf
在這兒我由於不能建立conf,因此寫爲conf1
點擊Finish
至此,創建成功。
以parse-html爲例:
import org.cyberneko.html.parsers.*;
這裏報錯是由於缺乏 nekohtml-0.9.5.jar
找到runtime/local/plugins/lib-nekohtml/nekohtml-jar,單擊右鍵add to build path,其餘bug以此類推。
在這兒一共要加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報錯問題)
至此整個工程將應該不會有錯了。
在文件夾內新建文件url,存放待抓取網址
解決方案:
下載hadoop的源代碼,從新編譯hadoop的hadoop-core.jar包,替換掉nutch項目中的hadoop的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包。
添加完畢後,運行測試
解決方案:
將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>
紅色處改一下就能夠了。
參照上邊的運行方法,繼續運行測試,產生異常:
解決方案:
連接不成功,能夠忽略,對程序沒有影響。
至此,nutch在eclipse中集成成功。
解決方案:
從新編譯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包裏的類,在eclipse裏默認是不讓用的。解決辦法是自定義access rules工程上右鍵->工程屬性->java builder path->Libraries標籤,點擊JRE System Library裏面的Access rules,add sun/** 爲accessible,若是該項存在,就edit。
具體操做方法:
問題解決後,發現繼續有錯,缺乏ant的jar包,添加ant的jar包。