|
|
-
Memory RequirementsBing Li 2012-03-10, 03:20
Dear all,
Today I ran HBase in the pseudo-distributed mode. Since I need to save the meta information about Web pages crawled from more than 10,000 Web sites simultaneously and periodically. I believe the data size is large. After running for about 30 minutes, it got the following exceptions. [java] ...............2012-3-10 10:09:04 org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation processBatchCallback [java] Warning: Failed all from region=PlayTable,,1331343367325.2bf6bf580051da504c347c19eb08f9d5., hostname=greatfreeinpain, port=60020 [java] java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space [java] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) [java] at java.util.concurrent.FutureTask.get(FutureTask.java:83) [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1557) [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1409) [java] at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:900) [java] at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:777) [java] at org.apache.hadoop.hbase.client.HTable.put(HTable.java:760) [java] at org.apache.hadoop.hbase.client.HTablePool$PooledHTable.put(HTablePool.java:402) [java] at com.greatfree.hbase.AuthorityPersister.InsertInitialPlayRecord(AuthorityPersister.java:128) [java] at com.greatfree.hbase.RandomPersistDispatcher.run(RandomPersistDispatcher.java:92) [java] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [java] at java.lang.Thread.run(Thread.java:662) [java] Caused by: java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithoutRetries(HConnectionManager.java:1371) [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1383) [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1381) [java] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [java] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [java] ... 3 more [java] Caused by: java.lang.OutOfMemoryError: Java heap space [java] at java.util.Arrays.copyOf(Arrays.java:2786) [java] at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94) [java] at java.io.DataOutputStream.write(DataOutputStream.java:90) [java] at org.apache.hadoop.hbase.client.Put.write(Put.java:422) [java] at org.apache.hadoop.hbase.io.HbaseObjectWritable.writeObject(HbaseObjectWritable.java:464) [java] at org.apache.hadoop.hbase.client.Action.write(Action.java:94) [java] at org.apache.hadoop.hbase.io.HbaseObjectWritable.writeObject(HbaseObjectWritable.java:464) [java] at org.apache.hadoop.hbase.client.MultiAction.write(MultiAction.java:102) [java] at org.apache.hadoop.hbase.io.HbaseObjectWritable.writeObject(HbaseObjectWritable.java:464) [java] at org.apache.hadoop.hbase.ipc.Invocation.write(Invocation.java:138) [java] at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.sendParam(HBaseClient.java:537) [java] at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:879) [java] at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:150) [java] at $Proxy6.multi(Unknown Source) [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1386) [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1384) [java] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithoutRetries(HConnectionManager.java:1365) [java] ... 7 more The machine running the HBase has 1G memory only over Ubuntu 10. According to the book, HBase the Definitive Guide, 64-bit OS and 4GB are required. I need to upgrade my system? I change the parameter, HBASE_HEAPSIZE, from 1000 to 2048. The exceptions still occurred. When the value was changed to 3072, it got the following errors when I ran start-hbase.sh. Could not create the Java virtual machine. Could not create the Java virtual machine. starting master, logging to /opt/hbase-0.92.0/bin/../logs/hbase-libing-master-greatfreeinpain.out Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. localhost: starting regionserver, logging to /opt/hbase-0.92.0/bin/../logs/hbase-libing-regionserver-greatfreeinpain.out localhost: Error occurred during initialization of VM localhost: Could not reserve enough space for object heap localhost: Could not create the Java virtual machine. It seems that I need to increase the memory size? Do I need to install a 64-bit Ubuntu Linux? Thanks so much for your help! Best regards, Bing |