Cassandra 3.0.3 as deep storage

Hi, list.

I’m trying to use Cassandra 3.0.3 as deep storage for Druid but, unfortunately, no success. My common.runtime.properties is down below:

druid.extensions.coordinates=[“io.druid.extensions:druid-examples”,“io.druid.extensions:druid-kafka-eight”, “io.druid.extensions:druid-cassandra-storage:0.8.3”]
druid.extensions.localRepository=extensions-repo

Zookeeper

druid.zk.service.host=localhost

Metadata Storage (use something like mysql in production by uncommenting properties below)

by default druid will use derby

druid.metadata.storage.type=mysql

druid.metadata.storage.connector.connectURI=jdbc:mysql://localhost:3306/druid

druid.metadata.storage.connector.user=druid

druid.metadata.storage.connector.password=diurd

druid.storage.type=c*
druid.storage.host=localhost:9160
druid.storage.keyspace=druid

The log below is from coordinator console from the last failure task.

[[SegmentDescriptor{interval=2016-06-15T18:55:00.000Z/2016-06-15T19:00:00.000Z, version='2016-06-15T18:55:21.100Z', partitionNumber=0}]]
2016-06-15T19:06:49,214 ERROR [ChunkWriter-druid/telecom/2016-06-15T18:55:00.000Z_2016-06-15T19:00:00.000Z/2016-06-15T18:55:21.100Z/0-0] com.netflix.astyanax.recipes.storage.ObjectWriter - NoAvailableHostsException: [host=None(0.0.0.0):0, latency=0(0), attempts=0] No hosts to borrow from
2016-06-15T19:06:50,214 ERROR [ChunkWriter-druid/telecom/2016-06-15T18:55:00.000Z_2016-06-15T19:00:00.000Z/2016-06-15T18:55:21.100Z/0-1] com.netflix.astyanax.recipes.storage.ObjectWriter - NoAvailableHostsException: [host=None(0.0.0.0):0, latency=0(0), attempts=0] No hosts to borrow from
2016-06-15T19:07:19,447 INFO [coordinator_handoff_scheduled_0] io.druid.segment.realtime.plumber.CoordinatorBasedSegmentHandoffNotifier - Still waiting for Handoff for Segments : [[SegmentDescriptor{interval=2016-06-15T18:55:00.000Z/2016-06-15T19:00:00.000Z, version='2016-06-15T18:55:21.100Z', partitionNumber=0}]]
2016-06-15T19:07:55,217 WARN [telecom-2016-06-15T18:55:00.000Z-persist-n-merge] com.netflix.astyanax.recipes.storage.ObjectWriter - NoAvailableHostsException: [host=None(0.0.0.0):0, latency=0(0), attempts=0] No hosts to borrow from
com.netflix.astyanax.connectionpool.exceptions.NoAvailableHostsException: NoAvailableHostsException: [host=None(0.0.0.0):0, latency=0(0), attempts=0] No hosts to borrow from
	at com.netflix.astyanax.connectionpool.impl.RoundRobinExecuteWithFailover.<init>(RoundRobinExecuteWithFailover.java:31)
	at com.netflix.astyanax.connectionpool.impl.RoundRobinConnectionPoolImpl.newExecuteWithFailover(RoundRobinConnectionPoolImpl.java:52)
	at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:229)
	at com.netflix.astyanax.thrift.ThriftKeyspaceImpl.executeOperation(ThriftKeyspaceImpl.java:446)
	at com.netflix.astyanax.thrift.ThriftKeyspaceImpl.access$400(ThriftKeyspaceImpl.java:62)
	at com.netflix.astyanax.thrift.ThriftKeyspaceImpl$1.execute(ThriftKeyspaceImpl.java:115)
	at com.netflix.astyanax.recipes.storage.CassandraChunkedStorageProvider.writeMetadata(CassandraChunkedStorageProvider.java:118)
	at com.netflix.astyanax.recipes.storage.ObjectWriter.call(ObjectWriter.java:154)
	at io.druid.storage.cassandra.CassandraDataSegmentPusher.push(CassandraDataSegmentPusher.java:84)
	at io.druid.segment.realtime.plumber.RealtimePlumber$4.doRun(RealtimePlumber.java:560)
	at io.druid.common.guava.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:40)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Does any of you faced that kind of problem? Does druid-cassandra-storage:0.8.3 works with Cassandra 3.0.3?

Hey Marcelo,

I’m not sure – the Cassandra extension falls under contrib since none of the Druid core committers have experience running with Cassandra. If you want to look into it deeper, the first thing I would look at is whether the library the extension uses (astynax 1.0.1) supports Cassandra 3.0 or not.

Hi, Gian.

Hi Marcelo, I think to make Druid work with Cassandra 3.x versions, we’ll need to look at other ways of building the deep storage module. The cassandra module isn’t being maintained by the committer right now as it is a community extension.