1
votes

fetch of httpurl failed with: org.apache.nutch.protocol.ProtocolNotFound: protocol not found for url=http at org.apache.nutch.protocol.ProtocolFactory.getProtocol(ProtocolFactory.java:85) at org.apache.nutch.fetcher.FetcherThread.run(FetcherThread.java:285)

Using queue mode : byHost fetch of httpsurl failed with: org.apache.nutch.protocol.ProtocolNotFound: protocol not found for url=https at org.apache.nutch.protocol.ProtocolFactory.getProtocol(ProtocolFactory.java:85) at org.apache.nutch.fetcher.FetcherThread.run(FetcherThread.java:285)

I get above result while running nutch1.13 with solr6.6.0

command i used is

bin/crawl -i -D solr.server.url=http://myip/solr/nutch/ urls/ crawl 2

below is plugin section in my nutch-site.xml

  <name>plugin.includes</name>
  <value>
protocol-(http|httpclient)|urlfilter-regex|parse-(html)|index-(basic|anchor)|indexer-solr|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)
</value>

Below are my file contents

    [root@localhost apache-nutch-1.13]# ls plugins
creativecommons      index-more           nutch-extensionpoints   protocol-file                 scoring-similarity         urlnormalizer-ajax
feed                 index-replace        parse-ext               protocol-ftp                  subcollection              urlnormalizer-basic
headings             index-static         parsefilter-naivebayes  protocol-htmlunit             tld                        urlnormalizer-host
index-anchor         language-identifier  parsefilter-regex       protocol-http                 urlfilter-automaton        urlnormalizer-pass
index-basic          lib-htmlunit         parse-html              protocol-httpclient           urlfilter-domain           urlnormalizer-protocol
indexer-cloudsearch  lib-http             parse-js                protocol-interactiveselenium  urlfilter-domainblacklist  urlnormalizer-querystring
indexer-dummy        lib-nekohtml         parse-metatags          protocol-selenium             urlfilter-ignoreexempt     urlnormalizer-regex
indexer-elastic      lib-regex-filter     parse-replace           publish-rabbitmq              urlfilter-prefix           urlnormalizer-slash
indexer-solr         lib-selenium         parse-swf               publish-rabitmq               urlfilter-regex
index-geoip          lib-xml              parse-tika              scoring-depth                 urlfilter-suffix
index-links          microformats-reltag  parse-zip               scoring-link                  urlfilter-validator
index-metadata       mimetype-filter      plugin                  scoring-opic                  urlmeta

I'm stuck with this issue. As you can see i have included both protocol-(http|httpclient) .But still fetching url failed. Thanks in advance.

NEWER ISSUE hadoop.log

2017-09-01 14:35:07,172 INFO solr.SolrIndexWriter - SolrIndexer: deleting 1/1 documents 2017-09-01 14:35:07,321 WARN output.FileOutputCommitter - Output Path is null in cleanupJob() 2017-09-01 14:35:07,323 WARN mapred.LocalJobRunner - job_local1176811933_0001 java.lang.Exception: java.lang.IllegalStateException: Connection pool shut down at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462) at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529) Caused by: java.lang.IllegalStateException: Connection pool shut down at org.apache.http.util.Asserts.check(Asserts.java:34) at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:169) at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:202) at org.apache.http.impl.conn.PoolingClientConnectionManager.requestConnection(PoolingClientConnectionManager.java:184) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415) at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:481) at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:240) at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:229) at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:149) at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:482) at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:463) at org.apache.nutch.indexwriter.solr.SolrIndexWriter.commit(SolrIndexWriter.java:191) at org.apache.nutch.indexwriter.solr.SolrIndexWriter.close(SolrIndexWriter.java:179) at org.apache.nutch.indexer.IndexWriters.close(IndexWriters.java:117) at org.apache.nutch.indexer.CleaningJob$DeleterReducer.close(CleaningJob.java:122) at org.apache.hadoop.io.IOUtils.cleanup(IOUtils.java:244) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:459) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392) at org.apache.hadoop.mapred.LocalJobRunner$Job$ReduceTaskRunnable.run(LocalJobRunner.java:319) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2017-09-01 14:35:07,679 ERROR indexer.CleaningJob - CleaningJob: java.io.IOException: Job failed! at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:865) at org.apache.nutch.indexer.CleaningJob.delete(CleaningJob.java:174) at org.apache.nutch.indexer.CleaningJob.run(CleaningJob.java:197) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.nutch.indexer.CleaningJob.main(CleaningJob.java:208)

1
Did you try to fetch it just with protocol-http?Jorge
yes. still that fetching failed. do i have to include plugin somewhere elseSMJ
could you paste the output of: bin/nutch parsechecker your_urlJorge
[root@localhost apache-nutch-1.13]# bin/nutch parsechecker 183.134.100.180:8983/solr/nutch fetching: 183.134.100.180:8983/solr/nutch Exception in thread "main" org.apache.nutch.protocol.ProtocolNotFound: protocol not found for url=http at org.apache.nutch.protocol.ProtocolFactory.getProtocol(ProtocolFactory.java:85) at org.apache.nutch.parse.ParserChecker.run(ParserChecker.java:136) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.nutch.parse.ParserChecker.main(ParserChecker.java:267)SMJ
[root@localhost apache-nutch-1.13]# bin/nutch parsechecker theguardian.com/media/bbc fetching: theguardian.com/media/bbc Exception in thread "main" org.apache.nutch.protocol.ProtocolNotFound: protocol not found for url=https at org.apache.nutch.protocol.ProtocolFactory.getProtocol(ProtocolFactory.java:85) at org.apache.nutch.parse.ParserChecker.run(ParserChecker.java:136) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.nutch.parse.ParserChecker.main(ParserChecker.java:267)SMJ

1 Answers

2
votes

I somehow solved the issue. I think the space in nutch-site.xml was causing issue new plugin.includes section for others coming here.

      <name>plugin.includes</name>
  <value>protocol-http|protocol-httpclient|urlfilter-regex|parse-(html)|index-(basic|anchor)|indexer-solr|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>