2017-04-17 56 views
0

我有4個SOLR索引在單個節點Hadoop環境中運行。 虛擬機空間不足,所以我釋放了操作系統上的一些空間,但在重新啓動虛擬機後,索引沒有啓動。solr.DirectUpdateHandler2未能實例化

我在哪裏運行SOLR虛擬機具有64 GB的RAM

我越來越solr.DirectUpdateHandler2失敗實例的錯誤 我需要這個幫助,我的系統不工作了,由於這個問題和備份我已經老了。

這是錯誤:

null:org.apache.solr.common.SolrException: SolrCore 'EMAIL_DOMAINS_shard1_replica1' is not available due to init failure: Error Instantiating Update Handler, solr.DirectUpdateHandler2 failed to instantiate org.apache.solr.update.UpdateHandler 
at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:752) 
at org.apache.solr.servlet.SolrDispatchFilter.checkProps(SolrDispatchFilter.java:768) 
at org.apache.solr.servlet.SolrDispatchFilter.getCoreByCollection(SolrDispatchFilter.java:742) 
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:325) 
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:211) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.solr.servlet.SolrHadoopAuthenticationFilter$2.doFilter(SolrHadoopAuthenticationFilter.java:394) 
at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:589) 
at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticationFilter.doFilter(DelegationTokenAuthenticationFilter.java:291) 
at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:552) 
at org.apache.solr.servlet.SolrHadoopAuthenticationFilter.doFilter(SolrHadoopAuthenticationFilter.java:399) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.solr.servlet.HostnameFilter.doFilter(HostnameFilter.java:86) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Thread.java:745) 

Caused by: org.apache.solr.common.SolrException: Error Instantiating Update Handler, solr.DirectUpdateHandler2 failed to instantiate org.apache.solr.update.UpdateHandler 
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:893) 
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:663) 
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:498) 
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:262) 
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:256) 
at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
... 1 more 
    Caused by: org.apache.solr.common.SolrException: Error Instantiating Update Handler, solr.DirectUpdateHandler2 failed to instantiate org.apache.solr.update.UpdateHandler 
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:581) 
at org.apache.solr.core.SolrCore.createUpdateHandler(SolrCore.java:637) 
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:855) 
... 8 more 
    Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:567) 
... 10 more 
    Caused by: java.lang.OutOfMemoryError: unable to create new native thread 
at java.lang.Thread.start0(Native Method) 
at java.lang.Thread.start(Thread.java:714) 
at org.apache.hadoop.hdfs.DFSOutputStream.start(DFSOutputStream.java:2359) 
at org.apache.hadoop.hdfs.DFSOutputStream.newStreamForAppend(DFSOutputStream.java:1934) 
at org.apache.hadoop.hdfs.DFSClient.callAppend(DFSClient.java:1853) 
at org.apache.hadoop.hdfs.DFSClient.append(DFSClient.java:1878) 
at org.apache.hadoop.hdfs.DFSClient.append(DFSClient.java:1871) 
at org.apache.hadoop.hdfs.DistributedFileSystem$4.doCall(DistributedFileSystem.java:329) 
at org.apache.hadoop.hdfs.DistributedFileSystem$4.doCall(DistributedFileSystem.java:325) 
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
at org.apache.hadoop.hdfs.DistributedFileSystem.append(DistributedFileSystem.java:325) 
at org.apache.hadoop.fs.FileSystem.append(FileSystem.java:1172) 
at org.apache.solr.update.HdfsTransactionLog.<init>(HdfsTransactionLog.java:93) 
at org.apache.solr.update.HdfsUpdateLog.init(HdfsUpdateLog.java:200) 
at org.apache.solr.update.UpdateHandler.<init>(UpdateHandler.java:136) 
at org.apache.solr.update.UpdateHandler.<init>(UpdateHandler.java:94) 
at org.apache.solr.update.DirectUpdateHandler2.<init>(DirectUpdateHandler2.java:100) 
... 15 more 
+0

你可以嘗試添加更多的信息和詳細的錯誤信息嗎? – freedev

+0

這是錯誤 –

回答

0

在異常寫得很清楚,你有內存不足(OOM)的問題。

Caused by: java.lang.OutOfMemoryError: unable to create new native thread 

鑑於您已經有空間不足,請仔細檢查您是否已經釋放了足夠的磁盤空間。

之後,即使OOM的原因很多,常見的原因是您的JVM沒有足夠的內存,因此請仔細檢查您的堆大小配置(即–Xms–Xmx)。

如果釋放更多的磁盤空間和更多的內存分配堆不能解決你的問題,我也建議:

  • 檢查,如果你需要增加用戶限制(ulimit –a),這意味着用戶最大線程限制,最大打開進程和最大打開文件限制。
  • 檢查線程的系統範圍設置,即使在這種情況下,如果您需要,也可以提高限制。

另一方面,很少會發生這樣的情況:您已經分配了太多的堆空間或資源太多而導致操作系統沒有足夠空間運行您的應用程序。

總之,試着在分配的資源和應用程序需求之間找到合適的平衡點。