Hi Fabio,

I believe there is a property generate.max.distance in nutch-site.xml in the newest releases that you can use to configure max depth.


On 04/11/2017 06:20 AM, Fabio Ricci wrote:
Hi Sebastian

thank you for your message. That does not help me really…

Yes I new the output of ./crawl without parameters (Synopsis) - but even then there 
are some assumptions, only an insider can understand. And under 
https://wiki.apache.org/nutch/NutchTutorial#A4._Setup_Solr_for_search 
<https://wiki.apache.org/nutch/NutchTutorial#A4._Setup_Solr_for_search> there 
is an indication to use it like I tried.

Num Rounds is not a Depth. A Depth is the depth in traversing links starting 
from Seed.
I admit I feel overwhelmed by all that parameters which in my case do not help 
me…

I just need a tool which navigate using a seed url inside a certain depth. Do 
not need topN parameters …

Maybe I should use a lower NUTCH version (which) ?

...

Thanks
Fabio


On 11 Apr 2017, at 10:26, Sebastian Nagel <[email protected]> wrote:

Hi Fabio,

only Java/Hadoop properties can be passed via -D...

Command-line parameters (such as -topN) cannot be passed to Nutch tools/steps 
this way, see:

% bin/crawl
Usage: crawl [-i|--index] [-D "key=value"] [-w|--wait] <Seed Dir> <Crawl Dir> <Num 
Rounds>
        -i|--index      Indexes crawl results into a configured indexer
        -D              A Java property to pass to Nutch calls
        -w|--wait       NUMBER[SUFFIX] Time to wait before generating a new 
segment when no URLs
                        are scheduled for fetching. Suffix can be: s for second,
                        m for minute, h for hour and d for day. If no suffix is
                        specified second is used by default.
        Seed Dir        Directory in which to look for a seeds file
        Crawl Dir       Directory where the crawl/link/segments dirs are saved
        Num Rounds      The number of rounds to run this crawl for

In case of -topN : you need to modify bin/crawl (that's easy to do). There are 
also other ways to
limit the length of the fetch list (see, e.g., "generate.max.count").

Regarding -depth : I suppose that's the same as <Num Rounds>

Best,
Sebastian

On 04/11/2017 01:12 AM, Fabio Ricci wrote:
Hello

I am a newbie in NUTCH and I need a crawler in order to fetch some urls inside 
a given depth and to index dound pages into SOLR 6.5 .

On my OSX I got NUTCH running. I was hoping to use it directly for indexing. 
Instead I am wondering why the script /runtime/local/bin/crawl does not pass 
the depth and topN parameter to the software.

Expetially I use the following example call:

./bin/crawl -i -D solr.server.url=http://127.0.0.1:8983/solr/demo/ -D depth=2 
-D topN=2 /Users/fabio/NUTCH/urls/ /Users/fabio/NUTCH/crawl/ 1

With one single url inside /ursl/seed.txt

Expecting the crawling process will go into max depth = 2.

Instead, it runs and runs … and I suppose something runs ***differently*** as 
described.

For example I noticed in the output the following text (this is just a segment, the 
output "does not stop"):

Injecting seed URLs
/Users/fabio/Documents/workspace/NUTCH/runtime/local/bin/nutch inject 
/Users/fabio/NUTCH/crawl//crawldb /Users/fabio/NUTCH/urls/
Injector: starting at 2017-04-11 00:54:56
Injector: crawlDb: /Users/fabio/NUTCH/crawl/crawldb
Injector: urlDir: /Users/fabio/NUTCH/urls
Injector: Converting injected urls to crawl db entries.
Injector: overwrite: false
Injector: update: false
Injector: Total urls rejected by filters: 0
Injector: Total urls injected after normalization and filtering: 1
Injector: Total urls injected but already in CrawlDb: 1
Injector: Total new urls injected: 0
Injector: finished at 2017-04-11 00:54:58, elapsed: 00:00:01
Tue Apr 11 00:54:58 CEST 2017 : Iteration 1 of 1
Generating a new segment
/Users/fabio/Documents/workspace/NUTCH/runtime/local/bin/nutch generate -D 
mapreduce.job.reduces=2 -D mapred.child.java.opts=-Xmx1000m -D 
mapreduce.reduce.speculative=false -D mapreduce.map.speculative=false -D 
mapreduce.map.output.compress=true /Users/fabio/NUTCH/crawl//crawldb 
/Users/fabio/NUTCH/crawl//segments -topN 50000 -numFetchers 1 -noFilter
Generator: starting at 2017-04-11 00:54:59
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: false
Generator: normalizing: true
Generator: topN: 50000
Generator: Partitioning selected urls for politeness.
Generator: segment: /Users/fabio/NUTCH/crawl/segments/20170411005501
Generator: finished at 2017-04-11 00:55:02, elapsed: 00:00:03
Operating on segment : 20170411005501
Fetching : 20170411005501
/Users/fabio/Documents/workspace/NUTCH/runtime/local/bin/nutch fetch -D 
mapreduce.job.reduces=2 -D mapred.child.java.opts=-Xmx1000m -D 
mapreduce.reduce.speculative=false -D mapreduce.map.speculative=false -D 
mapreduce.map.output.compress=true -D fetcher.timelimit.mins=180 
/Users/fabio/NUTCH/crawl//segments/20170411005501 -noParsing -threads 50

Here - although I am a newbie - I notice that there is one line saying 
“Generator: topN: 50000” - slightely more than -D topN=2 … and there are no 
indications on the depth. So this nice script /bin/crawl seems not to pass the 
-D parameters to the Java application. And maybe not even the solr.server-url 
value …

Googling for “depth” finds a lot of explanations on the deprecated form 
/bin/nutch crawl -depth, … etc… so I feel a little confused and need help.

What is wrong with my call example above please?

Thank you for any hint which can help me understanging why the -D parameters 
are not passed.

Regards
Fabio Ricci




Reply via email to