最近工作中遇到瓶頸,主要是沒有很好的了解nutch進而使之效率低下,現在要對nutch進行優化,以後也會記錄下在學習nutch的時候所遇到的問題。首先x point org.apache.nutch.net.URLNormalizer not found. 這是在運作nutch的時候報出的異常。我們可以發現和URLNormalizer這個有關,URLNormalizer是nutch在inject的時候對url進行規範化的東西,它是通過插件完成的,是以我認為是插件存在問題,後來仔細排查發現在nutch-default.xml中plugin.folders參數路徑設定錯誤,由原來的lib/plugin改為plugin後運作正常。也有可能是配置檔案的問題。
1. JAVA_HOME環境變量未設定
2. 未在conf/crawl-urlfilter.txt中設定過濾資訊
3. Fetcher: No agents listed in 'http.agent.name' property.
原因:沒有修改nutch-site.xml
4. 沒有fetch到任何網頁
原因:conf/crawl-urlfilter.txt中url比對字元串(*.TARGET.COM)與urls中大小寫不一緻
調試時遇到的問題:
1. javax.login.LoginException。原因是nutch引用cygwin。必須把c:\cygwin\bin添加到path環境變量
2. OutOfMemoryException。需要在eclipse中設定VM記憶體大小。在debug configuration中的vm arguments中設定 -Xmx768m
3. plugin.folders沒有設定java.lang.IllegalArgumentException: plugin.folders is not set:将conf加入源程式目錄
4. java.lang.RuntimeException: x point org.apache.nutch.net.URLNormalizer not found.
原因:crawl-urlfilter.txt中的正規表達式nutch不接受
5. java.lang.IllegalArgumentException:Fetcher: No agents listed in 'http.agent.name‘
原因:nutch-default.xml中http.agent.name為空
解決: