HBase 内存不足错误
HBase OutOfMemory Error
我正在尝试使用 hbasetemplate 通过 java 客户端 (eclipse) 连接到远程 hbase 服务器。我收到以下 OutOfMemory 错误。我尝试增加客户端(eclipse)JVM 堆,但仍然没有用。关于此异常到底与什么有关的任何线索?
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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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$9642a0.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
当出现 PermGen space
OOM 时,您应该使用 -XX:MaxPermSize
JVM 命令行选项增加 PermGen 的大小,例如-XX:MaxPermSize=128m
如果您使用的是 eclipse,则应将其放入 'Run Configurations' 对话框的 'VM Arguments' 框中
我正在尝试使用 hbasetemplate 通过 java 客户端 (eclipse) 连接到远程 hbase 服务器。我收到以下 OutOfMemory 错误。我尝试增加客户端(eclipse)JVM 堆,但仍然没有用。关于此异常到底与什么有关的任何线索?
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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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$9642a0.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
当出现 PermGen space
OOM 时,您应该使用 -XX:MaxPermSize
JVM 命令行选项增加 PermGen 的大小,例如-XX:MaxPermSize=128m
如果您使用的是 eclipse,则应将其放入 'Run Configurations' 对话框的 'VM Arguments' 框中