2017-11-22 5 views
0

でインデックスのマージ中に私は、インデックスの3.5TBのマージ中に以下のエラーが発生したのSolr 6.5.1エラーSolrの

を使用しています。これにつながる原因は何でしょうか?

私は、以下のコマンドから、SolrのからIndexMergeToolを使用しています:

java -classpath lucene-core-6.5.1.jar;lucene-misc-6.5.1.jar org.apache.lucene.misc.IndexMergeTool 

ヒープサイズが32ギガバイトです。 2つのコアには2,000万件を超える文書があります。これらの3.5TBのホストは1つ、ノードは1つ、シャードは1つだけです。このエラーが発生する前に、マージが48時間以上実行されています。

Exception in thread "main" Exception in thread "Lucene Merge Thread #8" java.io. 
IOException: background merge hit exception: _6f(6.5.1):C7256757 _6e(6.5.1):C646 
2072 _6d(6.5.1):C3750777 _6c(6.5.1):C2243594 _6b(6.5.1):C1015431 _6a(6.5.1):C105 
0220 _69(6.5.1):c273879 _28(6.4.1):c79011/84:delGen=84 _26(6.4.1):c44960/8149:de 
    lGen=100 _29(6.4.1):c73855/68:delGen=68 _5(6.4.1):C46672/31:delGen=31 _68(6.5.1) 
:c66 into _6g [maxNumSegments=1] 
     at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:1931) 

     at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:1871) 

     at org.apache.lucene.misc.IndexMergeTool.main(IndexMergeTool.java:57) 
Caused by: java.io.IOException: The requested operation could not be completed d 
ue to a file system limitation 
     at sun.nio.ch.FileDispatcherImpl.write0(Native Method) 
     at sun.nio.ch.FileDispatcherImpl.write(Unknown Source) 
     at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
     at sun.nio.ch.IOUtil.write(Unknown Source) 
     at sun.nio.ch.FileChannelImpl.write(Unknown Source) 
     at java.nio.channels.Channels.writeFullyImpl(Unknown Source) 
     at java.nio.channels.Channels.writeFully(Unknown Source) 
     at java.nio.channels.Channels.access$000(Unknown Source) 
     at java.nio.channels.Channels$1.write(Unknown Source) 
     at org.apache.lucene.store.FSDirectory$FSIndexOutput$1.write(FSDirectory 
.java:419) 
     at java.util.zip.CheckedOutputStream.write(Unknown Source) 
     at java.io.BufferedOutputStream.flushBuffer(Unknown Source) 
     at java.io.BufferedOutputStream.write(Unknown Source) 
     at org.apache.lucene.store.OutputStreamIndexOutput.writeBytes(OutputStre 
amIndexOutput.java:53) 
     at org.apache.lucene.store.RateLimitedIndexOutput.writeBytes(RateLimited 
IndexOutput.java:73) 
     at org.apache.lucene.store.DataOutput.writeBytes(DataOutput.java:52) 
     at org.apache.lucene.codecs.lucene50.ForUtil.writeBlock(ForUtil.java:175 
) 
     at org.apache.lucene.codecs.lucene50.Lucene50PostingsWriter.addPosition(
Lucene50PostingsWriter.java:286) 
     at org.apache.lucene.codecs.PushPostingsWriterBase.writeTerm(PushPosting 
sWriterBase.java:156) 
     at org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter$TermsWriter.w 
rite(BlockTreeTermsWriter.java:866) 
     at org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.write(BlockTr 
eeTermsWriter.java:344) 
     at org.apache.lucene.codecs.FieldsConsumer.merge(FieldsConsumer.java:105 
) 
     at org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsWriter 
.merge(PerFieldPostingsFormat.java:164) 
     at org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:2 
16) 
     at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:101) 
     at org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4353 
) 
     at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3928) 
     at org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMe 
rgeScheduler.java:624) 
     at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(Conc 
urrentMergeScheduler.java:661) 
org.apache.lucene.index.MergePolicy$MergeException: java.io.IOException: The req 
uested operation could not be completed due to a file system limitation 
     at org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException 
(ConcurrentMergeScheduler.java:703) 
     at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(Conc 
urrentMergeScheduler.java:683) 
Caused by: java.io.IOException: The requested operation could not be completed d 
ue to a file system limitation 
     at sun.nio.ch.FileDispatcherImpl.write0(Native Method) 
     at sun.nio.ch.FileDispatcherImpl.write(Unknown Source) 
     at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
     at sun.nio.ch.IOUtil.write(Unknown Source) 
     at sun.nio.ch.FileChannelImpl.write(Unknown Source) 
     at java.nio.channels.Channels.writeFullyImpl(Unknown Source) 
     at java.nio.channels.Channels.writeFully(Unknown Source) 
     at java.nio.channels.Channels.access$000(Unknown Source) 
     at java.nio.channels.Channels$1.write(Unknown Source) 

よろしく、
エドウィン

答えて

2

これは、Windowsホストのですか?

インデックスが3.5TBなので、ファイルシステムで問題が発生する可能性があります。ファイルの一部がかなり大きい可能性があります。そのため、Windowsのバージョンによっては、これらの制限の1つになる可能性があります。あなたが行うことができます

もの:

  1. はこれが偽であることを確認します(その全体のインデックスが複数のではなく、一つのファイルに入れて)solrconfig.xml

    <useCompoundFile>false</useCompoundFile> 
    
  2. はまでマージ2または3セグメント(もし1にマージされている場合):

    & maxSegments = 2

    お使いのWindowsサーバーの新しいバージョンへのディスク

  3. アップグレード、ファイルサイズの制限などをデフラグ

    試みは、はい、私はLinuxの

+0

へのすべての新しいバージョン

  • 動きと大きくなりますWindows Server 2012 R2を使用して、ディスクはNTFSでフォーマットされたSSDディスク上にありました。 –

  • 関連する問題