2016-11-01 3 views
1

Apache Nutch 1.12とApache Solr 6.2.1を使用してインターネット上のデータをクロールし、それらのインデックスを作成するとエラーが発生します:java.lang.Exception :java.lang.IllegalStateException:https://wiki.apache.org/nutch/NutchTutorialApache Nutch 1.12 with Apache Solr 6.2.1エラーを返す

  • Nutchののコピーのschema.xmlをし、Solrのconfigフォルダにそれを置く:接続プールは

    をシャットダウン私はNutchのチュートリアルから学んだとして次のことを行っています

  • シードURL(newspapのer company)のNutch
  • のURL/seed.txt
  • は、nutch-site.xmlのhttp.content.limitの値を "-1"に変更しました。上記

    bin/crawl -i -D solr.server.url=http://localhost:8983/solr/TSolr urls/ TestCrawl/ 2 
    

    、TSolr:シードURLは新聞社の一つであるため、私はちょうど私が、次のコマンドを実行すると、私はエラーを取得するHTTPコンテンツのダウンロードサイズ制限

をelimiateしなければなりませんでした既に推測できるように、Solr Coreの名前にすぎません。

私は以下のhadoop.logでエラーログを貼り付けています:あなたは上記のbin /クロールコマンドで見ることができるように、私は2ラウンドのNutchの実行のクロールを持っていた

