2015-07-22 94 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