Cassandra Bulk加载SSTable JMX OOM错误

时间:2015-03-27 10:20:46

标签: java eclipse cassandra

我是一名学生,正在使用Cassandra进行大数据项目。我必须为我的项目批量加载相当多的数据。

我的行很大,有470列。

我正在尝试使用SSTable + JMX加载器策略。每当我尝试将SSTable加载到我的localhost pc时,我都会收到OOM错误。我不知道该怎么做而且我已经努力了 - 现在凌晨4点15分 - 我已经搜索了问题,但我似乎无法让它发挥作用。我正在Eclipse中启动我的程序,所以这可能会有所作为。

提前致谢。

更多详情:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

导致jmx批量加载器中的某个地方:

  

在   org.apache.cassandra.utils.EstimatedHistogram $ EstimatedHistogramSerializer.deserialize(EstimatedHistogram.java:330)     在   org.apache.cassandra.io.sstable.SSTableMetadata $ SSTableMetadataSerializer.deserialize(SSTableMetadata.java:463)     在   org.apache.cassandra.io.sstable.SSTableMetadata $ SSTableMetadataSerializer.deserialize(SSTableMetadata.java:448)     在   org.apache.cassandra.io.sstable.SSTableMetadata $ SSTableMetadataSerializer.deserialize(SSTableMetadata.java:432)     在   org.apache.cassandra.io.sstable.SSTableReader.openMetadata(SSTableReader.java:225)     在   org.apache.cassandra.io.sstable.SSTableReader.openForBatch(SSTableReader.java:160)     在   org.apache.cassandra.io.sstable.SSTableLoader $ 1.accept(SSTableLoader.java:112)     在java.io.File.list(File.java:1161)at   org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:73)     在   org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:155)     在   org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:144)     在   org.apache.cassandra.service.StorageService.bulkLoad(StorageService.java:3698)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:497)at   sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)at   sun.reflect.GeneratedMethodAccessor7.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:497)at   sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)at   com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)     在   com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)     在   com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)     at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)     at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)     在   com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     在   com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     在   javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)     在   javax.management.remote.rmi.RMIConnectionImpl.access $ 300(RMIConnectionImpl.java:76)     在   javax.management.remote.rmi.RMIConnectionImpl $ PrivilegedOperation.run(RMIConnectionImpl.java:1307)     在   javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)

1 个答案:

答案 0 :(得分:0)

好的,它现在有效。我会尝试重新发布以避免这个问题 enter image description here

1)我使用旧版本的cassandra 2.0.5 iirc,所以我升级到最新版本。

2)仔细检查了cassandra.yaml文件。