1.nutch2.1 src版本的包下载后是不能直接使用的,必须通过ant命令进行一次编译。
2.ant编译的时间依赖网速,编译后会在源码包的根目录下生成两个目录,分别为ivy和runtime目录。nutch的核心配置和执行文件,jar包放在runtime下,ivy目录里面的ivy.xml管理依赖关系。数据源的配置在ivy.xml中管理。
3.启动nutch时候提示:
Exception in thread "main" org.apache.gora.util.GoraException: java.io.IOException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
在ant执行命令之前请先编辑ivy.xml文件开启mysql支持,然后执行ant会自动的下载mysql的jar包。注意这里的顺序,不要线ant再修改ivy文件。
4. nutch支持mysql的方法可以参看 http://my.oschina.net/robolin/blog/82512 这篇文章关于mysql的配置说的是正确的
5. http://agiledon.github.io/blog/2013/03/07/nutch-crawler-crawl-data-and-store-to-mysql/ 此篇文章依据2.1版本讲解了如何使用mysql做为数据源配置nutch,可以参考借鉴。
6. mysql中表及字段的参数配置是由runtime/local/conf目录下的gora-sql-mapping.xml 文件管理的,我们可以根据此配置进行数据存储的调整。
7. 出现如下日志“can't find rules for scope 'outlink'”切此时java的cpu占用率持续100%,而且没有任何数据处理迹象的时候是因为匹配的数据出现的死循环,是因为过滤条件没有写正确导致。
8. 写入db数据报错提示:
java.io.IOException: java.sql.BatchUpdateException: Data truncation: Incorrect string value: '\xE5\xBE\xAE\xE6\xB3\xA2...' for column 'id' at row 1
这是因为主键id的属性编码有问题,必须是utf8编码,且长度最好设置为主键最大长度值,每个编码的varchar最大长度还不一样,utf8设置的最大长度为255。
9. 有些网站在采集的时候会返回403,这里原因很多,但是我们首先要怀疑的是被采集网站是否对useragent做了防采集判断,我们在nutch-default.xml中关于http.agent的配置参数尽量不要写太特殊的值,useragent写成模拟google spider的最好,先模拟采集自己的网站抓访问日志看useragent是否正常。