NoSuchMethodError when configuring Zipkin with Cassandra storage

179 views
Skip to first unread message

P Osborne

unread,
May 1, 2014, 1:29:25 PM5/1/14
to zipki...@googlegroups.com

Hi All,

I've been running Zipkin successfully for a week or so with sqllite.  I'm now trying to get a more production ready configuration running using cassandra.

I've built a collector distribution from the latest code on the master branch.  I added a new config for the collector that is shown below.

When I start the collector I get this exception (full stack trace below):

FATAL [20140501-11:07:30.165] monitor: java.lang.NoSuchMethodError: com.twitter.concurrent.Spool$.syntax(Lcom/twitter/util/Future;)Lcom/twitter/concurrent/Spool$Syntax;

Looks like there is a dependency issue in SBT but I don't have a lot of experience with the Zipkin codebase.  Can someone point me in the right direction to rectify this issue?

Any help is appreciated!

-- Patrick


Config:

import com.twitter.logging.{Formatter, Policy, FileHandler, Level, LoggerFactory}
import com.twitter.zipkin.builder.Scribe
import com.twitter.zipkin.cassandra
import com.twitter.zipkin.collector.builder.CollectorServiceBuilder
import com.twitter.zipkin.storage.Store
import com.twitter.zipkin.builder.ZipkinServerBuilder

val keyspaceBuilder = cassandra.Keyspace.static(
  nodes = Set("cassandra-soa-node01", "cassandra-soa-node02", "cassandra-soa-node03",
    "cassandra-soa-node04"))

val cassandraBuilder = Store
  .Builder(cassandra.StorageBuilder(keyspaceBuilder), cassandra.IndexBuilder(keyspaceBuilder), cassandra.AggregatesBuilder(keyspaceBuilder))

val formatter = new Formatter(useFullPackageNames = true, prefix = "%.5s [<yyyyMMdd-HH:mm:ss.SSS>] %s: ")
val loggers = List(LoggerFactory(level = Some(Level.DEBUG),
  handlers = List(FileHandler(filename = "/tmp/zipkin-collector.log", rollPolicy = Policy.Daily, append = true, formatter = formatter))))

CollectorServiceBuilder(Scribe.Interface(categories = Set("zipkin"))).writeTo(cassandraBuilder)
  .copy(serverBuilder = ZipkinServerBuilder(9410, 9990).loggers(loggers))


StackTrace:

DEBUG [20140501-11:07:30.161] com.twitter.cassie: Received: %s
FATAL [20140501-11:07:30.165] monitor: Fatal exception propagated to the root monitor!
FATAL [20140501-11:07:30.165] monitor: java.lang.NoSuchMethodError: com.twitter.concurrent.Spool$.syntax(Lcom/twitter/util/Future;)Lcom/twitter/concurrent/Spool$Syntax;
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.cassie.ClusterRemapper.com$twitter$cassie$ClusterRemapper$$appendChange(ClusterRemapper.scala:83)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$2.apply(ClusterRemapper.scala:73)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$2.apply(ClusterRemapper.scala:73)
FATAL [20140501-11:07:30.165] monitor:     at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:130)
FATAL [20140501-11:07:30.165] monitor:     at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:275)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ClusterRemapper.scala:73)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ClusterRemapper.scala:61)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Future$$anonfun$onSuccess$1.apply(Future.scala:832)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Future$$anonfun$onSuccess$1.apply(Future.scala:831)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Promise$Monitored.apply(Promise.scala:66)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Promise$Monitored.apply(Promise.scala:57)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Promise$$anon$2.run(Promise.scala:333)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.concurrent.LocalScheduler$Activation.run(Scheduler.scala:129)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.concurrent.LocalScheduler$Activation.submit(Scheduler.scala:107)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.concurrent.LocalScheduler.submit(Scheduler.scala:150)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.concurrent.Scheduler$.submit(Scheduler.scala:59)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Promise.runq(Promise.scala:310)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Promise.updateIfEmpty(Promise.scala:605)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Promise.update(Promise.scala:583)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.util.Promise.setValue(Promise.scala:559)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.concurrent.AsyncQueue.offer(AsyncQueue.scala:71)
FATAL [20140501-11:07:30.165] monitor:     at com.twitter.finagle.transport.ChannelTransport.handleUpstream(ChannelTransport.scala:41)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
FATAL [20140501-11:07:30.165] monitor:     at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
FATAL [20140501-11:07:30.165] monitor:     (...more...)

foo X

unread,
Jun 19, 2014, 7:35:16 AM6/19/14
to zipki...@googlegroups.com
I met same problem here 
Do you find a way out ?
thanks 

在 2014年5月2日星期五UTC+8上午1时29分25秒,P Osborne写道:

foo X

unread,
Jun 27, 2014, 4:31:43 AM6/27/14
to zipki...@googlegroups.com
I solved this problem : )
I created Cassandra schema using cassandra-schema.txt. And it create keyspace with Replication pointed to datacenter "datacenter1" by default.
ALTER  the KeySpace to point to your actual Cassandra datacenter

I don't know why cassandra-schema.txt create keyspace to "datacenter1".

Hope this could help you and others encounter same problems. : )



在 2014年6月19日星期四UTC+8下午7时35分16秒,foo X写道:
Reply all
Reply to author
Forward
0 new messages