2017-10-23 16 views
0

バックエンドのLuceneセグメントがマージされておらず、セグメント数が増えています。私はLogByteSizeMergePolicyからに変更しましたsolrのセグメントマージが起こらない

solrの文書に従ってプロパティを変更しようとしましたが、私のセグメントは高くなっています。

私はsolr 6.1.Xを使用しています。 インデックスデータはHDFSに格納されます。 solrconfig.xmlの

マイ指標の設定:

<indexConfig> 
    <writeLockTimeout>1000</writeLockTimeout> 
    <commitLockTimeout>10000</commitLockTimeout> 
    <maxIndexingThreads>15</maxIndexingThreads> 
    <useCompoundFile>false</useCompoundFile> 
    <ramBufferSizeMB>1024</ramBufferSizeMB> 
    <mergePolicy class="org.apache.lucene.index.TieredMergePolicy"> 
      <int name="maxMergeAtOnce">10</int> 
      <int name="segmentsPerTier">1</int> 
    </mergePolicy> 
    <mergePolicyFactory class="org.apache.solr.index.TieredMergePolicyFactory"> 
      <int name="maxMergeAtOnce">10</int> 
      <int name="segmentsPerTier">10</int> 
    </mergePolicyFactory> 
    <lockType>hdfs</lockType> 
    <deletionPolicy class="solr.SolrDeletionPolicy"> 
     <str name="maxCommitsToKeep">1</str> 
     <str name="maxOptimizedCommitsToKeep">0</str> 
    </deletionPolicy> 
</indexConfig> 

The only way we optimize is by force merging which is IO costly and also takes hours to complete. 

私は2と3つの破片のクラスタと複製因子を持っている

私が間違っ

つもりどこ誰も私を助けることができます
+0

をマージあなたの質問に情報ストリーム出力を提供してください – Ivan

答えて

0

理論

マージポリシーがフードの下でどのように機能するかを理解するためにあなたが読むことができるfollowing post

いくつかの単語では、マージポリシーはセグメント数に影響しません、それはちょうどどのセグメントをマージするかを決定します。したがって、主な質問は次のとおりです。セグメントの数はいくつですか?何が問題ですか?

もう1つの重要な要因はインデックス作成スレッドの数です。各スレッドは独自のスレッドローカルセグメントを作成します。言い換えると、15個のスレッドがディスク上に15個のセグメントを作成します。

強制マージAPIを使用することに注意してください。この呼び出しはまったく調整されません。したがって、ノード上のすべてのI/Oを消費することができます。検索には何も残さず、システムが応答しなくなる可能性があります。

実践

あなたはSolrのログに次のようなものが生成されますあなたのsolrconfig.xml<infoStream>true</infoStream>を有効にすることができます。

すべての決定は、各コンポーネントの有益な説明が記録されている
IW: commit: done writing segments file "segments_2" 
    IFD: now checkpoint "_cx(6.6.1):c721" [1 segments ; isCommit = true] 
    IFD: deleteCommits: now decRef commit "segments_1" 
    IFD: delete StoreDirectory.deleteFile: delete file segments_1 
    TMP: findMerges: 1 segments 
    TMP: seg=_cx(6.6.1):c721 size=0.054 MB [floored] 
    TMP: allowedSegmentCount=1 vs count=1 (eligible count=1) tooBigCount=0 
    MS: now merge 
    MS: no more merges pending; now return 

  • IW - インデックスライター
  • IFD - 削除ポリシー
  • TMP - 階層マージポリシー
  • MS - より詳細な答えを得るためには、スケジューラ
関連する問題