You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by cu...@apache.org on 2005/12/16 18:52:18 UTC
svn commit: r357197 [1/5] - in /lucene/nutch: branches/mapred/ trunk/
trunk/bin/ trunk/conf/ trunk/lib/ trunk/lib/jetty-ext/ trunk/site/
trunk/src/java/org/apache/nutch/crawl/ trunk/src/java/org/apache/nutch/db/
trunk/src/java/org/apache/nutch/fs/ trun...
Author: cutting
Date: Fri Dec 16 09:51:05 2005
New Revision: 357197
URL: http://svn.apache.org/viewcvs?rev=357197&view=rev
Log:
Merge mapred branch to trunk & remove it.
Added:
lucene/nutch/trunk/bin/nutch-daemons.sh
- copied unchanged from r357183, lucene/nutch/branches/mapred/bin/nutch-daemons.sh
lucene/nutch/trunk/bin/slaves.sh
- copied unchanged from r357183, lucene/nutch/branches/mapred/bin/slaves.sh
lucene/nutch/trunk/bin/start-all.sh
- copied unchanged from r357183, lucene/nutch/branches/mapred/bin/start-all.sh
lucene/nutch/trunk/bin/stop-all.sh
- copied unchanged from r357183, lucene/nutch/branches/mapred/bin/stop-all.sh
lucene/nutch/trunk/conf/mapred-default.xml.template
- copied unchanged from r357183, lucene/nutch/branches/mapred/conf/mapred-default.xml.template
lucene/nutch/trunk/lib/jetty-5.1.4.LICENSE.txt
- copied unchanged from r357183, lucene/nutch/branches/mapred/lib/jetty-5.1.4.LICENSE.txt
lucene/nutch/trunk/lib/jetty-5.1.4.jar
- copied unchanged from r357183, lucene/nutch/branches/mapred/lib/jetty-5.1.4.jar
lucene/nutch/trunk/lib/jetty-ext/
- copied from r357183, lucene/nutch/branches/mapred/lib/jetty-ext/
lucene/nutch/trunk/lib/jetty-ext/ant.jar
- copied unchanged from r357183, lucene/nutch/branches/mapred/lib/jetty-ext/ant.jar
lucene/nutch/trunk/lib/jetty-ext/commons-el.jar
- copied unchanged from r357183, lucene/nutch/branches/mapred/lib/jetty-ext/commons-el.jar
lucene/nutch/trunk/lib/jetty-ext/jasper-compiler.jar
- copied unchanged from r357183, lucene/nutch/branches/mapred/lib/jetty-ext/jasper-compiler.jar
lucene/nutch/trunk/lib/jetty-ext/jasper-runtime.jar
- copied unchanged from r357183, lucene/nutch/branches/mapred/lib/jetty-ext/jasper-runtime.jar
lucene/nutch/trunk/lib/jetty-ext/jsp-api.jar
- copied unchanged from r357183, lucene/nutch/branches/mapred/lib/jetty-ext/jsp-api.jar
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/
- copied from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/Crawl.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/Crawl.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/CrawlDatum.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/CrawlDatum.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/CrawlDb.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/CrawlDb.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/CrawlDbReader.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/CrawlDbReader.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/CrawlDbReducer.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/CrawlDbReducer.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/DeleteDuplicates.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/DeleteDuplicates.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/DmozParser.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/DmozParser.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/Fetcher.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/Fetcher.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/FetcherOutput.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/FetcherOutput.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/FetcherOutputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/FetcherOutputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/Generator.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/Generator.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/Indexer.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/Indexer.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/Injector.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/Injector.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/Inlink.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/Inlink.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/Inlinks.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/Inlinks.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/LinkDb.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/LinkDb.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/LinkDbReader.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/LinkDbReader.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/ParseOutputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/ParseOutputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/ParseSegment.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/ParseSegment.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/PartitionUrlByHost.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/PartitionUrlByHost.java
lucene/nutch/trunk/src/java/org/apache/nutch/crawl/package.html
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/crawl/package.html
lucene/nutch/trunk/src/java/org/apache/nutch/fs/ChecksumException.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/fs/ChecksumException.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/FSError.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/fs/FSError.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/NDFSShell.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/fs/NDFSShell.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/Seekable.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/fs/Seekable.java
lucene/nutch/trunk/src/java/org/apache/nutch/indexer/NdfsDirectory.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/indexer/NdfsDirectory.java
lucene/nutch/trunk/src/java/org/apache/nutch/io/CompressedWritable.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/io/CompressedWritable.java
lucene/nutch/trunk/src/java/org/apache/nutch/io/ObjectWritable.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/io/ObjectWritable.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/
- copied from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/CombiningCollector.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/CombiningCollector.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/FileSplit.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/FileSplit.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/InputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/InputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/InputFormatBase.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/InputFormatBase.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/InterTrackerProtocol.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/InterTrackerProtocol.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobClient.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobClient.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobConf.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobConf.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobConfigurable.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobConfigurable.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobProfile.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobProfile.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobStatus.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobStatus.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobSubmissionProtocol.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobSubmissionProtocol.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobTracker.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobTracker.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/JobTrackerInfoServer.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/JobTrackerInfoServer.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/LocalJobRunner.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/LocalJobRunner.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MRConstants.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MRConstants.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapFileOutputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapFileOutputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapOutputFile.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapOutputFile.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapOutputLocation.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapOutputLocation.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapOutputProtocol.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapOutputProtocol.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapRunnable.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapRunnable.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapRunner.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapRunner.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapTask.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapTask.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/MapTaskRunner.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/MapTaskRunner.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/Mapper.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/Mapper.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/OutputCollector.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/OutputCollector.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/OutputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/OutputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/Partitioner.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/Partitioner.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/RecordReader.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/RecordReader.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/RecordWriter.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/RecordWriter.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/ReduceTask.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/ReduceTask.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/ReduceTaskRunner.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/ReduceTaskRunner.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/Reducer.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/Reducer.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/Reporter.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/Reporter.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/RunningJob.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/RunningJob.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/SequenceFileInputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/SequenceFileInputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/SequenceFileOutputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/SequenceFileOutputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/SequenceFileRecordReader.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/SequenceFileRecordReader.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/Task.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/Task.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/TaskRunner.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/TaskRunner.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/TaskStatus.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/TaskStatus.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/TaskTracker.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/TaskTracker.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/TaskTrackerStatus.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/TaskTrackerStatus.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/TaskUmbilicalProtocol.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/TaskUmbilicalProtocol.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/TextInputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/TextInputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/TextOutputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/TextOutputFormat.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/demo/
- copied from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/demo/
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/demo/Grep.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/demo/Grep.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/
- copied from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/HashPartitioner.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/HashPartitioner.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/IdentityMapper.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/IdentityMapper.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/IdentityReducer.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/IdentityReducer.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/InverseMapper.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/InverseMapper.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/LongSumReducer.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/LongSumReducer.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/RegexMapper.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/RegexMapper.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/TokenCountMapper.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/TokenCountMapper.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/lib/package.html
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/lib/package.html
lucene/nutch/trunk/src/java/org/apache/nutch/mapred/package.html
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/mapred/package.html
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/BlockCommand.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/BlockCommand.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/ClientProtocol.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/ClientProtocol.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/DataNode.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/DataNode.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/DatanodeProtocol.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/DatanodeProtocol.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/LocatedBlock.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/LocatedBlock.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/NameNode.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/NameNode.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/HitInlinks.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/searcher/HitInlinks.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/LinkDbInlinks.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/searcher/LinkDbInlinks.java
lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConfigurable.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/util/NutchConfigurable.java
lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConfigured.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/util/NutchConfigured.java
lucene/nutch/trunk/src/java/org/apache/nutch/util/Progress.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/java/org/apache/nutch/util/Progress.java
lucene/nutch/trunk/src/test/org/apache/nutch/fs/
- copied from r357183, lucene/nutch/branches/mapred/src/test/org/apache/nutch/fs/
lucene/nutch/trunk/src/test/org/apache/nutch/fs/TestNutchFileSystem.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/test/org/apache/nutch/fs/TestNutchFileSystem.java
lucene/nutch/trunk/src/test/org/apache/nutch/mapred/
- copied from r357183, lucene/nutch/branches/mapred/src/test/org/apache/nutch/mapred/
lucene/nutch/trunk/src/test/org/apache/nutch/mapred/TestSequenceFileInputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/test/org/apache/nutch/mapred/TestSequenceFileInputFormat.java
lucene/nutch/trunk/src/test/org/apache/nutch/mapred/TestTextInputFormat.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/test/org/apache/nutch/mapred/TestTextInputFormat.java
lucene/nutch/trunk/src/test/org/apache/nutch/ndfs/
- copied from r357183, lucene/nutch/branches/mapred/src/test/org/apache/nutch/ndfs/
lucene/nutch/trunk/src/test/org/apache/nutch/ndfs/TestNDFS.java
- copied unchanged from r357183, lucene/nutch/branches/mapred/src/test/org/apache/nutch/ndfs/TestNDFS.java
Removed:
lucene/nutch/branches/mapred/
lucene/nutch/trunk/lib/jetty-5.1.2.LICENSE.txt
lucene/nutch/trunk/lib/jetty-5.1.2.jar
lucene/nutch/trunk/src/java/org/apache/nutch/fs/TestClient.java
lucene/nutch/trunk/src/java/org/apache/nutch/indexer/IndexOptimizer.java
lucene/nutch/trunk/src/java/org/apache/nutch/mapReduce/
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/FSParam.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/FSResults.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/HeartbeatData.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/NDFS.java
lucene/nutch/trunk/src/mapred/
Modified:
lucene/nutch/trunk/bin/nutch
lucene/nutch/trunk/bin/nutch-daemon.sh
lucene/nutch/trunk/build.xml
lucene/nutch/trunk/conf/ (props changed)
lucene/nutch/trunk/conf/crawl-tool.xml
lucene/nutch/trunk/conf/crawl-urlfilter.txt.template
lucene/nutch/trunk/conf/nutch-default.xml
lucene/nutch/trunk/conf/regex-urlfilter.txt.template
lucene/nutch/trunk/default.properties
lucene/nutch/trunk/site/tutorial.html
lucene/nutch/trunk/site/tutorial.pdf
lucene/nutch/trunk/src/java/org/apache/nutch/db/DistributedWebDBWriter.java
lucene/nutch/trunk/src/java/org/apache/nutch/db/Page.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/FileUtil.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/LocalFileSystem.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/NDFSFileSystem.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/NFSDataInputStream.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/NFSDataOutputStream.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/NFSInputStream.java
lucene/nutch/trunk/src/java/org/apache/nutch/fs/NutchFileSystem.java
lucene/nutch/trunk/src/java/org/apache/nutch/indexer/IndexMerger.java
lucene/nutch/trunk/src/java/org/apache/nutch/io/DataInputBuffer.java
lucene/nutch/trunk/src/java/org/apache/nutch/io/MapFile.java
lucene/nutch/trunk/src/java/org/apache/nutch/io/SequenceFile.java
lucene/nutch/trunk/src/java/org/apache/nutch/ipc/Client.java
lucene/nutch/trunk/src/java/org/apache/nutch/ipc/RPC.java
lucene/nutch/trunk/src/java/org/apache/nutch/ipc/Server.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/Block.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/DF.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/DatanodeInfo.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/FSConstants.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/FSDataset.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/FSDirectory.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/FSNamesystem.java
lucene/nutch/trunk/src/java/org/apache/nutch/ndfs/NDFSClient.java
lucene/nutch/trunk/src/java/org/apache/nutch/parse/ParseData.java
lucene/nutch/trunk/src/java/org/apache/nutch/parse/ParseImpl.java
lucene/nutch/trunk/src/java/org/apache/nutch/protocol/Content.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/DistributedSearch.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/FetchedSegments.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/HitContent.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/HitDetails.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/IndexSearcher.java
lucene/nutch/trunk/src/java/org/apache/nutch/searcher/NutchBean.java
lucene/nutch/trunk/src/java/org/apache/nutch/util/Daemon.java
lucene/nutch/trunk/src/java/org/apache/nutch/util/LogFormatter.java
lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConf.java
lucene/nutch/trunk/src/plugin/build-plugin.xml
lucene/nutch/trunk/src/plugin/parse-html/src/java/org/apache/nutch/parse/html/DOMContentUtils.java
lucene/nutch/trunk/src/plugin/parse-html/src/test/org/apache/nutch/parse/html/TestDOMContentUtils.java
lucene/nutch/trunk/src/plugin/protocol-http/src/java/org/apache/nutch/protocol/http/RobotRulesParser.java
lucene/nutch/trunk/src/plugin/protocol-httpclient/src/java/org/apache/nutch/protocol/httpclient/HttpResponse.java
lucene/nutch/trunk/src/plugin/protocol-httpclient/src/java/org/apache/nutch/protocol/httpclient/RobotRulesParser.java
lucene/nutch/trunk/src/site/src/documentation/content/xdocs/tutorial.xml
lucene/nutch/trunk/src/test/org/apache/nutch/io/TestSequenceFile.java
lucene/nutch/trunk/src/web/jsp/anchors.jsp
lucene/nutch/trunk/src/webapps/jobtracker/jobdetails.jsp
lucene/nutch/trunk/src/webapps/jobtracker/jobtracker.jsp
Modified: lucene/nutch/trunk/bin/nutch
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/bin/nutch?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/bin/nutch (original)
+++ lucene/nutch/trunk/bin/nutch Fri Dec 16 09:51:05 2005
@@ -29,29 +29,25 @@
echo "Usage: nutch COMMAND"
echo "where COMMAND is one of:"
echo " crawl one-step crawler for intranets"
+ echo " readdb read / dump crawl db"
+ echo " readlinkdb read / dump link db"
echo " admin database administration, including creation"
echo " inject inject new urls into the database"
echo " generate generate new segments to fetch"
- echo " fetchlist print the fetchlist of a segment"
echo " fetch fetch a segment's pages"
echo " parse parse a segment's pages"
- echo " index run the indexer on a segment's fetcher output"
+ echo " updatedb update crawl db from segments after fetching"
+ echo " invertlinks create a linkdb from parsed segments"
+ echo " index run the indexer on parsed segments and linkdb"
echo " merge merge several segment indexes"
echo " dedup remove duplicates from a set of segment indexes"
- echo " updatedb update db from segments after fetching"
- echo " updatesegs update segments with link data from the db"
- echo " mergesegs merge multiple segments into a single segment"
- echo " readdb examine arbitrary fields of the database"
- echo " analyze adjust database link-analysis scoring"
- echo " prune prune segment index(es) of unwanted content"
- echo " segread read, fix and dump segment data"
- echo " segslice append, join and slice segment data"
echo " server run a search server"
echo " namenode run the NDFS namenode"
echo " datanode run an NDFS datanode"
echo " ndfs run an NDFS admin client"
echo " jobtracker run the MapReduce job Tracker node"
echo " tasktracker run a MapReduce task Tracker node"
+ echo " job manipulate MapReduce jobs"
echo " or"
echo " CLASSNAME run the class named CLASSNAME"
echo "Most commands print help when invoked w/o parameters."
@@ -68,7 +64,7 @@
# some Java parameters
if [ "$NUTCH_JAVA_HOME" != "" ]; then
- echo "run java in $NUTCH_JAVA_HOME"
+ #echo "run java in $NUTCH_JAVA_HOME"
JAVA_HOME=$NUTCH_JAVA_HOME
fi
@@ -82,13 +78,14 @@
# check envvars which might override default args
if [ "$NUTCH_HEAPSIZE" != "" ]; then
- echo "run with heapsize $NUTCH_HEAPSIZE"
+ #echo "run with heapsize $NUTCH_HEAPSIZE"
JAVA_HEAP_MAX="-Xmx""$NUTCH_HEAPSIZE""m"
- echo $JAVA_HEAP_MAX
+ #echo $JAVA_HEAP_MAX
fi
# CLASSPATH initially contains $NUTCH_CONF_DIR, or defaults to $NUTCH_HOME/conf
CLASSPATH=${NUTCH_CONF_DIR:=$NUTCH_HOME/conf}
+CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
# for developers, add Nutch classes to CLASSPATH
if [ -d "$NUTCH_HOME/build/classes" ]; then
@@ -119,7 +116,7 @@
CLASSPATH=${CLASSPATH}:$f;
done
-for f in $NUTCH_HOME/lib/jettyext/*.jar; do
+for f in $NUTCH_HOME/lib/jetty-ext/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
@@ -128,53 +125,43 @@
# figure out which class to run
if [ "$COMMAND" = "crawl" ] ; then
- CLASS=org.apache.nutch.tools.CrawlTool
-elif [ "$COMMAND" = "admin" ] ; then
- CLASS=org.apache.nutch.tools.WebDBAdminTool
+ CLASS=org.apache.nutch.crawl.Crawl
elif [ "$COMMAND" = "inject" ] ; then
- CLASS=org.apache.nutch.db.WebDBInjector
+ CLASS=org.apache.nutch.crawl.Injector
elif [ "$COMMAND" = "generate" ] ; then
- CLASS=org.apache.nutch.tools.FetchListTool
-elif [ "$COMMAND" = "fetchlist" ] ; then
- CLASS=org.apache.nutch.pagedb.FetchListEntry
+ CLASS=org.apache.nutch.crawl.Generator
elif [ "$COMMAND" = "fetch" ] ; then
- CLASS=org.apache.nutch.fetcher.Fetcher
+ CLASS=org.apache.nutch.crawl.Fetcher
elif [ "$COMMAND" = "parse" ] ; then
- CLASS=org.apache.nutch.tools.ParseSegment
+ CLASS=org.apache.nutch.crawl.ParseSegment
+elif [ "$COMMAND" = "readdb" ] ; then
+ CLASS=org.apache.nutch.crawl.CrawlDbReader
+elif [ "$COMMAND" = "readlinkdb" ] ; then
+ CLASS=org.apache.nutch.crawl.LinkDbReader
+elif [ "$COMMAND" = "updatedb" ] ; then
+ CLASS=org.apache.nutch.crawl.CrawlDb
+elif [ "$COMMAND" = "invertlinks" ] ; then
+ CLASS=org.apache.nutch.crawl.LinkDb
elif [ "$COMMAND" = "index" ] ; then
- CLASS=org.apache.nutch.indexer.IndexSegment
+ CLASS=org.apache.nutch.crawl.Indexer
+elif [ "$COMMAND" = "dedup" ] ; then
+ CLASS=org.apache.nutch.crawl.DeleteDuplicates
elif [ "$COMMAND" = "merge" ] ; then
CLASS=org.apache.nutch.indexer.IndexMerger
-elif [ "$COMMAND" = "dedup" ] ; then
- CLASS=org.apache.nutch.indexer.DeleteDuplicates
-elif [ "$COMMAND" = "updatedb" ] ; then
- CLASS=org.apache.nutch.tools.UpdateDatabaseTool
-elif [ "$COMMAND" = "updatesegs" ] ; then
- CLASS=org.apache.nutch.tools.UpdateSegmentsFromDb
-elif [ "$COMMAND" = "mergesegs" ] ; then
- CLASS=org.apache.nutch.tools.SegmentMergeTool
-elif [ "$COMMAND" = "readdb" ] ; then
- CLASS=org.apache.nutch.db.WebDBReader
-elif [ "$COMMAND" = "prune" ] ; then
- CLASS=org.apache.nutch.tools.PruneIndexTool
-elif [ "$COMMAND" = "segread" ] ; then
- CLASS=org.apache.nutch.segment.SegmentReader
-elif [ "$COMMAND" = "segslice" ] ; then
- CLASS=org.apache.nutch.segment.SegmentSlicer
-elif [ "$COMMAND" = "analyze" ] ; then
- CLASS=org.apache.nutch.tools.LinkAnalysisTool
elif [ "$COMMAND" = "server" ] ; then
CLASS='org.apache.nutch.searcher.DistributedSearch$Server'
elif [ "$COMMAND" = "namenode" ] ; then
- CLASS='org.apache.nutch.ndfs.NDFS$NameNode'
+ CLASS='org.apache.nutch.ndfs.NameNode'
elif [ "$COMMAND" = "datanode" ] ; then
- CLASS='org.apache.nutch.ndfs.NDFS$DataNode'
+ CLASS='org.apache.nutch.ndfs.DataNode'
elif [ "$COMMAND" = "ndfs" ] ; then
- CLASS=org.apache.nutch.fs.TestClient
+ CLASS=org.apache.nutch.fs.NDFSShell
elif [ "$COMMAND" = "jobtracker" ] ; then
- CLASS=org.apache.nutch.mapReduce.JobTracker
+ CLASS=org.apache.nutch.mapred.JobTracker
elif [ "$COMMAND" = "tasktracker" ] ; then
- CLASS=org.apache.nutch.mapReduce.TaskTracker
+ CLASS=org.apache.nutch.mapred.TaskTracker
+elif [ "$COMMAND" = "job" ] ; then
+ CLASS=org.apache.nutch.mapred.JobClient
else
CLASS=$COMMAND
fi
Modified: lucene/nutch/trunk/bin/nutch-daemon.sh
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/bin/nutch-daemon.sh?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/bin/nutch-daemon.sh (original)
+++ lucene/nutch/trunk/bin/nutch-daemon.sh Fri Dec 16 09:51:05 2005
@@ -5,19 +5,10 @@
# Environment Variables
#
# NUTCH_LOG_DIR Where log files are stored. PWD by default.
-#
-
-# resolve links - $0 may be a softlink
-this="$0"
-while [ -h "$this" ]; do
- ls=`ls -ld "$this"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '.*/.*' > /dev/null; then
- this="$link"
- else
- this=`dirname "$this"`/"$link"
- fi
-done
+# NUTCH_MASTER host:path where nutch code should be rsync'd from
+# NUTCH_PID_DIR The pid files are stored. /tmp by default.
+# NUTCH_IDENT_STRING A string representing this instance of nutch. $USER by default
+##
usage="Usage: nutch-daemon [start|stop] [nutch-command] [args...]"
@@ -33,16 +24,34 @@
command=$1
shift
-# some directories
-this_dir=`dirname "$this"`
+# resolve links - $0 may be a softlink
+this="$0"
+while [ -h "$this" ]; do
+ ls=`ls -ld "$this"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ this="$link"
+ else
+ this=`dirname "$this"`/"$link"
+ fi
+done
+# get log directory
if [ "$NUTCH_LOG_DIR" = "" ]; then
- NUTCH_LOG_DIR=.
+ NUTCH_LOG_DIR=$PWD
+fi
+
+if [ "$NUTCH_PID_DIR" = "" ]; then
+ NUTCH_PID_DIR=/tmp
+fi
+
+if [ "$NUTCH_IDENT_STRING" = "" ]; then
+ NUTCH_IDENT_STRING=$USER
fi
# some variables
-log=$NUTCH_LOG_DIR/nutch-$command-`hostname`.log
-pid=/tmp/nutch-$command.pid
+log=$NUTCH_LOG_DIR/nutch-$NUTCH_IDENT_STRING-$command-`hostname`.log
+pid=$NUTCH_PID_DIR/nutch-$NUTCH_IDENT_STRING-$command.pid
case $startStop in
@@ -55,8 +64,15 @@
fi
fi
+ root=`dirname $this`/..
+ if [ "$NUTCH_MASTER" != "" ]; then
+ echo rsync from $NUTCH_MASTER
+ rsync -a --delete --exclude=.svn $NUTCH_MASTER/ $root
+ fi
+
+ cd $root
echo starting $command, logging to $log
- $this_dir/nutch $command "$@" >& $log < /dev/null &
+ nohup bin/nutch $command "$@" >& $log < /dev/null &
echo $! > $pid
sleep 1; head $log
;;
Modified: lucene/nutch/trunk/build.xml
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/build.xml?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/build.xml (original)
+++ lucene/nutch/trunk/build.xml Fri Dec 16 09:51:05 2005
@@ -38,6 +38,7 @@
<target name="init">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.webapps}"/>
<mkdir dir="${test.build.dir}"/>
<mkdir dir="${test.build.classes}"/>
@@ -46,6 +47,10 @@
<fileset dir="${conf.dir}" includes="**/*.template"/>
</touch>
+ <copy todir="${build.webapps}/jobtracker">
+ <fileset dir="${src.webapps}/jobtracker"/>
+ </copy>
+
<copy todir="${conf.dir}" verbose="true">
<fileset dir="${conf.dir}" includes="**/*.template"/>
<mapper type="glob" from="*.template" to="*"/>
@@ -57,7 +62,7 @@
<!-- ====================================================== -->
<!-- Compile the Java files -->
<!-- ====================================================== -->
- <target name="compile" depends="compile-core, compile-plugins, jar"/>
+ <target name="compile" depends="compile-core, compile-plugins"/>
<target name="compile-core" depends="init">
<javac
@@ -65,9 +70,11 @@
srcdir="${src.dir}"
includes="org/apache/nutch/**/*.java"
destdir="${build.classes}"
- debug="${debug}"
- optimize="${optimize}"
- deprecation="${deprecation}">
+ debug="${javac.debug}"
+ optimize="${javac.optimize}"
+ target="${javac.version}"
+ source="${javac.version}"
+ deprecation="${javac.deprecation}">
<classpath refid="classpath"/>
</javac>
</target>
@@ -102,12 +109,11 @@
todir="${build.classes}"/>
<copy file="${conf.dir}/nutch-site.xml"
todir="${build.classes}"/>
- <jar
- jarfile="${build.dir}/${final.name}.jar"
- basedir="${build.classes}"
- />
-
- <copy file="${build.dir}/${final.name}.jar" tofile="${basedir}/${name}.jar" />
+ <jar jarfile="${build.dir}/${final.name}.jar"
+ basedir="${build.classes}">
+ <manifest>
+ </manifest>
+ </jar>
</target>
<!-- ================================================================== -->
@@ -115,7 +121,7 @@
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
- <target name="war" depends="compile,generate-docs">
+ <target name="war" depends="jar,compile,generate-docs">
<war destfile="${build.dir}/${final.name}.war"
webxml="${web.src.dir}/web.xml">
<fileset dir="${web.src.dir}/jsp"/>
@@ -150,8 +156,11 @@
srcdir="${test.src.dir}"
includes="org/apache/nutch/**/*.java"
destdir="${test.build.classes}"
- debug="${debug}"
- deprecation="${deprecation}">
+ debug="${javac.debug}"
+ optimize="${javac.optimize}"
+ target="${javac.version}"
+ source="${javac.version}"
+ deprecation="${javac.deprecation}">
<classpath refid="test.classpath"/>
</javac>
</target>
@@ -435,7 +444,6 @@
<!-- ================================================================== -->
<target name="clean">
<delete dir="${build.dir}"/>
- <delete failonerror="true" file="${name}.jar" />
</target>
</project>
Propchange: lucene/nutch/trunk/conf/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Dec 16 09:51:05 2005
@@ -2,3 +2,4 @@
regex-normalize.xml
crawl-urlfilter.txt
regex-urlfilter.txt
+mapred-default.xml
Modified: lucene/nutch/trunk/conf/crawl-tool.xml
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/conf/crawl-tool.xml?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/conf/crawl-tool.xml (original)
+++ lucene/nutch/trunk/conf/crawl-tool.xml Fri Dec 16 09:51:05 2005
@@ -15,13 +15,6 @@
</property>
<property>
- <name>indexer.boost.by.link.count</name>
- <value>true</value>
- <description>When true scores for a page are multipled by the log of
- the number of incoming links to the page.</description>
-</property>
-
-<property>
<name>db.ignore.internal.links</name>
<value>false</value>
<description>If true, when adding new links to a page, links from
@@ -40,7 +33,7 @@
<property>
<name>http.max.delays</name>
- <value>100</value>
+ <value>1000</value>
<description>The number of times a thread will delay when trying to
fetch a page. When using the crawl tool there are likely to be very
few different hosts, so we need to be willing to wait longer for
Modified: lucene/nutch/trunk/conf/crawl-urlfilter.txt.template
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/conf/crawl-urlfilter.txt.template?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/conf/crawl-urlfilter.txt.template (original)
+++ lucene/nutch/trunk/conf/crawl-urlfilter.txt.template Fri Dec 16 09:51:05 2005
@@ -12,10 +12,13 @@
-^(file|ftp|mailto):
# skip image and other suffixes we can't yet parse
--\.(gif|GIF|jpg|JPG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|png|PNG)$
+-\.(gif|GIF|jpg|JPG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|png)$
# skip URLs containing certain characters as probable queries, etc.
-[?*!@=]
+
+# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
+-.*(/.+?)/.*?\1/.*?\1/
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
Modified: lucene/nutch/trunk/conf/nutch-default.xml
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/conf/nutch-default.xml?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/conf/nutch-default.xml (original)
+++ lucene/nutch/trunk/conf/nutch-default.xml Fri Dec 16 09:51:05 2005
@@ -69,7 +69,7 @@
<property>
<name>http.max.delays</name>
- <value>3</value>
+ <value>100</value>
<description>The number of times a thread will delay when trying to
fetch a page. Each time it finds that a host is busy, it will wait
fetcher.server.delay. After http.max.delays attepts, it will give
@@ -262,15 +262,13 @@
recoverable errors is generated for fetch.</description>
</property>
-<!-- fetchlist tool properties -->
+<!-- generate properties -->
<property>
- <name>fetchlist.score.by.link.count</name>
- <value>true</value>
- <description>If true, set page scores on fetchlist entries based on
- log(number of anchors), instead of using original page scores. This
- results in prioritization of pages with many incoming links.
- </description>
+ <name>generate.max.per.host</name>
+ <value>-1</value>
+ <description>The maximum number of urls per host in a single
+ fetchlist. -1 if unlimited.</description>
</property>
<!-- fetcher properties -->
@@ -303,18 +301,23 @@
<description>If true, fetcher will log more verbosely.</description>
</property>
-<!-- parser properties -->
<property>
- <name>parser.threads.parse</name>
- <value>10</value>
- <description>Number of ParserThreads ParseSegment should use.</description>
+ <name>fetcher.parse</name>
+ <value>true</value>
+ <description>If true, fetcher will parse content.</description>
+</property>
+
+<property>
+ <name>fetcher.store.content</name>
+ <value>true</value>
+ <description>If true, fetcher will store content.</description>
</property>
<!-- i/o properties -->
<property>
<name>io.sort.factor</name>
- <value>100</value>
+ <value>10</value>
<description>The number of streams to merge at once while sorting
files. This determines the number of open file handles.</description>
</property>
@@ -329,13 +332,28 @@
<property>
<name>io.file.buffer.size</name>
- <value>131072</value>
+ <value>4096</value>
<description>The size of buffer for use in sequence files.
The size of this buffer should probably be a multiple of hardware
page size (4096 on Intel x86), and it determines how much data is
buffered during read and write operations.</description>
</property>
+<property>
+ <name>io.bytes.per.checksum</name>
+ <value>512</value>
+ <description>The number of bytes per checksum. Must not be larger than
+ io.file.buffer.size.</description>
+</property>
+
+<property>
+ <name>io.skip.checksum.errors</name>
+ <value>false</value>
+ <description>If true, when a checksum error is encountered while
+ reading a sequence file, entries are skipped, instead of throwing an
+ exception.</description>
+</property>
+
<!-- file system properties -->
<property>
@@ -346,6 +364,14 @@
</property>
<property>
+ <name>ndfs.datanode.port</name>
+ <value>50010</value>
+ <description>The port number that the ndfs datanode server uses as a starting
+ point to look for a free port to listen on.
+</description>
+</property>
+
+<property>
<name>ndfs.name.dir</name>
<value>/tmp/nutch/ndfs/name</value>
<description>Determines where on the local filesystem the NDFS name node
@@ -356,23 +382,108 @@
<name>ndfs.data.dir</name>
<value>/tmp/nutch/ndfs/data</value>
<description>Determines where on the local filesystem an NDFS data node
- should store its blocks.</description>
+ should store its blocks. If this is a comma- or space-delimited
+ list of directories, then data will be stored in all named
+ directories, typically on different devices.</description>
</property>
<!-- map/reduce properties -->
<property>
<name>mapred.job.tracker</name>
- <value>localhost:8010</value>
- <description>The host and port that the MapReduce job tracker runs at.
+ <value>local</value>
+ <description>The host and port that the MapReduce job tracker runs
+ at. If "local", then jobs are run in-process as a single map
+ and reduce task.
+ </description>
+</property>
+
+<property>
+ <name>mapred.job.tracker.info.port</name>
+ <value>50030</value>
+ <description>The port that the MapReduce job tracker info webserver runs at.
+ </description>
+</property>
+
+<property>
+ <name>mapred.task.tracker.output.port</name>
+ <value>50040</value>
+ <description>The port number that the MapReduce task tracker output server uses as a starting
+ point to look for a free port to listen on.
+ </description>
+</property>
+
+<property>
+ <name>mapred.task.tracker.report.port</name>
+ <value>50050</value>
+ <description>The port number that the MapReduce task tracker report server uses as a starting
+ point to look for a free port to listen on.
</description>
</property>
<property>
<name>mapred.local.dir</name>
<value>/tmp/nutch/mapred/local</value>
- <description>The local directory where MapReduce stores temprorary files
- related to tasks and jobs.
+ <description>The local directory where MapReduce stores intermediate
+ data files. May be a space- or comma- separated list of
+ directories on different devices in order to spread disk i/o.
+ </description>
+</property>
+
+<property>
+ <name>mapred.system.dir</name>
+ <value>/tmp/nutch/mapred/system</value>
+ <description>The shared directory where MapReduce stores control files.
+ </description>
+</property>
+
+<property>
+ <name>mapred.temp.dir</name>
+ <value>/tmp/nutch/mapred/temp</value>
+ <description>A shared directory for temporary files.
+ </description>
+</property>
+
+<property>
+ <name>mapred.map.tasks</name>
+ <value>2</value>
+ <description>The default number of map tasks per job. Typically set
+ to a prime several times greater than number of available hosts.
+ Ignored when mapred.job.tracker is "local".
+ </description>
+</property>
+
+<property>
+ <name>mapred.reduce.tasks</name>
+ <value>1</value>
+ <description>The default number of reduce tasks per job. Typically set
+ to a prime close to the number of available hosts. Ignored when
+ mapred.job.tracker is "local".
+ </description>
+</property>
+
+<property>
+ <name>mapred.task.timeout</name>
+ <value>600000</value>
+ <description>The number of milliseconds before a task will be
+ terminated if it neither reads an input, writes an output, nor
+ updates its status string.
+ </description>
+</property>
+
+<property>
+ <name>mapred.tasktracker.tasks.maximum</name>
+ <value>2</value>
+ <description>The maximum number of tasks that will be run
+ simultaneously by a task tracker.
+ </description>
+</property>
+
+<property>
+ <name>mapred.job.tracker.info.port</name>
+ <value>7845</value>
+ <description>The port number where the jobtracker runs its
+ administrative web interface.
</description>
</property>
@@ -390,13 +501,6 @@
</property>
<property>
- <name>indexer.boost.by.link.count</name>
- <value>true</value>
- <description>When true scores for a page are multipled by the log of
- the number of incoming links to the page.</description>
-</property>
-
-<property>
<name>indexer.max.title.length</name>
<value>100</value>
<description>The maximum number of characters of a title that are indexed.
@@ -444,12 +548,12 @@
<property>
<name>indexer.maxMergeDocs</name>
- <value>50</value>
+ <value>2147483647</value>
<description>This number determines the maximum number of Lucene
Documents to be merged into a new Lucene segment. Larger values
- increase indexing speed and reduce the number of Lucene segments,
+ increase batch indexing speed and reduce the number of Lucene segments,
which reduces the number of open file handles; however, this also
- increases RAM usage during indexing.
+ decreases incremental indexing performance.
</description>
</property>
@@ -477,9 +581,9 @@
<property>
<name>searcher.dir</name>
- <value>.</value>
+ <value>crawl</value>
<description>
- Path to root of index directories. This directory is searched (in
+ Path to root of crawl. This directory is searched (in
order) for either the file search-servers.txt, containing a list of
distributed search servers, or the directory "index" containing
merged indexes, or the directory "segments" containing segment
@@ -571,8 +675,8 @@
<property>
<name>ipc.client.timeout</name>
- <value>10000</value>
- <description>Defines the timeout for IPC calls in milliseconds. </description>
+ <value>60000</value>
+ <description>Defines the timeout for IPC calls in milliseconds.</description>
</property>
<!-- plugin properties -->
Modified: lucene/nutch/trunk/conf/regex-urlfilter.txt.template
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/conf/regex-urlfilter.txt.template?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/conf/regex-urlfilter.txt.template (original)
+++ lucene/nutch/trunk/conf/regex-urlfilter.txt.template Fri Dec 16 09:51:05 2005
@@ -15,5 +15,8 @@
# skip URLs containing certain characters as probable queries, etc.
-[?*!@=]
+# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
+-.*(/.+?)/.*?\1/.*?\1/
+
# accept anything else
+.
Modified: lucene/nutch/trunk/default.properties
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/default.properties?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/default.properties (original)
+++ lucene/nutch/trunk/default.properties Fri Dec 16 09:51:05 2005
@@ -15,6 +15,7 @@
build.dir = ./build
build.classes = ${build.dir}/classes
+build.webapps = ${build.dir}/webapps
build.plugins = ${build.dir}/plugins
build.docs = ${build.dir}/docs
build.javadoc = ${build.docs}/api
@@ -29,6 +30,7 @@
javacc.home=/usr/java/javacc
web.src.dir = ./src/web
+src.webapps = ./src/webapps
javadoc.link.java=http://java.sun.com/j2se/1.4.2/docs/api/
javadoc.link.lucene=http://jakarta.apache.org/lucene/docs/api/
@@ -36,9 +38,10 @@
dist.dir=${build.dir}/${final.name}
-debug=on
-optimize=on
-deprecation=off
+javac.debug=on
+javac.optimize=on
+javac.deprecation=off
+javac.version= 1.4
plugin.http=org.apache.nutch.protocol.http*
plugin.httpclient=org.apache.nutch.protocol.httpclient*
Modified: lucene/nutch/trunk/site/tutorial.html
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/site/tutorial.html?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/site/tutorial.html (original)
+++ lucene/nutch/trunk/site/tutorial.html Fri Dec 16 09:51:05 2005
@@ -276,11 +276,11 @@
<ol>
-<li>Create a flat file of root urls. For example, to crawl the
-<span class="codefrag">nutch</span> site you might start with a file named
-<span class="codefrag">urls</span> containing just the Nutch home page. All other
-Nutch pages should be reachable from this page. The <span class="codefrag">urls</span>
-file would thus look like:
+<li>Create a directory with a flat file of root urls. For example, to
+crawl the <span class="codefrag">nutch</span> site you might start with a file named
+<span class="codefrag">urls/nutch</span> containing the url of just the Nutch home
+page. All other Nutch pages should be reachable from this page. The
+<span class="codefrag">urls/nutch</span> file would thus contain:
<pre class="code">
http://lucene.apache.org/nutch/
</pre>
@@ -310,138 +310,152 @@
<span class="codefrag">-dir</span> <em>dir</em> names the directory to put the crawl in.</li>
<li>
-<span class="codefrag">-depth</span> <em>depth</em> indicates the link depth from the root
-page that should be crawled.</li>
+<span class="codefrag">-threads</span> <em>threads</em> determines the number of
+threads that will fetch in parallel.</li>
<li>
-<span class="codefrag">-delay</span> <em>delay</em> determines the number of seconds
-between accesses to each host.</li>
+<span class="codefrag">-depth</span> <em>depth</em> indicates the link depth from the root
+page that should be crawled.</li>
<li>
-<span class="codefrag">-threads</span> <em>threads</em> determines the number of
-threads that will fetch in parallel.</li>
+<span class="codefrag">-topN</span> <em>N</em> determines the maximum number of pages that
+will be retrieved at each level up to the depth.</li>
</ul>
<p>For example, a typical call might be:</p>
<pre class="code">
-bin/nutch crawl urls -dir crawl.test -depth 3 >& crawl.log
+bin/nutch crawl urls -dir crawl -depth 3 -topN 50
</pre>
-<p>Typically one starts testing one's configuration by crawling at low
-depths, and watching the output to check that desired pages are found.
-Once one is more confident of the configuration, then an appropriate
-depth for a full crawl is around 10.</p>
+<p>Typically one starts testing one's configuration by crawling at
+shallow depths, sharply limiting the number of pages fetched at each
+level (<span class="codefrag">-topN</span>), and watching the output to check that
+desired pages are fetched and undesirable pages are not. Once one is
+confident of the configuration, then an appropriate depth for a full
+crawl is around 10. The number of pages per level
+(<span class="codefrag">-topN</span>) for a full crawl can be from tens of thousands to
+millions, depending on your resources.</p>
<p>Once crawling has completed, one can skip to the Searching section
below.</p>
</div>
-<a name="N100E4"></a><a name="Whole-web+Crawling"></a>
+<a name="N100EA"></a><a name="Whole-web+Crawling"></a>
<h2 class="h3">Whole-web Crawling</h2>
<div class="section">
<p>Whole-web crawling is designed to handle very large crawls which may
take weeks to complete, running on multiple machines.</p>
-<a name="N100ED"></a><a name="Whole-web%3A+Concepts"></a>
+<a name="N100F3"></a><a name="Whole-web%3A+Concepts"></a>
<h3 class="h4">Whole-web: Concepts</h3>
-<p>Nutch data is of two types:</p>
+<p>Nutch data is composed of:</p>
<ol>
+
-<li>The web database. This contains information about every
-page known to Nutch, and about links between those pages.</li>
+<li>The crawl database, or <em>crawldb</em>. This contains
+information about every url known to Nutch, including whether it was
+fetched, and, if so, when.</li>
+
-<li>A set of segments. Each segment is a set of pages that are
-fetched and indexed as a unit. Segment data consists of the
-following types:</li>
+<li>The link database, or <em>linkdb</em>. This contains the list
+of known links to each url, including both the source url and anchor
+text of the link.</li>
+
+
+<li>A set of <em>segments</em>. Each segment is a set of urls that are
+fetched as a unit. Segments are directories with the following
+subdirectories:</li>
+
<li>
<ul>
-<li>a <em>fetchlist</em> is a file
-that names a set of pages to be fetched</li>
+<li>a <em>crawl_generate</em> names a set of urls to be fetched</li>
+
+<li>a <em>crawl_fetch</em> contains the status of fetching each url</li>
+
+<li>a <em>content</em> contains the content of each url</li>
-<li>the<em> fetcher output</em> is a
-set of files containing the fetched pages</li>
+<li>a <em>parse_text</em> contains the parsed text of each url</li>
-<li>the <em>index </em>is a
-Lucene-format index of the fetcher output.</li>
+<li>a <em>parse_data</em> contains outlinks and metadata parsed
+ from each url</li>
+
+<li>a <em>crawl_parse</em> contains the outlink urls, used to
+ update the crawldb</li>
</ul>
</li>
+
+<li>The <em>indexes</em>are Lucene-format indexes.</li>
+
+
</ol>
-<p>In the following examples we will keep our web database in a directory
-named <span class="codefrag">db</span> and our segments
-in a directory named <span class="codefrag">segments</span>:</p>
-<pre class="code">mkdir db
-mkdir segments</pre>
-<a name="N10123"></a><a name="Whole-web%3A+Boostrapping+the+Web+Database"></a>
+<a name="N10140"></a><a name="Whole-web%3A+Boostrapping+the+Web+Database"></a>
<h3 class="h4">Whole-web: Boostrapping the Web Database</h3>
-<p>The admin tool is used to create a new, empty database:</p>
-<pre class="code">bin/nutch admin db -create</pre>
-<p>The <em>injector</em> adds urls into the database. Let's inject
-URLs from the <a href="http://dmoz.org/">DMOZ</a> Open
-Directory. First we must download and uncompress the file listing all
-of the DMOZ pages. (This is a 200+Mb file, so this will take a few
-minutes.)</p>
+<p>The <em>injector</em> adds urls to the crawldb. Let's inject URLs
+from the <a href="http://dmoz.org/">DMOZ</a> Open Directory. First we
+must download and uncompress the file listing all of the DMOZ pages.
+(This is a 200+Mb file, so this will take a few minutes.)</p>
<pre class="code">wget http://rdf.dmoz.org/rdf/content.rdf.u8.gz
gunzip content.rdf.u8.gz</pre>
-<p>Next we inject a random subset of these pages into the web database.
+<p>Next we select a random subset of these pages.
(We use a random subset so that everyone who runs this tutorial
doesn't hammer the same sites.) DMOZ contains around three million
-URLs. We inject one out of every 3000, so that we end up with
+URLs. We select one out of every 5000, so that we end up with
around 1000 URLs:</p>
-<pre class="code">bin/nutch inject db -dmozfile content.rdf.u8 -subset 3000</pre>
-<p>This also takes a few minutes, as it must parse the full file.</p>
+<pre class="code">mkdir dmoz
+bin/nutch org.apache.nutch.crawl.DmozParser content.rdf.u8 -subset 5000 > dmoz/urls</pre>
+<p>The parser also takes a few minutes, as it must parse the full
+file. Finally, we initialize the crawl db with the selected urls.</p>
+<pre class="code">bin/nutch inject crawl/crawldb dmoz</pre>
<p>Now we have a web database with around 1000 as-yet unfetched URLs in it.</p>
-<a name="N1014C"></a><a name="Whole-web%3A+Fetching"></a>
+<a name="N10166"></a><a name="Whole-web%3A+Fetching"></a>
<h3 class="h4">Whole-web: Fetching</h3>
<p>To fetch, we first generate a fetchlist from the database:</p>
-<pre class="code">bin/nutch generate db segments
+<pre class="code">bin/nutch generate crawl/crawldb crawl/segments
</pre>
<p>This generates a fetchlist for all of the pages due to be fetched.
The fetchlist is placed in a newly created segment directory.
The segment directory is named by the time it's created. We
save the name of this segment in the shell variable <span class="codefrag">s1</span>:</p>
-<pre class="code">s1=`ls -d segments/2* | tail -1`
+<pre class="code">s1=`ls -d crawl/segments/2* | tail -1`
echo $s1
</pre>
<p>Now we run the fetcher on this segment with:</p>
<pre class="code">bin/nutch fetch $s1</pre>
<p>When this is complete, we update the database with the results of the
fetch:</p>
-<pre class="code">bin/nutch updatedb db $s1</pre>
+<pre class="code">bin/nutch updatedb crawl/crawldb $s1</pre>
<p>Now the database has entries for all of the pages referenced by the
initial set.</p>
<p>Now we fetch a new segment with the top-scoring 1000 pages:</p>
-<pre class="code">bin/nutch generate db segments -topN 1000
-s2=`ls -d segments/2* | tail -1`
+<pre class="code">bin/nutch generate crawl/crawldb crawl/segments -topN 1000
+s2=`ls -d crawl/segments/2* | tail -1`
echo $s2
bin/nutch fetch $s2
-bin/nutch updatedb db $s2
+bin/nutch updatedb crawl/crawldb $s2
</pre>
<p>Let's fetch one more round:</p>
<pre class="code">
-bin/nutch generate db segments -topN 1000
-s3=`ls -d segments/2* | tail -1`
+bin/nutch generate crawl/crawldb crawl/segments -topN 1000
+s3=`ls -d crawl/segments/2* | tail -1`
echo $s3
bin/nutch fetch $s3
-bin/nutch updatedb db $s3
+bin/nutch updatedb crawl/crawldb $s3
</pre>
<p>By this point we've fetched a few thousand pages. Let's index
them!</p>
-<a name="N10186"></a><a name="Whole-web%3A+Indexing"></a>
+<a name="N101A0"></a><a name="Whole-web%3A+Indexing"></a>
<h3 class="h4">Whole-web: Indexing</h3>
-<p>To index each segment we use the <span class="codefrag">index</span>
-command, as follows:</p>
-<pre class="code">bin/nutch index $s1
-bin/nutch index $s2
-bin/nutch index $s3</pre>
-<p>Then, before we can search a set of segments, we need to delete
-duplicate pages. This is done with:</p>
-<pre class="code">bin/nutch dedup segments dedup.tmp</pre>
+<p>Before indexing we first invert all of the links, so that we may
+index incoming anchor text with the pages.</p>
+<pre class="code">bin/nutch invertlinks crawl/linkdb crawl/segments</pre>
+<p>To index the segments we use the <span class="codefrag">index</span> command, as follows:</p>
+<pre class="code">bin/nutch index indexes crawl/linkdb crawl/segments/*</pre>
<p>Now we're ready to search!</p>
-<a name="N101A1"></a><a name="Searching"></a>
+<a name="N101C1"></a><a name="Searching"></a>
<h3 class="h4">Searching</h3>
<p>To search you need to put the nutch war file into your servlet
container. (If instead of downloading a Nutch release you checked the
@@ -452,10 +466,8 @@
<pre class="code">rm -rf ~/local/tomcat/webapps/ROOT*
cp nutch*.war ~/local/tomcat/webapps/ROOT.war
</pre>
-<p>The webapp finds its indexes in <span class="codefrag">./segments</span>, relative
-to where you start Tomcat, so, if you've done intranet crawling,
-connect to your crawl directory, or, if you've done whole-web
-crawling, don't change directories, and give the command:</p>
+<p>The webapp finds its indexes in <span class="codefrag">./crawl</span>, relative
+to where you start Tomcat, so use a command like:</p>
<pre class="code">~/local/tomcat/bin/catalina.sh start
</pre>
<p>Then visit <a href="http://localhost:8080/">http://localhost:8080/</a>
Modified: lucene/nutch/trunk/site/tutorial.pdf
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/site/tutorial.pdf?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/site/tutorial.pdf (original)
+++ lucene/nutch/trunk/site/tutorial.pdf Fri Dec 16 09:51:05 2005
@@ -146,10 +146,10 @@
>>
endobj
30 0 obj
-<< /Length 2578 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2473 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-Gat%%=`<%a...@FG>=c_O=e69SOql<?FF)>.fK8)3s(O%0RPdR/Bf2pVO/!i+D>;tQPb>We^Y63ui+W7!(X7+Xk&kmi!_Z4'V68\d+7%R2'F$@F=gbPE(JHps#39HdV!HdM+ihbt]Xm!shH!77^IS.'/-ciuo
13q@>2o0Q\VPY.hJN+7=0@Ph+iQ9UE8?`E#];J[R/[A1gJJ$9Ad*6=.;N8DgQCVk\_Hr'=12@uHT/-lB_-I3iI?ln3qK6U:J6(BQn'#9ZN9/DI15HEUG8c)OuJ9\^KWC%9nP1:R:27A9h.s36jFZbYg..An\l_Nt8!<BKe3dqa1`j-U]jK5@"^6ei;;&+ZBfN_HPJJmq]=pWmo-/VV.1<rLjA\lFh/%oOCVj[eLh[0-<k@CsKJNUnZH]g5o-pW+aP'FL$!ad,AK!XNkr&3dWM6QC>43=@YP9%p^Jp,cV-:s:b>TYe*,\Wo[\,h%u*XRujO>SuM-j-KIpYb+PMMIV8*J")9UY_KBM(RuOcP,uWB1]ri"ndBkU_(sU8k_c`)hnU;G!E[,/T8.,/2UNTHQ<[TeMu);D)`I%XcGap$mXYq(qb^3[\K1>ed>*DL7M*Ph>sVn',DER5XVDrhQ^p#0;K&rSmXhTkh6.F2;+;9\JS%n"T[V,-Ju-:=\N1A"a%W;o/N[bGuu?u):l%9@WYLM:PB%!So[r!9JN:ZErTm2A6;+XFU,&C$S92Y`4oRmTkhOScaW?!X'l[5P,>MOc*RHlFC2_Xd5e\EH/=?RS&rXG_6WAjGL,-P/DC/F-dVf5Z%QFbFRp.H85!3,#:L(55@@#-7,hdOoWU@i=G;J!8/_l>D>ObL.o+%9@l*a(*OfH@GXJI2R;6?/9_c@aIXj0!6UBnplT-^t'WKbYlLn/;n*)s_QiL4jOab*)QQol^ChehuRI@qRh.H)LHD1o2A478l/Cr6XQ%XHI0!\c/:YY8rXL9F"28+Nb*@O^-mJ'2=PUVu!,>ZVF:n5-b$(=RbA(fPU8tXg@3%M6@QD(?X(_8dm:q_$XicJMiYk/Z4a7o]<);:Fu-HsYu7P?0nfo)"fCFo+DHedU3@Z7,S(!7oIp@4j;EdfSceGpr_#MmE:"[a1[G^)W<?KAgU&`YYS6HNqF(1M9h(kG1^2`Q
/i(]jQl\au]7`R,CeP7Um.O->D8<rGEfnt\OU^W$3$+(:TcGbpr[deNoUH,.[@>BOP7!SQu%7&YpHs(_=;bJoH*]us01RrJ!5K`QP&hqb)_0FLf?LP^b$OMLTj'm4W]&fb#l)p6Zo/rVT_ar\`8CAf#([>:[CQZ[AEm+u-iaOIs9%.js9Tnlg-[u&B)-_=rFFH/VcDPM07S8;Q2q2.aJfCO[:JU.BDU0P2>D:<]b2j@1'>cD%eW'gh:N1kq^M4a"k_B>W5HB;H'Z`VrUCBJ1/\Zdh[6+G(DS?kBg/Ab.V+mn3(6<BfR3gb6&Ml5jD%H'oae7`Kql=qGJ2>D/#3<K^Uon`At8%'u$5OG-cAL6:L(81&b/Tsi2?pRb6h#0UsI_*/eE)5n?B)`4tkV-%ldV+hNh3t6#_X^r1E"DLI9eLXaY1#MJM.S1Rd"Xrf-)dOrCUsa..sF_$reqA1Zg[2A1t<)G(dN3Ed0_FMhs^-BDL7q2c';96<8[=a#;>5"6NS+N^4-!'qM++X]L1=Pf7W<)8@,H\rR3eoQaVBhl(:2H]r:!-f=netWD*%&TVGVI=7&@rGCc?"6T'n)$j?!J_DC/K~>
+Gat%%D/\/u%/ui*+nWrU+?AcdV;K_(Y?9OrFZ0`P:rr@`;BkA4e#@*]r@$pkj4Pg76\-@XO$)tVq2eQ^0!?%/,0TM5D(W4u[^E_f/0"RK<artYd.`@VL"<Q:rk<QsF6hBdqY/UVdsp,Bdumb+H#ERj/O+b0a)]s4OflV3L`IlanoShmg9G.5glKJ8+4BVW]$qleq/N1$BeD0`eao*5;Q>5[]__A;e8"s]f",mmQm>N7b'i8=<b]*N6pa,0?5/]"iZPNflc[gs="fo(/DjTWo99_ri0Um82e),Yhj2F8antBtM#,)"nGkb8VQIq.Q&>mVTo0BGWe.(:L1I#0m[l"j(n^?=%h`]-C&,#,4=C%kr[8f0b4dPR)Z5_KJU"_\hK3%Ile!B&=68AeL46$(X"!KSIr#=%(D!"UL#uC3IfC^tg)oT7Dq+55Vd%;(h4VFX6H)->P*lF[P(_K9c;.f6YMO^)E;.E/[s+H/^-7[,Y*0jH$E!6F6rOVd0nI!jWo'FNMt6DU+!6VX<?oqd84CfREirr)(d]E>`][ZarUEunI93?4N;h>N,`WQ5&F9rrHkQ.0j!;oHipt&7M5,0kCR;,-Vo"Z[M(eP&_l+=l;_Ct2%Rq,OG7-,RdddRAr]FX%,c=&S])XQF*_L33UNHDiY<;Pk%_L(8Sf<<ddhb]=*E5iH:+n6:DQcDFY^Y;K\WKBu=6`kBETN<[E[X$Y(uiUg6ODFVZma:2>M"fA<*o=Nn+CKdeQAUQ-X7U-6`'/T(^%N$Sm6]A]ZG0X1B['oo87!53Ao^Ld"8F>9U.Mj.j<.YdiCL!A[InG=;L64IWKIna_<upPN9'BHSTuGKHRPaNq"LF#O>&IH[Y*J4oPW\m!3s7qHBB96Ci4bn']aM5X8]mgN&2NB9P98#ZZD:hADMiq(B9rC.^G+@ocS@+p\79WAaMPC!c'Bb?Unu;"KR)(j$qYFqn^dZ>Z]RH*p"66icKD<mH:X..i'&UM9L
KPOh9!bbRk-q2@&c;.7CXc0?Z4pf\/WC;i6O;B(K5q[;/_`^!94L%0$j<Kf...@Te>dA#lnT_H>%(?Z:M&C)(?SugZ.]9^Y>FXF$s9Ytd)I=0F%AC,pt7g@p@mV<gt^E=],R$MS6c?9sNM+AI1(O$
WBJY/,fY6J;iL1ieKcS6t3].HqAeM]'mem85q?H\62`T[iOMZ-/i]"mY#M1e(Km/4X>fL9lZgpGRpnW?Y3A#tD])88a'Yft+N8-tbH?7,Msp_#hL#ck>.-i)4eM!+X2brrXNLI.(`QL&s.RTK+J&6,.Zqp76BCXp6(R'G*;<G1MSP9iA[TFABK'.VK2,&s:UJ;0MO[<R%$l#YlG939*[<elRDd5C6bjN1!/L.T22]t,UI!O0k3jHp]0e6q2*Vc0/SX2nIT^'sG_h.4t"_sN$:HbF^6%^\1hb]Y06]ncetE7%aC4UUU3I]tEt1M6j"5`Wu5?j_#j&,ruP;L)GZ*e>sh45(:'!kDRhrHE%]IQL\^9W8%$"UXtVQbOp:qc/*c*3XFg\^G\hD;E8Dn0T%V,_:CYg\[%cY?:bA-TW)eh7J5j1u!2HSsC8*FSo'iHN(diU6BB9puY<.];Il=m)?tr)'=UF)tZgZhR]?8!P&.0pZn^i~>
endstream
endobj
31 0 obj
@@ -250,10 +250,10 @@
>>
endobj
40 0 obj
-<< /Length 2213 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2366 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-Gau0E9on$e&A@sBkgX4nQn)%kHROsYfci`0Y8HIHRf]rc>Ja",.T18p^V5p\=[SU?]d\iPLmEeV]U=':aF1Bth;8$pK9:"fp++lYX;oELIu`XCOo-s'!u0CZ[4/1Q018ENX>T]gq;Oh7$8>rdnQG`?@0OcqEW!bDEH'-H$LHF?]W9./8)sB9e`21/,t4*J=5tseIUNDKR+KEc+qlcemaf.X5$OKe;a`_aGpc#4`4e%;]oPsNSrDJ]@oAFp8eJ*7-Th@P%Qj+.:-n_kB'4G?Je:d]P6:i#8s6f8\TaOnh^]YbT&YJZnAE^NX56]47Y0[3m=s1eN'_@2eCq'S?bP,@([[';ap_e@q.cflr07Udh;-pO]_FnGs4HZ4o?2mooPjDBo_isLq0kfDO;IT8DpjT^nE)aPJo[2:$1OON:ZJ+I[8/I:lYI\`*25D&oNb`;8iMRP/^_Z_[(9'9K=Ka"+*kqgZ230C(_jsd;UhM<ib...@2geV9gVkAR>.H+(<eIN)oV:om7h2FEr'VnDFAqEh$=ukEQ*Lp`,aB6R1''nrgSMLA=//DAUC6f*`r?XeoEkA`8L3;*><hCoE",4ZAdOh,CTmS,28!5_dPEr]R>k2Mbh$I,7WdtR[2&GIs`!]k(8hpa&*`UQ3(nm[h8=.-_4bRqsh8B:pjJ"'lFJGp2Z5jO`O@d$3"9>GJL>fjY`Je*I(]^ld#;)\WGW2Jgm1ac5>XmHXOSq;KV1f0$cH4OH[%WIs@Rf+/c\r"/$e`AYi%CL.97[e-\q<pQ5m`<;M'JjIl,dg53S,S_ktNIZO/%qZE=l8*QBh+o>eLuYlWU*$6fq%_##X-/U".Z6+<'TcC@n-[4frDC:q[8*WIQtF:0WjLj>kJIM1WDp(b,63hBQDY:R*J-aS>u,VT97HJ15J8rM[t3fJ*jfY;<d_r[9kc6$=(
p-am0'>;chJ^t+=I+%f8Ea-#A2m8G9u8&-d(K'C>Dq"Wln;q%6gW=cODf14,J^Dhl;%bRCf>#LGc^a,"GdsAY(qKq^\&-SfrVB?"LrbeLb*&+R:G+;AZLH/04;EPQuo=<4%A/TPe4F#'gU%^Bg!_MYEnRa-.'?Xme9OMHSkaX?\ZUU-$\u*muL'jkeBBgt?-.p/hREONjjIC2Y<f;`^I"31CT<"u(<Lq822rEY'V1Q;62m<],PTHf.I)`Fm/!DK$'I)Ehb0ol48r8jh/UIatQYNJfT[3NjX3;HTdH*kjl:K";r\MZ<.Pk0?pn"/`h,^@tY&__gH1GUjEk4H_m6na6M_<VhgXc$_6\]m3&VC[0ZhmSE*Lfu1GWA%K$\`m]-hUmd)L,X_1Y<ZS!i75h"I??75>E-)+Xu,[*rI#;]QF(%i@14#A/03_+DjXu^N_0EZL?P15K(c#71Gd0hD1M&PuqeSC>.%#IAT4HrmGJ.1a.I<_kln=&LQjC7JXni$hgD.)t"I]Zm=<c"k.qhj3r!Q$e\S<n!7o"T[D*RP)b2XC2:j@8LDEP?'$Xj'M\7BdtRC'ac<2XCHFANh8=3FK0:0aK6NNe>HPXc087o7<8SY0-m:;T:cQ7OYCI^Ma;Ho2)R@[_CZ+h]aM,JV+Ppg)\,TijSZc.(der`<WOK`F)a\#]R^bIqdBD8.o1#0('@S#MK-RES*l.S2oh-q]R=@?Z@]kejXb5f"a`VlK?#<.rjpo4MY6_9?#XFq.erFeQ@,Yk9P?Ajhp)Ve2f':<OAO@QM0%LJEikNh1fgG&c<oI8g"r-CSPVRu4409isJI>f))?BA6'ZdVp2M50?Sq239\9L(S"Ss[qXe$<ZF'>*K1cqb3*_6r.Tf8.f\)@F%kj!4DR4o!G?t*Z$j6(#E9=e/W5G<UC.af:dUN1I(^mOTR/q+6ehOcm'I"C*K47td8>/B%Ed)aQLU!#oU%!Q].OX1Ao$sr-?lsnl1A@i
C-08a;Y-5ILIGFfX*o`3AL*TmCk$+KqgnE/;k0?cCDG[`S:2)_d`.$#EE1mMEVeE':IpRRH*p0?Dp=9itQi7K1[rVj+<Q8*'V$MMA;_+\d'V0$kW`I@,aN*=DY)mts1N?T?g55YYVn"Vl3X[mog/)[n<HE)`.%lMr@p761KC#0q%]m*J.fA41q`plR-(WX78X'b;LF'>Ke&27$OTEa6+*/l>Eop>2t;PNk<d^,VG~>
+GatU5D/\/e&H88.Tl3T8Qk?=lHqUefBS!&8C1%nD%\PE-&gE1$7+KD.rM]IcX;;gCJ\lMR8+PV[cQ1@#f2m/<Y_...@fXuk>@Us;',3N;V4G:qe!C:p!l9.3q>t'*>rJVVdHWrK+],kRVA!*>%%q%7*Ct+^&%]mrOP1e4rSCOLPSt!o]Nsk+k$8"]?U"-])#K8H/ILr2J@1'Y!;g>@L-20K1HsPlQFF1ogTO$6*cCU+.SoLDuDqU.%Ilaf?&prE]9S&X1LFY.Lk,o[HnXPdAj5O#*n+L%Ru1ClIc@c+=KE#,,5GXp\e0C'M/oaLP`o3!`kBLY[4Q(CZ'NT0?K5?B@8_hT4TcfU`+uC,%Eg0Ai@8n-H`nm!Nm<bhnW)R'fcQM,%p(ah!m@il3]6Zq&ld)6Q7q(gI(R3KKR@PLiqT@LF8aY@7"qnAOD82-O;T=V1ma.]CNk@Z`lqF`'^\B!=_N87nUEE<C8JiFZZ3>J!dL3i#.=hW,QIU+I>5tBFu`M7f$[m8IMkW8d(uTj`>Co0!\KXU!\\OlH[btB/6U0;H9Vk98[u;5^H=L@C'GC"U-$KqR'sF(I/Z8oJE=?`1f\*9ogFk,$[i<W_-&QQ?K+?.&rSiLh`]RN6op/O=P)f`@+FXE(@kmW%s@G!+OMPF?jD"T!6Bt(D+"WS&0WA)Ri't1Og9Z7n2'@BY-N
8=+[?rF'tK_d,]I1hW5)"hA(Z3qSr.bN/RHn5*peka_$?A`^CTJ+0ZB1L5\IU7rmU6m:G!:V2KG#V,Tl6M1`e^h_]m4/sM\:G^i@4DdeNsnBc0"#R&(RZ.NeLK98eHc)f.7WjZY(@NsQHl9fC*j=Vlr$*eVAQ^a["Jb"7hVjiOBXUqjL"8o-1D*,,sV2E-SQfk_QZE=4e5`Xeq`@>OJ+N7G8PR9b&rX&M9/N[X6ZN9X4Is!TeLT1Gs2uGYn9Ra%daO5+HV^sSc$X)lEWX$Lb[<"W=<LMd>BPE6klPU!aA<l2CY.ACKKLX*bLR]9"DI@_)pZmsaX\XSb$_`juHk]VJ+JW48,-cKGmN<?1b@T)\:Eld&W2Hl:SJOlZN,Bk`T"BX`:g'fpZGPjFaB+u[67'JS#4f<TEEB]0<8&)KeTYC&cNZS2Bu\UQPR2OpWBq$sMRP73^s/,11uebX;^tg4=>*+[#QU0E]G?%64f$I&Oq9%B6;NK>id<0XjO="UBQNc0Z.m)6K%Y0@hD"^=;2\(RjH@AV/O:S>ANDI$0t3q9R\\PGaTNsV0i_f^cYpGra3.R;a#fTJVH&9,?7"*_30iHQ.Y1H/?(jA&PpfQ"b$W#,o)Dc\Z[j+Xnqj-=$7=kAH&%k68W:aj?.5__AccTE)=WHaNbmI"p"5gW4u&3U`7soIio_"1(iQ6S*KmDi<Zm5"L$T%scanpELZ-e!^.JsR*"u9G,,?m-o#TJ,J:FJm+D'?8kA9U4Y"Jbu-S?STVNFc]Q<2cRE3a[SLjWaE<dSJ(m++GnjH3*LVIJtA=M'i=i/jgeo3<])2P1=;IU2'GGn.$9mh\%mfQ@aC)h3+Ch-J=88CoA]I\N2+gsR2!!hX6lOKsWa*@hLs55jl=ElobdB<,'*<Z%W%5sr'M,*b#,P]h/l@0OJHAh.`4Q\6HE)0Rp23@6MGqh2*5WqW9mo,'/11-cI\)u3$#lSu:QRcmu=r)Qs0\VGcR*BE
ul^P-&7,<SSY_/&pWDI@"EVWtp<3DU**`9IDA%,(m\TV.aH5e4"RI&Y]IP"4O`(aG,iVgIeC[N&=JatE"u3Pe^l(8],*J2N$gY7p(\l'a0P`fP:\Bk*Z!)["1;"&,M#2=,Q06`PZ,<)5M9`3KfC;d8V1Vh]&fG(:c4b)J7g-]6B@I=pjQltn;d,K<e7Oq>>=^31l)]JdeXj1"-k1:mA!ZV*3:>A^VV>Sd!pdUUW6F\`&(%W\YJV4a0ia^e*"[ge#tDKm"D7^L`c:%PGmbCCP^CK%o_>*p*#N>@kKhR9es"4cK08"RG+D-Nh0[36=R7mtt2IamRZ4a<oS=6[b4q-G&1X/Nf/:qeri"G))+?$4bOC@*""=jF;pI</2Yp)g0-'FF~>
endstream
endobj
41 0 obj
@@ -265,10 +265,10 @@
>>
endobj
42 0 obj
-<< /Length 2071 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2365 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-Gau0DD/\/e&H;*)Taq6oC^htRUg=Dp_m1luL,Rjk%gBBM-uIA?<`r>n&hh4Qr(aP.*Gs5Ep4<@F.$;PsH1&4)?dC&`bU/r0/r;QaJ[=&p]p_>AE?3s2i@c#7o+d6Ui&RWSk*)Dbf<`Tk-?<esA[\,=E0`O;r1hR*U^0OWS_;$Ym:,Z9:<H5mb'2Sn(\.FOq;%J;G]81g,S\6#Q!/$(<`f7)ktU)4[_#TWiGh1/D^U/NO+7M>e,A:D3`";V<m>!1n#l8pW_6J/8[]Ppen]u"WVO&K.;Lr1Q.i8^*9rsAE'4i>hY%g&-f[paTr[`H*EPfi4u\aan\4O=;(>^YOlKrK[a3!Zg(a4t\;Ydr?hE'ENk:)MEP5b9Hpg<Y&pVZA&I'Lg_9VUsP"i9[?ED14%e_+i%*r"-@AeN(!_S%EqmPDN+75tj'&V;:,hX8S;<R%tCT*mO!YB)/A/sXnPUTc^)30a^T>BatLp'hW9KV#Z1p2=RpDSHcQMKZ.1^[QeY4M(H1Z;;p+:LPKQ[mr<"p.:$V>gHglF;p]J[9LUmpaqA/m$?Tnkfb"r8jEW^\5.r*9VqJo$Q=+Mfi;A0;d3CPCFa$\XMA\RSmDk2i-G>gHqTuGaXe%J0'fqDN_:l0%qKSD]8O"cF6rF99_Fl6]39qjI;lC<FlKg1.fkC9r_B,#+;3%c'K1haC2[->S&e1?-&;2OGS13AXreq).g>@]&1/glO'DOY;@5.);>;[?HZ,V#$IrXnneH]$X2t.p]tH8J-\A!Vc`/3@4q)%Shmf*<KEZsUT'3=A</-@9G_tT6TlRZLF+:I01LG<0&a1(]5"W)8MNiG8[.fHb6d7Z:>2iHdt5WXF@Ntr!K/q,X(G\;g'Xbc8aXlF(?'(L]eZh<*E4ktb+)H(fVq!-`#IKNBRpXXM8#p8<BfI]<cj<ZQVCN6OBXZZ#)Pb3NH8*2c]Ie,gh]r(nOOrbGa/\nIOncM&/'2k["XE3Y`c<9)pBo
,\l>&`+Q&>%nQO-%\/dS\)9ks&@t@26dW*B6f<mA...@E5X>S0i:D7(/ct&'-heOL"2bCkYH`;PWS(tLUh>$!,G;/cPkQh5BBEp:i/Ed@g34taS#9G+J;MNMDk^\T@#=[ZKi]p`Ke.5$lc$$C-)#Gc0npYV'S@jDq::M#[CeFsM33l0JS%P)*Ds,RHGFXOA4m(<a,RC]4lKF'WQAZ!!t.9O8's"RYXbRGS+cEU5<+W+k#9-!fOH)F&I&9^c2Lu5/^I%#WjK24SXd,k3S?@jZT3OB7KhaIbtZ3+ic/k\9k9;.4-.BERqK@Y+Z*c`E.KUMN]i]'!chVBG>ORb#%nj3o3<<kXC;;aD*Bd)L92q'\\N1)!10SDAJD(cn.:P6.B45sGmd40h2X$Ao\u=Np(M':1T8:V_YJi'ZZUk8G+oF>^"PrY@P/na@."9%$+RIl@&ET%HEa[B8%*/b]]PKe_YC[.d([`QEDhdVd*,mbnmLt8oWRHbr%gP_ro&_*;VI%V^]].-T+24FFN=^K^AZ^/_#&_0SA%qjlga(Dj!/YD.6:$bRR.=+9d6dU9eEqoYs7d/8^H`uq]:S^pdiea[aS7r]/2s8OCr4dU+L(l7R@AI`KSEoirSMRPA@)oe(hnj$)8Y^f#h_YIVrf_<7T,h_3uS!$C7q&fbsm.1CWVE>,.RhN8.QbVXHZCh!"":V`kDm]C0rEj'mb8cNsdA%%.F4O#V*<4$ipXRGd)sn&nq7QE!p;i[b.,ZD?&`2X$fnN(nq\pdT>6LN,1PndK`a``0=1R(Tr/(,/nN+*dF,ZZEp-BVGMQd+B\MLd:QQ#+R*c;rU%*PP/MoB&/J?3fY]d[8:f>4dCBo1R1lK6_fX`]mW4l7g[$1LbLc0!q73Ne@k64e.r<+s#bg](gZfCE<@$iqkuc`.,(%>LR?G`$\_5F"P#2Xs&ad.:On&e3f_bX,74bC"^I]B7k#!rj9m
>g*W:NbI9o%#a_G+BZL0h@`t]l6(fu-T[9J#[a9>nbc^4<*QKZRf4#b8BaYSO/mF$BkkjGV#>#hT8+8[I*gu$16#s\~>
+GatU5gQ(#H&:O:Skb18)2G8rBWCqaWBUWgh,.An'"DG88BUcH\aHA&NEAm%$GB=q0.G:1ZJ;l!naI0q%1PbVOX4dDK30Y$,\Q[<aB/?<C$id.mh%1Y(_C*(@SZA=Qf>CUYX/4,4=;?me$RT,'iSbs2gL6neC)F%Y,fpO9\euP(jT<]tjH9&CF7gLI5^OTaoqUf#T/.+6mIHe>YD]1->BdVJGj"KP@ff].ZrpT+f)Dq^a,.i'dsd_.6h4Z\;O'nW-Iueu^_b5%:?;u',S:5Q%te[]HnP!n=m0\s]YLHq^"fVfld)^.4dWDM`/j;Tq!7%=J<)f*7I6=SQ>.;8`<\1*/Tk4K6)`Bk32>PTCOfq+SHd$G:[$HFnmA5>.dWh^F8sm/,4'bZ>MNj\l$=Vf:R'L\0CqMYd-AebTO@hdVW!@klZlRqbBek\%pD4MnF$sr@G_4$P$1VDRN>ZS8"Go+M:56[bu5>N:2/B41ks48cZXM%,7*^;isbf3a(r.2i<V!3dj/V30rs&=1c-Y5MI!c"eb.Lb6^>Qi`Mpj#I#eD9it/+-L[b+9]rneY$:bjDh`!.HFJZ]NjaMRp?P&ibVO>Y*A1u(O[$lnqQL?(kQZhX;KE-2D(9nYgO0Yog1,;PnI[_YKih.&_L1a;gXO+N5mu:4\5lG"@L;>\(nNp!VUiD%`,SK`#+=XFD`"m@h:G!'RO;,'>3/3u/XU:8,G&H!CKTLMRoRd3T?[4Gds*4F8(e\2ka85,Pm,(t+X7Q%q1ZNAl7G)o98,s.g*:?7K;SR^E3%bM+i#J82ZeoCkY<(usj7HajZ_4Op]mTck].2BL*+Vu(5C3)#iE#:CPPKU6bJ',jhor8Gh't,'%TWs[7^)P973lQCgC8c$1<p71d/i4</+GR!m#WQ^6qM;2b;*@8]7$i>Z%B9A'/W>@66"F>8Rh-C`ZtgD,A7R:72PT&DX)o@N37`Q0rBY1f.knUiT7pu(_s^#TODY-B^E?
sT9OKt[5oFHj0[=oA\X!0lU\rC%=efAVrtB5^6"J-#7dr>05*`Tk2aZf1jkd"7Sj@Bl-'5q3&%\Yjfk_LX7+U\Zu!ldCXP!G#4kmWOQq`Z,b(u<]V-=&W1A-2VI/B^0_<p*UIBrZ.*5f-H`mjcJb`EH`(4NoD%9ghfaR&.;4.oI.L`_+Rk=*V[q0"*bYnn<Cr$QHI9-/<Q7=DdSkjS9`*nSda@ij<A,b_u3fZeM_,[@ioDr-;.sF(?O3)Z,lC_#0n^:)lXFa1&+S2\QV*Js?L!'at8"?F,GaV'((N3<EES$]4q&2Gm<(>AOL%I&5Y3V,1ZQ.qo12>Sc-TsXPhhHZu>%ZZ;EaG>)8)^PqF-%jq4=e`D"];JJa5&+&UCZTkA[`+r0+&!n>+7sNcClH4!k,LhJjAB<1p%tp2l,lNj;CYcV@oD4#rCUsk8/PMZk#QW90<!ll;e`7:0Y1Whrft=QnBO'SEIDU>7Ac:W%SfokFl)6gOZJ3,Pjsd:_7orVV*G?HUB?(gSh]Cd?[_pLc:C^XGkV16c-lNDpN9O;ac:]^skH%b/@bJcXqU(ZOb7XC.H?JK_@[unY'qk,kTFAZc>)"@[rq$ZKhcu"ZGf[(Dc:s1P\9]6s]E+%X,e"o!?"A*3dRlod]iCb(M;uDK$+8e,HMkY$g9(F7A6&K2i4"7GSQn4)r3Klu-pA!Fu50<%i&d&*6jZr<S&-VX,:?l)^9Yo2L<];S1iCKC]F&o0LNGr3#s.4s_B8U\mOM9Ja&$>c>mWlK?8=a1*7#cp;N)J8W?2@Wi/gAe`4*e9<L0&CMjW5L\5TLhfJ&[Q'#:g*^otq2ZCHD<6e'N;+D[WB):q!%`1;NAB)%NZtbKOKQf*3+cUn^Ucj'$SH<dOOZ(O@'O^/D;?PiE8`(X]5S4uACN,>XjiGZk%8,\O(-)dRgii-0Rl8Z:nrqZ\3#M,f^&o>(n?<irsLm(J'SX^J(ru,*3UtE!e0=M'6Bj<G*c
#/rUFBG/($qXeQ<I1g%WBcrs^&92(-J:I^Er?NAqNO>uN?@,=$&7h'>1DFV)DE3'>U3i%-T08a9hTFWjE(Ak1D9cJ&jJ\0MW0Y.<'V#kuATDYm)I?/X]CiDGq)>;[<Mr`i`M,YG,"`\r,>GtK.q0B]>`'0YnBbON$3M7j-amHEuj6WrepN\/mB;'.a*UOIuBKcTOfLMlIhTbDqi[*-*`m8>J@lcAtP0#"IB[,JOr:ofT$"lWYh\*ei0^2+Q;,nX+/#laGLp"hs#)j]O:h%goqKIl$_s4Sq*M1"98n4'H^J'%CCH+_hq@BOAWikpS_Xr'WFRqW'kf>k%&r%;4>6[RSC4LqPHUss@d-HN9f_Te`[]0Kj0a.UaG*s(=!#OBYF"9~>
endstream
endobj
43 0 obj
@@ -288,7 +288,7 @@
45 0 obj
<< /Type /Annot
/Subtype /Link
-/Rect [ 415.788 579.967 451.116 567.967 ]
+/Rect [ 403.788 525.147 439.116 513.147 ]
/C [ 0 0 0 ]
/Border [ 0 0 0 ]
/A << /URI (http://dmoz.org/)
@@ -297,10 +297,10 @@
>>
endobj
46 0 obj
-<< /Length 1777 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1818 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-Gat%$gQ(#H&:O:SW'Go.JmFh@86m"p6W,a,Jn!2@NV9%p&DEjqTsElS<87Y7IX=RDCM6@V#6?`WXLXl^F-5<1Aj7kZJ'TO""_4783F9Cg`KX1P#QjcOA:8mH@M3^bd,&g:lg2l*2LcZmXSue9Sl(S\*ef*fCF*O[6KTkChB+D:Bg0in]@t!kmK-SlqI6Rtj7ajLl2Biu5+F#5&W,SEP%pU;X-;Xa#@A!&kAR3;GjD</hrc8B6u1^nD/W#XkL/n)4.9CbLRfm@WA%>Dgip1Zi5m:=;%I=O'06;qlR*-5lqcWFdCCk0M/aM-^"MZ*QG]7TC\A:VO\n`kd$J`?B\6K?r?&aa=@I7J@*W*g2uamNX\(ApahE]PM^$#"^?F+ui&pk2!^T4BHp,<cPlOI0Bj`S+beHP".6%WcNaQds#0tk<MR^)RBl8^d6/R(?-VW%3E'rUA%To^08sQ/!pM-Hr17V-"T&tn/#KuGhGK5e3O839/6(fCnJL2X."Od;Hen"XFTU5Dj^%\pk1uDP)9#QZRV6jtRB$s2OE)h)2_pAkE<N2PAN\87_/oV\kJ4HaYS`NGXGoW=^XitYf.C_h"_G/![R5pM`2%(#l"=h1T(-Ep!\u&\f0H`Oe-X#7MHDE87.h)N]?c[041>9Qu%#BkW6-I61&qWHlp-dU!*'q9fCSrsu2QTl<H(t_j,DCV6F>E/<Y*HKVqK%Whe05)E3n"j-R8j&7>q(0eZq_E4Hbe6)1PeMNjrk="/;M_mYN-N/ome,E(6^/VMIMYchk*YZU*7V@7Sr[VZ+Kt2FSemFI_SE9QidQm`gO\I,u<P-BX<,lZhZK=_mo/O''8/Yd;VMno7\HK7H\OSP]9Kr\qW<D$F-l#@7Qa.fhW*X5]%jmd$$.fN+9B5DA?M7bkRIF@:$i8JYN2Bir'dr.kP/r(<JQ[I@lY37j9[C4>SI$&0*.1#</"O.RrCbm@XX#E:oP"(riD*pf8;5N2\-2qXM%
M>=V9Q(qdsGN+c)Bk7TZS!38':%Y/,UAlBbCV%.\dW8n8iDULX+eO!r7,'#hDc+*,_YVA;_BV.(I:Z]^]QXeG63$beZk&jg-4"&W;Sp704o"B(-\1g#.M;r+;^NjEl.\#2TRE;6bn2sr]+$52Q`cAGunjpPeNV^>]Zms8'o9[pJjilmA]-S-B]Q1Om_Rfs6h4e'=d(3MaLP(NF*&][^hj<q1...@GF>.9)b]qoq%pN=5FZ85Z@8G&JBeBiUUnb&Yqin>AWRK!_S2XT<%>Drq!Do^^#.8f9.@fRIA]J;#k=HnXN26[`Rc4Wf1W;oc;a&"jo[(?XN(2"m')*!!6ia6)E/\"dDtLT0WQ*\`o-UkbP;uP"<u*cT+ZJCb(G8HkRaS>O:F`L'^YjSF0e6.r/Zb_qo6&(t8Rd1J44I'@VIaM5W#@DZdlVKf"G7.;!-(:k&Doc&M#)0^Ij=P5M;\?ki'"NRFi),;4$#&D5sB+eh;?Q5&@\ODpCWDK]Q41)BAt+O%3f4.B3XK17T]Di!qL=b63*YN+,#Xf,`J1^=#E?EjoVi&e&l>p6J5q8&h`LGY5>$#EGP(#)#Kl/?W9\>es=77G'j9LGpjp>J4YPZOBt>9he@NrqkkXoD!dn]1RDo;ED#>3lM>=DGRYl8T-)>36K:OZhUZ&FTWacR+L-)cC(H<k&tO0Y@HrLSW;R5O^;[V~>
+Gau`T>Ar7S'Roe[d!u.2K8(^%;3q90BSNqI0Vho_C_,i^dP>YIPsnKCis$@ogNR`I%rKF3?8`KgF_L;M5CVclGI,E`Sa[IDe=/$;e6>Y78)YQ]&diEJi$>+L2qrS,]Xl_lfA6rQoae7M>$58WNL\0!XfQ)F"]^pF;eTU=9.S(G[t7qHR+TOrekiBC.TMV2KjC04NU4oIb[_>hWK\R0]g'3`:C#kTN!+dlmZG)W1?f_QD]]@pa$s)KL`G[#b^.2pUUN0^WlqJGfgS@Z4\3A*kOf@la^5]RP(9eCC=YV_T<r$GT7gOtm(3i9@A-aPDa*u>E`^jSnJH-/m0:m'ij1Q:GudUs>oRBH)uD-cW)=OF=41"7o4df?0gAq2U9Eq[%0Urp`AY;Y)UOQKU336jhgNeTMT(sN.DN;UrG<X9b]:(_I3(-mP)tKq26#$3[Mur_pu$lT,]PZ0WZE9qP_9XBj8%PKiDcf:`#e$pWlIW_2'j*56&4cuQ+<nadB!]YbDe-:<9dbo\.!p4n-KVO#_iYZr"98B*YOq>mgp1P'"Hgbd/S#,#cRKm@0l]s)hL$pTsu(o_b'pLd<NB4!($W)"G;f!R!0+SF-o!UB\_msThKV%Gf[Obng4:[ktZP+aTB0/cmQ*h_(!H_L&1(roB)P*O<Tb]6Qu8UHCqYi"XH@eIp_MHh<`\ieunsRRqN*,9VuJi7+;gdSQ\'e0RHhUfU9%N1AKs$<?h7E:7Gn8Qg,%F@iE*1c*6GlHlC7A<ht'%3%YNR319l,qJ(`bl6l80k]1[;J+hF+J=?Bq-:#7-2^K``W&si1,<Qn-r&3/$mLG:N]m,F*:;amY"gmAD"Z(Q6Z:D5k2-d1&T%'3WSI<Q%$X<f[M*fgPcLRpk4RnIk!<b<"+q_&T1D/c[hHr8"p`^o6^:]-g3bP?_fHq;jl@mcY?D"?t*tU'Wi/DsCZs+gmQmXaDY:S/q=b?3Y5l?)8$&ChLp!@B^J;nft8Wq$
4n8!HVnrqqh5o?pbG($tY,FIl!d:YfjITU3m6\8Db(bW'tj^YHTNDp_@JRNL_d=6K8itADn%-6-=`a^X\0ZHM/-5Lo7jB=0@<jRk]DD7p0Q#f01Z3<BCrSf*H3Qht@MXN_IV\%>P_f,9f*$p;Kn-[YE6)ustfK]L+4XP@ZR.%>.bi>JH+g4Y&GfLAnfI3I>$t@g%faJ;FBl$J(,225Q*.4u_I!RpmXUjLC^[nn6G&@Pco8,u$?*TZ4&SHERibjV;m[n3r;jgEUo?M$sSFkTDHp4',4BI0_EDBUX?$u]\2SdV10@PV[bo(IsnpD0[E/$!V$?-mqemHD>%2tn_V%qcJ:1<(DgMJhHpu0-WH73Tq6uXgD[&.'.W$.dKdO+Y"EcN(2XfZ2EkaBm[+,qUP4\-s[,BGi3.VI_i!=A%O)nNIL40Y>nfRcMHgCPic^8/jlSIZJaS@'ieW""92-d^NihXPRLN$WMKHso]^n)#p,fYR6=\dXf3/gEIc?91>*!PL2TcuX_tHCfZe-&`(l<+r;q12mFJIf1k6@Kgbe@od0\M5o7kI=1KX=MTa]6f!9n@bABq!!Mt#]3iWB\93YLgNsHJCu+5ojZP\5Poq1"`b]RkD2;t5RG4+KFP=9V583T1C(6o^:0#ln\\[Y?41=Y;A42N,eu/>3oqJt4h9P5iq3HdLZKfR>S.UU\W_d,$(NnCIPmpqj(gQ&]A&#f:_V,XTd1-][,rQ)58cTNV,]FEXiJh``r*F<6b&"ID<nA]9q5hL`'isV0TbZEN)o;)t?5aq*[.:C!$j4OI(BeSjH[@8"[OWW(H7Df#F@#a>7aWbU~>
endstream
endobj
47 0 obj
@@ -320,7 +320,7 @@
49 0 obj
<< /Type /Annot
/Subtype /Link
-/Rect [ 141.336 194.134 244.02 182.134 ]
+/Rect [ 141.336 145.214 244.02 133.214 ]
/C [ 0 0 0 ]
/Border [ 0 0 0 ]
/A << /URI (http://localhost:8080/)
@@ -509,43 +509,43 @@
17 0 obj
<<
/S /GoTo
-/D [41 0 R /XYZ 85.0 599.68 null]
+/D [41 0 R /XYZ 85.0 586.48 null]
>>
endobj
19 0 obj
<<
/S /GoTo
-/D [41 0 R /XYZ 85.0 372.707 null]
+/D [41 0 R /XYZ 85.0 306.707 null]
>>
endobj
21 0 obj
<<
/S /GoTo
-/D [41 0 R /XYZ 85.0 307.173 null]
+/D [41 0 R /XYZ 85.0 241.173 null]
>>
endobj
23 0 obj
<<
/S /GoTo
-/D [43 0 R /XYZ 85.0 639.28 null]
+/D [43 0 R /XYZ 85.0 553.4 null]
>>
endobj
25 0 obj
<<
/S /GoTo
-/D [43 0 R /XYZ 85.0 397.787 null]
+/D [43 0 R /XYZ 85.0 313.387 null]
>>
endobj
27 0 obj
<<
/S /GoTo
-/D [47 0 R /XYZ 85.0 527.86 null]
+/D [47 0 R /XYZ 85.0 446.02 null]
>>
endobj
29 0 obj
<<
/S /GoTo
-/D [47 0 R /XYZ 85.0 381.567 null]
+/D [47 0 R /XYZ 85.0 319.447 null]
>>
endobj
50 0 obj
@@ -556,74 +556,74 @@
xref
0 69
0000000000 65535 f
-0000017176 00000 n
-0000017262 00000 n
-0000017354 00000 n
+0000017559 00000 n
+0000017645 00000 n
+0000017737 00000 n
0000000015 00000 n
0000000071 00000 n
0000000922 00000 n
0000001042 00000 n
0000001137 00000 n
-0000017499 00000 n
+0000017882 00000 n
0000001271 00000 n
-0000017562 00000 n
+0000017945 00000 n
0000001408 00000 n
-0000017628 00000 n
+0000018011 00000 n
0000001545 00000 n
-0000017694 00000 n
+0000018077 00000 n
0000001682 00000 n
-0000017760 00000 n
+0000018143 00000 n
0000001819 00000 n
-0000017825 00000 n
+0000018208 00000 n
0000001956 00000 n
-0000017891 00000 n
+0000018274 00000 n
0000002092 00000 n
-0000017957 00000 n
+0000018340 00000 n
0000002229 00000 n
-0000018022 00000 n
+0000018404 00000 n
0000002366 00000 n
-0000018088 00000 n
+0000018470 00000 n
0000002503 00000 n
-0000018153 00000 n
+0000018535 00000 n
0000002640 00000 n
-0000005311 00000 n
-0000005434 00000 n
-0000005503 00000 n
-0000005696 00000 n
-0000005897 00000 n
-0000006084 00000 n
-0000006260 00000 n
-0000006450 00000 n
-0000006622 00000 n
-0000006796 00000 n
-0000009102 00000 n
-0000009210 00000 n
-0000011374 00000 n
-0000011497 00000 n
-0000011524 00000 n
-0000011694 00000 n
-0000013564 00000 n
-0000013687 00000 n
-0000013714 00000 n
-0000018219 00000 n
-0000013889 00000 n
-0000014052 00000 n
-0000014247 00000 n
-0000014494 00000 n
-0000014732 00000 n
-0000014992 00000 n
-0000015230 00000 n
-0000015443 00000 n
-0000015793 00000 n
-0000016020 00000 n
-0000016247 00000 n
+0000005206 00000 n
+0000005329 00000 n
+0000005398 00000 n
+0000005591 00000 n
+0000005792 00000 n
+0000005979 00000 n
+0000006155 00000 n
+0000006345 00000 n
+0000006517 00000 n
+0000006691 00000 n
+0000009150 00000 n
+0000009258 00000 n
+0000011716 00000 n
+0000011839 00000 n
+0000011866 00000 n
+0000012036 00000 n
+0000013947 00000 n
+0000014070 00000 n
+0000014097 00000 n
+0000018601 00000 n
+0000014272 00000 n
+0000014435 00000 n
+0000014630 00000 n
+0000014877 00000 n
+0000015115 00000 n
+0000015375 00000 n
+0000015613 00000 n
+0000015826 00000 n
+0000016176 00000 n
0000016403 00000 n
-0000016516 00000 n
-0000016626 00000 n
-0000016737 00000 n
-0000016845 00000 n
-0000016951 00000 n
-0000017067 00000 n
+0000016630 00000 n
+0000016786 00000 n
+0000016899 00000 n
+0000017009 00000 n
+0000017120 00000 n
+0000017228 00000 n
+0000017334 00000 n
+0000017450 00000 n
trailer
<<
/Size 69
@@ -631,5 +631,5 @@
/Info 4 0 R
>>
startxref
-18270
+18652
%%EOF
Modified: lucene/nutch/trunk/src/java/org/apache/nutch/db/DistributedWebDBWriter.java
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/java/org/apache/nutch/db/DistributedWebDBWriter.java?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/src/java/org/apache/nutch/db/DistributedWebDBWriter.java (original)
+++ lucene/nutch/trunk/src/java/org/apache/nutch/db/DistributedWebDBWriter.java Fri Dec 16 09:51:05 2005
@@ -1656,7 +1656,7 @@
}
// Bump number by 1.
- DataOutputStream out = new DataOutputStream(nfs.create(openCounter, true));
+ DataOutputStream out = nfs.create(openCounter);
try {
out.write(OPEN_COUNTER_VERSION);
out.writeInt(numOpens + 1);
@@ -1793,7 +1793,7 @@
// 7. Finally, write out the total num of pages and links
//
File sectionStats = new File(newSectionDir, STATS_FILE);
- DataOutputStream out = new DataOutputStream(nfs.create(sectionStats, true));
+ DataOutputStream out = nfs.create(sectionStats);
try {
//
// These counts are guaranteed to be correct; they're
@@ -1854,7 +1854,7 @@
}
// Bump that number by 1.
- out = new DataOutputStream(nfs.create(closeCounter, true));
+ out = nfs.create(closeCounter);
try {
out.write(CLOSE_COUNTER_VERSION);
out.writeInt(numCloses + 1);
Modified: lucene/nutch/trunk/src/java/org/apache/nutch/db/Page.java
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/java/org/apache/nutch/db/Page.java?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/src/java/org/apache/nutch/db/Page.java (original)
+++ lucene/nutch/trunk/src/java/org/apache/nutch/db/Page.java Fri Dec 16 09:51:05 2005
@@ -64,6 +64,10 @@
md5 = new MD5Hash(); // initialize for readFields()
}
+ public Page(UTF8 url) {
+ this.url = url;
+ }
+
/** Construct a new, default page, due to be fetched. */
public Page(String urlString, MD5Hash md5) throws MalformedURLException {
setURL(urlString);
Modified: lucene/nutch/trunk/src/java/org/apache/nutch/fs/FileUtil.java
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/java/org/apache/nutch/fs/FileUtil.java?rev=357197&r1=357196&r2=357197&view=diff
==============================================================================
--- lucene/nutch/trunk/src/java/org/apache/nutch/fs/FileUtil.java (original)
+++ lucene/nutch/trunk/src/java/org/apache/nutch/fs/FileUtil.java Fri Dec 16 09:51:05 2005
@@ -18,6 +18,8 @@
import java.io.*;
+import org.apache.nutch.util.NutchConf;
+
/**
* A collection of file-processing util methods
*/
@@ -52,10 +54,10 @@
}
if (nfs.isFile(src)) {
- DataInputStream in = new DataInputStream(nfs.open(src));
+ NFSInputStream in = nfs.openRaw(src);
try {
- DataOutputStream out = new DataOutputStream(nfs.create(dst));
- byte buf[] = new byte[2048];
+ NFSOutputStream out = nfs.createRaw(dst, true);
+ byte buf[] = new byte[NutchConf.get().getInt("io.file.buffer.size", 4096)];
try {
int readBytes = in.read(buf);
@@ -71,7 +73,7 @@
}
} else {
nfs.mkdirs(dst);
- File contents[] = nfs.listFiles(src);
+ File contents[] = nfs.listFilesRaw(src);
if (contents != null) {
for (int i = 0; i < contents.length; i++) {
File newDst = new File(dst, contents[i].getName());