2010-09-30 50 views
2

我正在使用SOLR在我的web應用程序中索引文檔,並且solr.war部署在jboss服務器上。 但是,索引我得到太多的文件打開異常。以下是一些例外堆棧跟蹤:使用solr索引時存在太多打開的文件異常

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) 

回答

2

File Descriptor將是您最有可能的原因。

檢查您的操作系統設置的限制。並根據情況進行調整。在Unix上, ,查看和設置的命令是ulimit

+0

嗨,你能解釋我們如何設置這個最大值與ulimit爲指定的用戶? 我在幾個網站上搜索,但我沒有找到好的命令:( – 2012-07-18 14:09:57

+1

**/etc/security/limits.conf ** ---設置基於用戶的ulimit的最佳位置 – raksja 2012-09-21 20:42:40

4

在本SOLR Jira解釋,你可以嘗試以下選項:

  • 增加使用的ulimit:ulimit -n 1000000
  • 設置useCompoundFile爲true solrconfig.xml使用Lucene的複合文件格式
  • 使用較低mergeFactor這將導致更少的段和因此更少的打開的文件。
0

優化索引。它可能有太多的細分。

0

也嘗試減少合併因子

相關問題