Nutch1.8分布式抓取网页

用了大概一周左右的时间,研究了下nutch1.8,并在linux集群上部署了执行文件,总结下部署过程中遇到的一些问题。

环境准备:

1、配置hadoop,确保hadoop运行正常。

2、将hadoop/conf目录中的配置文件拷贝到nutch/conf中,使nutch绑定hadoop。


 程序准备:

1、下载nutch1.8源码后,安装ant,进行编译;

2、将nutch1.8拷贝到其他集群机器中采用保证存放目录结构相同;

3 、运行集群脚本,视情况而定。


nutch源码编译后生成runtime目录,其下有deploy和local两个子目录。

deploy:用于分布式抓取

local:用于本地抓取

$NUTCH_HOME/conf 为抓取所用配置文件,用于单机抓取原始配置就够了,用于分布式抓取的话,需要拷贝HADOOP_HOME目录conf下的core-site.xml、hdfs-site,xml、mapred-site.xml文件,使nutch绑定hadoop。


$NUTCH_HOME/runtime/deply/bin/crawl 分布式抓取命令:

usage:crawl <seedDir> <crawlDir> <solrURL> <numberOfRounds>

$NUTCH_HOME/runtime/deply/bin/crawl  hdfs://topsecurl62:9000/user/local/urls  hdfs://topsecurl62:9000/user/local/crawl_0603  null  2


$NUTCH_HOME/runtime/local/bin/crawl 本地抓取命令

$NUTCH_HOME/runtime/local/bin/crawl urls crawls ull 2


另外,修改了$NUTCH_HOME/conf下的配置文件,需要重新编译之后才能生效。

特别注意上面这一条,我在使用时就fail了,重新用ant编译后才成功。


 总结:

(1)deploy中只需要bin和*.job文件就可以集群运行。所以配置都针对*.job中的各项文件、路径,以上配置经过多次测试确认,以供参考。

(2)分布式爬取各个步骤无法有效监控,单点爬取是测试验证程序的一个办法。

(3)单点爬取只是将deploy中的*.job文件进行了分别的维护,包括bin、conf、lib、log、plugins。只需将项目对应目录中的文件拷贝到单点环境即可。拷贝完后执行 bin/nutch ******* 。如果爬取失败,则可以根据log中的日志跟踪来进行处理。一般情况下先检查各目录中的文件是否同步完毕,特别是lib中的*.jar文件是不是全部引入等等。




你可能感兴趣的:(Nutch1.8分布式抓取网页)