您的位置:首页 > 编程语言

nutch 1.7 修改代码后如何编译发布,并集群采集攻略

2013-09-18 16:52 477 查看
nutch 1.3之后,分布式的可执行文件与单机可执行文件进行了分离

接上篇,nutch 1.7 导入 eclipse

本篇所要解决的问题:
nutch下载下来经过简单的配置即可进行采集,但有时候我们需要修改nutch的源码
(比如不遵守机器人协议比如我要保存网页的编码),这个时候如何编译为可执行程序呢?

tar zxvf apache-nutch-1.7-src.tar.gz -C .
mv apache-nutch-1.7 apache-nutch-1.7-src
cp -rv libreback/lib/ apache-nutch-1.7-src/

查看job工作状态 http://10.0.0.5:50030/jobtracker.jsp 
第一步
将apache-nutch-1.7-bin中的 plugins 拷贝到 apache-nutch-1.7-src 目录下
修改apache-nutch-1.7-src/conf/nutch-default.xml
将plugin.folders 选项 将./src/plugin 该为 ./plugins

第二步:
ant

然后将 runtime/deploy/apache-nutch-1.7.job  scp 到 hadoop master节点的
hadoop-1.2.1的根目录下。
然后chmod 777 apache-nutch-1.7.job 更改权限为可执行

第三步;
将urls上传到dfs中

第四步 运行:
bin/hadoop jar apache-nutch-1.7.job org.apache.nutch.crawl.Crawl urls -dir crawl -depth 7 -topN 50

其他:
采集完后,查询采集统计:
bin/hadoop jar apache-nutch-1.7.job org.apache.nutch.crawl.CrawlDbReader crawl/crawldb  -stats -sort
会发现好多unfetched,原因是:
nutch-default.xml对generate的时候进行了,分数限制,只有大于0分的才会被generate。所以会有很多分数低的没被采集。
(将数据url dump 出来你会发现 unfetched的URL都是负分,而且负的挺大的)
考虑到注释掉:
// consider only entries with a score superior to the threshold
if (scoreThreshold != Float.NaN && sort < scoreThreshold) return;
最后还是觉得修改:
<property>
<name>generate.min.score</name>
<value>0</value>
<description>Select only entries with a score larger than
generate.min.score.</description>
</property>
value 为 -1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: