indexin使用solr时打开文件异常太多

时间:2010-09-30 06:37:59

标签: java jboss solr

我正在使用SOLR在我的Web应用程序中索引文档,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 个答案:

答案 0 :(得分:4)

如此SOLR Jira中所述,您可以尝试以下选项:

  • 使用:ulimit -n 1000000
  • 增加ulimit
  • useCompoundFile中将solrconfig.xml设置为true以使用Lucene的复合文件格式
  • 使用较低的mergeFactor,这会导致较少的细分,因此打开的文件较少。

答案 1 :(得分:2)

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

检查操作系统设置的限制。并相应调整。 在Unix上,查看和设置的命令是ulimit

答案 2 :(得分:0)

优化索引。它可能有太多的部分。

答案 3 :(得分:0)

还尝试减少合并因子