[2013.12.25]
手头上有一些抓取工作,数据量会很大,单纯用python写的引擎不能提供很好的性能与鲁棒性,于是重拾6年前用过的nutch。
看了一下apache官网,nutch的变化很大,2.x版本已经放弃了索引部分,更专注于抓取与存储,其中存储用了gora项目,能够支持hadoop之类的分布式系统,如果还想要索引,则可使用solr项目进行。
我尝试了1.7版本与2.2.1版本。1.7与solr不好对应,并且没找到文档将数据存储到MySql,于是选用后者。2.2.1只有源码,需要用ant进行编译,yum直接安装的ant不好用,或者是因为我没有声明ANT_HOME,what ever,下载+配置总能解决。
我的profile配置如下:
JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
NUTCH_RUNTIME_HOME=/opt/apache-nutch-2.2.1
APACHE_SOLR_HOME=/opt/solr-4.5.1
ANT_HOME=/opt/apache-ant-1.9.2
export JAVA_HOME NUTCH_RUNTIME_HOME APACHE_SOLR_HOME ANT_HOME
PATH=$ANT_HOME/bin:$PATH
编译nutch-2.2.1时会有问题:
ivy-download:
[taskdef] Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found.
网上给出的答案是需要下载ant-contrib-1.0b3.jar包并在build.xml中指定,也有说要用sonar-ant-task-1.0.jar,还有说要用apache-rat-0.10,但是我都试了,都没有搞定,不过不影响安装。
另外就是编译过程需要从maven下载许多库,编辑ivy/ivysetting.xml,它提供了已经mirror,哪个都不好用,最终在一篇
博客中找到了一个能用的链接,从ali ecs访问速度尚可。
<property name="repo.maven.org"
value="http://mirrors.ibiblio.org/maven2/"
override="false"/>
安装完毕,泪奔……