2016-10-28 16:21:20,982 INFO indexer.IndexerMapReduce - IndexerMapReduce: crawldb: TestCrawl/crawldb 
2016-10-28 16:21:20,982 INFO indexer.IndexerMapReduce - IndexerMapReduce: linkdb: TestCrawl/linkdb 
2016-10-28 16:21:20,982 INFO indexer.IndexerMapReduce - IndexerMapReduces: adding segment: TestCrawl/segments/20161028161642 
2016-10-28 16:21:46,353 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/staging/btaek1281422650/.staging/job_local1281422650_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring. 
2016-10-28 16:21:46,355 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/staging/btaek1281422650/.staging/job_local1281422650_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring. 
2016-10-28 16:21:46,415 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/local/localRunner/btaek/job_local1281422650_0001/job_local1281422650_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring. 
2016-10-28 16:21:46,416 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/local/localRunner/btaek/job_local1281422650_0001/job_local1281422650_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring. 
2016-10-28 16:21:46,565 INFO anchor.AnchorIndexingFilter - Anchor deduplication is: off 
2016-10-28 16:21:52,308 INFO indexer.IndexWriters - Adding org.apache.nutch.indexwriter.solr.SolrIndexWriter 
2016-10-28 16:21:52,383 INFO solr.SolrMappingReader - source: content dest: content 
2016-10-28 16:21:52,383 INFO solr.SolrMappingReader - source: title dest: title 
2016-10-28 16:21:52,383 INFO solr.SolrMappingReader - source: host dest: host 
2016-10-28 16:21:52,383 INFO solr.SolrMappingReader - source: segment dest: segment 
2016-10-28 16:21:52,383 INFO solr.SolrMappingReader - source: boost dest: boost 
2016-10-28 16:21:52,383 INFO solr.SolrMappingReader - source: digest dest: digest 
2016-10-28 16:21:52,383 INFO solr.SolrMappingReader - source: tstamp dest: tstamp 
2016-10-28 16:21:52,424 INFO solr.SolrIndexWriter - Indexing 42/42 documents 
2016-10-28 16:21:52,424 INFO solr.SolrIndexWriter - Deleting 0 documents 
2016-10-28 16:21:53,468 INFO solr.SolrMappingReader - source: content dest: content 
2016-10-28 16:21:53,468 INFO solr.SolrMappingReader - source: title dest: title 
2016-10-28 16:21:53,468 INFO solr.SolrMappingReader - source: host dest: host 
2016-10-28 16:21:53,468 INFO solr.SolrMappingReader - source: segment dest: segment 
2016-10-28 16:21:53,468 INFO solr.SolrMappingReader - source: boost dest: boost 
2016-10-28 16:21:53,468 INFO solr.SolrMappingReader - source: digest dest: digest 
2016-10-28 16:21:53,469 INFO solr.SolrMappingReader - source: tstamp dest: tstamp 
2016-10-28 16:21:53,472 INFO indexer.IndexingJob - Indexer: number of documents indexed, deleted, or skipped: 
2016-10-28 16:21:53,476 INFO indexer.IndexingJob - Indexer:  42 indexed (add/update) 
2016-10-28 16:21:53,477 INFO indexer.IndexingJob - Indexer: finished at 2016-10-28 16:21:53, elapsed: 00:00:32 
2016-10-28 16:21:54,199 INFO indexer.CleaningJob - CleaningJob: starting at 2016-10-28 16:21:54 
2016-10-28 16:21:54,344 WARN util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
2016-10-28 16:22:19,739 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/staging/btaek1653313730/.staging/job_local1653313730_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring. 
2016-10-28 16:22:19,741 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/staging/btaek1653313730/.staging/job_local1653313730_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring. 
2016-10-28 16:22:19,797 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/local/localRunner/btaek/job_local1653313730_0001/job_local1653313730_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring. 
2016-10-28 16:22:19,799 WARN conf.Configuration - file:/tmp/hadoop-btaek/mapred/local/localRunner/btaek/job_local1653313730_0001/job_local1653313730_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring. 
2016-10-28 16:22:19,807 WARN output.FileOutputCommitter - Output Path is null in setupJob() 
2016-10-28 16:22:25,113 INFO indexer.IndexWriters - Adding org.apache.nutch.indexwriter.solr.SolrIndexWriter 
2016-10-28 16:22:25,188 INFO solr.SolrMappingReader - source: content dest: content 
2016-10-28 16:22:25,188 INFO solr.SolrMappingReader - source: title dest: title 
2016-10-28 16:22:25,188 INFO solr.SolrMappingReader - source: host dest: host 
2016-10-28 16:22:25,188 INFO solr.SolrMappingReader - source: segment dest: segment 
2016-10-28 16:22:25,188 INFO solr.SolrMappingReader - source: boost dest: boost 
2016-10-28 16:22:25,188 INFO solr.SolrMappingReader - source: digest dest: digest 
2016-10-28 16:22:25,188 INFO solr.SolrMappingReader - source: tstamp dest: tstamp 
2016-10-28 16:22:25,191 INFO solr.SolrIndexWriter - SolrIndexer: deleting 6/6 documents 
2016-10-28 16:22:25,300 WARN output.FileOutputCommitter - Output Path is null in cleanupJob() 
2016-10-28 16:22:25,301 WARN mapred.LocalJobRunner - job_local1653313730_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:480) 
    at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:241) 
    at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:230) 
    at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:150) 
    at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:483) 
    at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:464) 
    at org.apache.nutch.indexwriter.solr.SolrIndexWriter.commit(SolrIndexWriter.java:190) 
    at org.apache.nutch.indexwriter.solr.SolrIndexWriter.close(SolrIndexWriter.java:178) 
    at org.apache.nutch.indexer.IndexWriters.close(IndexWriters.java:115) 
    at org.apache.nutch.indexer.CleaningJob$DeleterReducer.close(CleaningJob.java:120) 
    at org.apache.hadoop.io.IOUtils.cleanup(IOUtils.java:237) 
    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:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
2016-10-28 16:22:25,841 ERROR indexer.CleaningJob - CleaningJob: java.io.IOException: Job failed! 
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:836) 
    at org.apache.nutch.indexer.CleaningJob.delete(CleaningJob.java:172) 
    at org.apache.nutch.indexer.CleaningJob.run(CleaningJob.java:195) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at org.apache.nutch.indexer.CleaningJob.main(CleaningJob.java:206) 

