Cassandra as deep storage


I am trying to use Cassandra for deep storage and I keep getting these errors. Can anyone please help me out with this?

  1. Unknown provider[mysql] of Key[type=io.druid.metadata.SQLMetadataConnector, annotation=[none]], known options[[derby]]
    at io.druid.guice.PolyBind.createChoiceWithDefault(


When I try to put the mysql-connector and metadata-storage jars in lib folder I get this error

  1. A binding to<io.druid.server.audit.SQLAuditManagerConfig> was already configured at io.druid.guice.JsonConfigProvider.bind(
    at io.druid.guice.JsonConfigProvider.bind(

  2. A binding to io.druid.server.audit.SQLAuditManagerConfig was already configured at io.druid.guice.JsonConfigProvider.bind(
    at io.druid.guice.JsonConfigProvider.bind(



This looks to be a dupe of!topic/druid-development/YTXK0dtK3Ps. Did Nishant’s suggestions help?

No, he did not. He was talking about my other post about hdfs for deep storage.

For Cassandra, I get Unknown provider[mysql] error when I do not have the jars in lib folder. When I have the jars I get was already configured error like the one I have with HDFS config.


Your particular error appears that you did not correctly set your metadata storage type. Can you share your configs?

Here are my config files and commands I use to start druid.

Start Zookepper

Start MySQL

Start the coordinator node:

java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath config/_common:config/coordinator:lib/* io.druid.cli.Main server coordinator

Start the historical node:
java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath config/_common:config/historical:lib/* io.druid.cli.Main server historical

Start the broker node:
java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath config/_common:config/broker:lib/* io.druid.cli.Main server broker

Start realtime node:

java -Xmx512m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -Ddruid.realtime.specFile=examples/wikipedia/wikipedia_realtime.spec -classpath config/_common:config/realtime:lib/* io.druid.cli.Main server
realtime (1.82 KB) (1.67 KB) (1.45 KB)

Your deep storage should be defined in the common configs.

Your common configs define your deep store as local, but your realtime configs override the deep store as c*. This means you’ll write to cassandra on realtimes, and historicals will try to read from local disk.

You also overwrote the extensions on the realtime node, so the only extension loaded is the cassandra extension and the mysql extension is no longer being loaded, hence causing that error.

Hope that helps.

– FJ

Thanks Fangjin. Work perfectly.