Слишком много открытых файловых исключений при индексировании с использованием Solr - PullRequest
2 голосов
/ 30 сентября 2010

Я использую SOLR для индексации документов в своем веб-приложении, а solr.war развернут на сервере jboss. Но при индексации я получаю слишком много файлов, открываю исключение. Ниже приведен пример трассировки стека исключений:

12:31:33,267 ERROR [STDERR] Exception in thread "Lucene Merge Thread #0"
12:31:33,267 ERROR [STDERR] org.apache.lucene.index.MergePolicy$MergeException: java.io.FileNotFoundException: /data/jbossesb/bin/solr/data/index/_2rw.prx (Too many open files)
12:31:33,267 ERROR [STDERR] at org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:351)
12:31:33,267 ERROR [STDERR] at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:315)
12:31:33,267 ERROR [STDERR] Caused by: java.io.FileNotFoundException: /data/jbossesb/bin/solr/data/index/_2rw.prx (Too many open files)
12:31:33,267 ERROR [STDERR] at java.io.RandomAccessFile.open(Native Method)

Ответы [ 4 ]

4 голосов
/ 30 сентября 2010

Как объяснено в этом SOLR Jira , вы можете попробовать следующие варианты:

  • Увеличение вашего Ulimit с помощью: ulimit -n 1000000
  • установите useCompoundFile в true в solrconfig.xml, чтобы использовать составной формат файла Lucene
  • используйте меньшее значение mergeFactor, что приведет к меньшему количеству сегментов и, следовательно, к меньшему количеству открытых файлов.
2 голосов
/ 30 сентября 2010

Дескриптор файла будет наиболее вероятной причиной.

Проверьте ограничение, установленное вашей операционной системой.и отрегулируйте соответственно.в Unix команда для просмотра и установки: ulimit .

0 голосов
/ 30 сентября 2010

Также попробуйте уменьшить коэффициент слияния

0 голосов
/ 30 сентября 2010

Оптимизация индекса.Вероятно, у него слишком много сегментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...