获取 Nutch 爬网的状态?
Getting status of a Nutch crawl?
我已经设置了 Nutch 并给了它一个要抓取的 URL 种子列表。我对其进行了配置,使其不会抓取我的种子列表之外的任何内容。种子列表包含约 150 万个 url。我按照指南开始了,就像这样:
bin/nutch inject crawl/crawldb urls
bin/nutch generate crawl/crawldb crawl/segments
s1=`ls -d crawl/segments/2* | tail -1`
bin/nutch fetch $s1
bin/nutch parse $s1
bin/nutch invertlinks crawl/linkdb -dir crawl/segments
bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb -linkdb crawl/linkdb $s1 -addBinaryContent -base64
Aside: I really wish I knew how to crawl and index
at the same time (e.g., crawl a page -> index it, crawl next page),
because I currently have to wait for this entire crawl to finish
before anything is indexed at all.
无论如何,现在,通过检查 hadoop.log,我相信我已经在 48 小时内抓取了大约 40k 个链接。但是,我想确保它正确地抓取了所有内容。我还想看看哪些链接被爬取了,哪些链接还剩下。我已经阅读了所有文档,但我似乎无法弄清楚如何获取 Nutch 爬网的状态,除非它是作为一项工作启动的。
我是 运行 Nutch 1.10 和 Solr 4.10。
截至目前,您无法在从日志中提取爬网时查看其状态。您只能在 fetch-parse-updatedb 作业结束后查询 crawdb。
而且我认为您在 运行 bin/nutch solrindex 之前缺少 bin/nutch updatedb 作业。
正如您所提到的,您似乎没有使用 ./bin/crawl 脚本,而是单独调用每个作业。
对于像您这样大的爬网,我能想到的一种方法是使用 ./bin/crawl 脚本,默认情况下,每次迭代生成 50k 个 url 用于提取。在每次迭代之后,您可以使用:
./bin/nutch readdb <crawl_db> -stats
在 https://wiki.apache.org/nutch/CommandLineOptions 给出的命令检查 crawdb 状态。
如果您想更频繁地检查更新,请更改(降低)./bin/crawl 脚本中的“-topN”参数(传递给生成作业)。现在,通过改变迭代次数,您将能够抓取整个种子列表。
希望这对您有所帮助:)
我已经设置了 Nutch 并给了它一个要抓取的 URL 种子列表。我对其进行了配置,使其不会抓取我的种子列表之外的任何内容。种子列表包含约 150 万个 url。我按照指南开始了,就像这样:
bin/nutch inject crawl/crawldb urls
bin/nutch generate crawl/crawldb crawl/segments
s1=`ls -d crawl/segments/2* | tail -1`
bin/nutch fetch $s1
bin/nutch parse $s1
bin/nutch invertlinks crawl/linkdb -dir crawl/segments
bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb -linkdb crawl/linkdb $s1 -addBinaryContent -base64
Aside: I really wish I knew how to crawl and index at the same time (e.g., crawl a page -> index it, crawl next page), because I currently have to wait for this entire crawl to finish before anything is indexed at all.
无论如何,现在,通过检查 hadoop.log,我相信我已经在 48 小时内抓取了大约 40k 个链接。但是,我想确保它正确地抓取了所有内容。我还想看看哪些链接被爬取了,哪些链接还剩下。我已经阅读了所有文档,但我似乎无法弄清楚如何获取 Nutch 爬网的状态,除非它是作为一项工作启动的。
我是 运行 Nutch 1.10 和 Solr 4.10。
截至目前,您无法在从日志中提取爬网时查看其状态。您只能在 fetch-parse-updatedb 作业结束后查询 crawdb。
而且我认为您在 运行 bin/nutch solrindex 之前缺少 bin/nutch updatedb 作业。
正如您所提到的,您似乎没有使用 ./bin/crawl 脚本,而是单独调用每个作业。
对于像您这样大的爬网,我能想到的一种方法是使用 ./bin/crawl 脚本,默认情况下,每次迭代生成 50k 个 url 用于提取。在每次迭代之后,您可以使用:
./bin/nutch readdb <crawl_db> -stats
在 https://wiki.apache.org/nutch/CommandLineOptions 给出的命令检查 crawdb 状态。
如果您想更频繁地检查更新,请更改(降低)./bin/crawl 脚本中的“-topN”参数(传递给生成作业)。现在,通过改变迭代次数,您将能够抓取整个种子列表。
希望这对您有所帮助:)