。問題は、上記のエラーは2番目のラウンド(シードサイトの1レベル深い)でのみ発生するということです。したがって、インデックス作成は最初のラウンドで正常に機能しますが、2回目のクロールと2回目の解析の後、エラーを吐き出して停止します。

私は上記の行ったように、私はセカンドランで以下のなかった、少し異なる最初の実行からのものを試して:クロールとインデックス新鮮な新しい

  • RANを開始する

    • 削除さTestCrawlフォルダ: bin/crawl -i -D solr.server.url=http://localhost:8983/solr/TSolr urls/ TestCrawl/ 1 ==> Nutchのラウンド数を「1」に変更したことに注意してください。そして、これでクロールとインデックス作成が正常に実行されます
    • その後、同じコマンドをもう一度実行して2レベルのクロールを1レベル深く行います。bin/crawl -i -D solr.server.url=http://localhost:8983/solr/TSolr urls/ TestCrawl/ 1 ==>これは、上記のhadoop.logを貼り付けたのと同じエラーです!

    したがって、私のSolrは、Nutchが第2ラウンドまたはシードサイトの1レベル深くまでクロールしたものを正常に索引付けすることができません。

    シードサイトの解析されたコンテンツサイズのためにエラーが発生する可能性がありますか。シードサイトは新聞社のウェブサイトであるため、第2ラウンド(1レベル深い)には、索引付けされた大量のデータが含まれていると確信しています。問題のコンテンツサイズが解析されている場合は、問題を解決するためにSolrをどのように設定できますか?

    エラーが他のものから発生した場合は、誰かがそれが何であるか、どのように修正するのを手伝ってくれますか?

  • 答えて

    2

    経験したことがある人には、私が持っていた問題に解決策を投稿すると思いました。

    すべての点で、Apach Nutch 1.12はApache Solr 6.Xをサポートしていないようです。 Apache Nutch 1.12リリースノートをチェックアウトした場合、最近Apache Solr 5.XをNuch 1.12にサポートする機能が追加され、Solr 6.Xのサポートは含まれていません。だから、Solr 6.2.1の代わりに、私はSolr 5.5.3で作業することにしました。したがって、私はApache Nutchと連携するためにApache Solr 5.5.3をインストールしました。

    Jorge Luisが指摘しているように、Apache Nutch 1.12にはバグがあり、Apache Solrで動作するとエラーになります。彼らはバグを修正し、ある時点でNutch 1.13をリリースしますが、いつそうなるのか分からないので、バグを自分で修正することに決めました。

    エラーが発生した理由は、NutchのCleaningJob.javaのcloseメソッドが最初に呼び出され、次にcommitメソッドが呼び出されるためです。次に、次の例外がスローされます。java.lang.IllegalStateException:接続プールがシャットダウンします。

    修正は実際には非常に簡単です。解決方法を知るには、https://github.com/apache/nutch/pull/156/commits/327e256bb72f0385563021995a9d0e96bb83c4f8

    上記のリンクからわかるように、単に "writers.close();"を再配置する必要があります。方法。

    ところで、エラーを修正するには、NutchバイナリパッケージのCleaningJob.javaファイルを編集できないため、Nutch scrパッケージがバイナリパッケージでない必要があります。修正の後、antを実行すると、すべて設定されます。

    修正後、エラーは発生しません。

    これは、私が直面している問題に直面している人に役立ちます。

    0

    このエラーは、Solrとの接続がすでに閉じられており、コミットが試行されたために発生しました(https://github.com/apache/nutch/blob/master/src/java/org/apache/nutch/indexer/CleaningJob.java#L120)。これはJiraのNUTCH-2269チケットで確認され、途中でPR(https://github.com/apache/nutch/pull/156)があります。

    +0

    ありがとう、ホルヘ。私は実際にあなたが週末に指摘したことを発見しました。 – btaek