1

我正在使用 nutch 2.0 和 solr 4.0 并且成功率最低我有 3 个 url,并且我的 regex-urlfilter.xml 设置为允许一切。我运行了这个脚本

#!/bin/bash

# Nutch crawl

export NUTCH_HOME=~/java/workspace/Nutch2.0/runtime/local

# depth in the web exploration
n=1
# number of selected urls for fetching
maxUrls=50000
# solr server
solrUrl=http://localhost:8983

for (( i = 1 ; i <= $n ; i++ ))
do

log=$NUTCH_HOME/logs/log                                                                                                                                                           

# Generate
$NUTCH_HOME/bin/nutch generate -topN $maxUrls > $log

batchId=`sed -n 's|.*batch id: \(.*\)|\1|p' < $log`

# rename log file by appending the batch id
log2=$log$batchId
mv $log $log2
log=$log2

# Fetch
$NUTCH_HOME/bin/nutch fetch $batchId >> $log

# Parse
$NUTCH_HOME/bin/nutch parse $batchId >> $log

# Update
$NUTCH_HOME/bin/nutch updatedb >> $log

# Index
$NUTCH_HOME/bin/nutch solrindex $solrUrl $batchId >> $log

done
----------------------------

当然,我在运行脚本之前 bin/nutch 注入了 url,但是当我查看日志时,我看到 Skipping : different batch id 和一些我看到的 url 不在 seed.txt 中,我想将它们包含在 solr 中,但不会添加它们。我的 seed.txt 中有 3 个网址

运行此脚本后,我尝试过 bin/nutch parse -force -all bin/nutch updatedb bin/nutch solrindex http://127.0.0.1:8983/solr/sites -reindex

我的问题如下。1. 最后三个命令为什么它们是必要的?2.如何在解析作业期间获取所有 url,即使使用 -force -all 我仍然会跳过不同的批处理 id 3.上面的脚本,如果我将 generate -t​​opN 设置为 5。这是否意味着如果一个站点有一个链接到另一个站点到另一个站点到另一个站点到另一个站点到另一个站点到另一个站点。它将包含在获取/解析周期中吗?4. 这个命令怎么样,为什么会提到这个: bin/nutch crawl urls -solr http://127.0.0.1:8983/solr/sites -depth 3 -topN 10000 -threads 3. 5. 当我运行 bin/nutch updateb 时,它需要 1-2 个 mineuts 然后它回显 Killed。这让我很担心。请帮忙。

是的,我已经阅读了很多关于 nutch 和 solr 的页面,并且我已经试图弄清楚这几个星期了。

4

1 回答 1

2

我看到的一些 URL 不在seed.txt

我认为这是由于 URL 规范化而发生的。Nutch执行此 URL 规范化,因此原始 URL 被更改或转换为更标准的格式。

对于#1:您注入然后执行生成提取阶段......对吗?您问题中的这 3 个阶段是解析爬网数据、使用新发现的页面更新数据库并分别索引它们所必需的。

对于#2:对不起,我没有得到你的问题。

对于 #3: No.topN设置为 5 意味着nutch将从while符合获取条件的 URL 中选择前 5 个 URL。它将仅考虑这些选定的高分 URL 进行提取。

对于#4:这是一个自动调用所有nutch阶段的命令。因此,您不必为每个阶段手动执行单独的命令。只需一个命令,它就可以完成所有工作。

对于 #5: hadoop 日志中会记录一些异常。提供堆栈跟踪和错误消息,以便我对其发表评论。没有那个我什么都想不出来。

于 2012-08-30T19:20:30.020 回答