1

Apache Nutch 2.2.1 用の独自のプラグインを作成して、選択したサイトから画像、ビデオ、およびポッドキャストをクロールしました (シードには 180 個の URL があります)。このメタデータを hBase ストアに配置し、インデックス (Solr) に保存したいと考えています。保存するメタデータがたくさんあります (Web ページ + 画像 + ビデオ + ポッドキャスト)。

プロセス全体(注入、生成、フェッチ、解析...そして最後にsolrindexと重複排除)にNutchスクリプトのビン/クロールを使用していますが、1つの問題があります。このスクリプトを初めて実行すると、インデックスに約 6000 のドキュメント (画像用に 3700 ドキュメント、Web ページ用に 1700 ドキュメント、残りのドキュメントはビデオとポッドキャスト用) が保存されます。大丈夫です...

しかし...

スクリプトを 2 回目、3 回目などと実行すると、インデックスはドキュメントの数を増やしません (まだ 6000 ドキュメントがあります) が、hBase テーブルに格納されている行数は増加します (現在 97383 行あります)。 )...

問題はどこにありますか?私はこの問題と長い間戦っていますが、わかりません...参考になる場合は、これがsolrconfix.xml http://pastebin.com/uxMW2nuqの構成であり、これが私のnutch-site.xml httpです: //pastebin.com/4bj1wdmT

ログを調べると、次のとおりです。

SEVERE: auto commit error...:java.lang.IllegalStateException: this writer hit an OutOfMemoryError; cannot commit 
        at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2668) 
        at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2834) 
        at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2814) 
        at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:529) 
        at org.apache.solr.update.CommitTracker.run(CommitTracker.java:216) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
        at java.lang.Thread.run(Thread.java:722)
4

1 に答える 1

1

自動コミットする前に、より低い値で試しましたか? メモリ内の情報が多すぎないように、100 ドキュメントごとにコミットするようにしてください。

于 2013-11-16T23:52:21.390 に答える