cassandra-bulkload-example
cassandra-bulkload-example copied to clipboard
Not able to load the sstables using sstable loader in cassandra3
Hi, I am able to run this example in cassandra 2.1.0, but when I am trying to run this example in cassandra3.2.1 it gives me the below exception. Please help me understand how does the gradelw script generated the sstables and what modification is required to run it in cassandra3.
taniya@xyz:~/Documents/Project/Cassandra/cassandra-bulkload-example-master$ /home/taniya/apache-cassandra-3.2.1/bin/sstableloader -d localhost data/quote/historical_prices Established connection to initial hosts Opening sstables and calculating sections to stream Failed to list files in data/quote/historical_prices java.lang.NullPointerException java.lang.RuntimeException: Failed to list files in data/quote/historical_prices at org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:53) at org.apache.cassandra.db.lifecycle.LifecycleTransaction.getFiles(LifecycleTransaction.java:544) at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:76) at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:165) at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:101) Caused by: java.lang.NullPointerException at org.apache.cassandra.io.sstable.format.SSTableReader.openForBatch(SSTableReader.java:421) at org.apache.cassandra.io.sstable.SSTableLoader.lambda$openSSTables$200(SSTableLoader.java:121) at org.apache.cassandra.io.sstable.SSTableLoader$$Lambda$18/14696868.apply(Unknown Source) at org.apache.cassandra.db.lifecycle.LogAwareFileLister.lambda$innerList$189(LogAwareFileLister.java:75) at org.apache.cassandra.db.lifecycle.LogAwareFileLister$$Lambda$29/5705197.test(Unknown Source) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174) at java.util.TreeMap$EntrySpliterator.forEachRemaining(TreeMap.java:2965) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at org.apache.cassandra.db.lifecycle.LogAwareFileLister.innerList(LogAwareFileLister.java:77) at org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:49)
Any Idea there, coz i have exact same problem....
This example generates SSTable using cassandra-2.1.x, and if you use sstableloader from cassandra-3.0.x and above, it fails because streaming pre-3.0 SSTable in cassandra-3.0.x sstableloader is not supported, until v3.0.5 and v3.5 that include fix of CASSANDRA-10990. Those version is scheduled tol be released next week.
I use cassandra 3.0.8 and with cassandra-driver-core 3.0.7 and cassandra-all 3.10 but get the errors
java.lang.RuntimeException: Failed to list files in ...
at org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:77)
at org.apache.cassandra.db.lifecycle.LifecycleTransaction.getFiles(LifecycleTransaction.java:561)
at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:76)
at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:165)
at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:154)
... 42 elided
Caused by: java.lang.IndexOutOfBoundsException: index (4) must be less than size (4)
at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:310)
at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:293)
at com.google.common.collect.RegularImmutableList.get(RegularImmutableList.java:67)
at org.apache.cassandra.db.ClusteringPrefix$Serializer.deserializeValuesWithoutSize(ClusteringPrefix.java:359)
at org.apache.cassandra.db.ClusteringBoundOrBoundary$Serializer.deserializeValues(ClusteringBoundOrBoundary.java:179)
at org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:287)
at org.apache.cassandra.db.Serializers$NewFormatSerializer.deserialize(Serializers.java:175)
at org.apache.cassandra.db.Serializers$NewFormatSerializer.deserialize(Serializers.java:151)
at org.apache.cassandra.io.sstable.IndexInfo$Serializer.deserialize(IndexInfo.java:134)
at org.apache.cassandra.db.RowIndexEntry$IndexedEntry.<init>(RowIndexEntry.java:623)
at org.apache.cassandra.db.RowIndexEntry$IndexedEntry.<init>(RowIndexEntry.java:577)
at org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:340)
at org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:238)
at org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1531)
at org.apache.cassandra.io.sstable.format.SSTableReader.getPositionsForRanges(SSTableReader.java:1465)
at org.apache.cassandra.io.sstable.SSTableLoader.lambda$openSSTables$0(SSTableLoader.java:131)
at org.apache.cassandra.db.lifecycle.LogAwareFileLister.lambda$innerList$2(LogAwareFileLister.java:99)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
at java.util.TreeMap$EntrySpliterator.forEachRemaining(TreeMap.java:2969)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at org.apache.cassandra.db.lifecycle.LogAwareFileLister.innerList(LogAwareFileLister.java:101)
at org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:73)
... 48 more
Any idea how I can get it to work?