2015-07-22 68 views
0

iam試圖通過java客戶端(eclipse)使用hbasetemplate連接到遠程hbase服務器。我得到下面的OutOfMemory錯誤。我試圖增加客戶端(日食)JVM堆,但仍然沒有工作。任何關於這個異常與什麼有關的線索?HBase OutOfMemory錯誤

java.lang.OutOfMemoryError: PermGen space 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:421) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
at org.codehaus.jackson.map.ObjectMapper.<init>(ObjectMapper.java:390) 
at org.codehaus.jackson.map.ObjectMapper.<init>(ObjectMapper.java:358) 
at org.codehaus.jackson.map.ObjectMapper.<init>(ObjectMapper.java:328) 
at org.apache.hadoop.hbase.client.Operation.<clinit>(Operation.java:40) 
at org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:165) 
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.prefetchRegionCache(HConnectionManager.java:1158) 
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1222) 
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1110) 
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1067) 
at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:326) 
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192) 
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:165) 
at org.springframework.data.hadoop.hbase.HbaseUtils.getHTable(HbaseUtils.java:76) 
at org.springframework.data.hadoop.hbase.HbaseTemplate.getTable(HbaseTemplate.java:75) 
at org.springframework.data.hadoop.hbase.HbaseTemplate.execute(HbaseTemplate.java:54) 
at org.springframework.data.hadoop.hbase.HbaseTemplate.get(HbaseTemplate.java:170) 
at org.springframework.data.hadoop.hbase.HbaseTemplate.get(HbaseTemplate.java:160) 
at edu.mayo.registry.fhir.rest.hbase.repository.HbaseRepository.partialScan(HbaseRepository.java:50) 
at edu.mayo.registry.fhir.rest.controller.ESController.putIndexValue(ESController.java:61) 
at edu.mayo.registry.fhir.rest.controller.ESController$$FastClassBySpringCGLIB$$729642a0.invoke(<generated>) 
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
+0

你能更多地討論這可能會導致您超出燙髮根空間你在做什麼? –

回答

3

當越來越PermGen space OOM你應該使用-XX:MaxPermSize JVM命令行選項來增加PermGen的大小,例如-XX:MaxPermSize=128m

如果使用的是Eclipse,你應該把它變成「VM參數」對話框中的「運行配置」對話框

+0

謝謝Kostya .... – user3496151