apache / druid

Apache Druid: a high performance real-time analytics database.
https://druid.apache.org/
Apache License 2.0
13.46k stars 3.7k forks source link

java.lang.NoSuchMethodError: com.github.os72.protobuf.dynamic.DynamicSchema.getMessageDescriptor occurd when using protobuf format with kis in druid 0.14.2 #8431

Closed quenlang closed 4 years ago

quenlang commented 5 years ago

When I using protobuf extension with kafka index service, I got an exception:

2019-08-29T05:58:11,591 INFO [task-runner-0-priority-0] org.apache.druid.server.coordination.CuratorDataSegmentServerAnnouncer - Unannouncing self[DruidServerMetadata{name='apm3-c1-redis-001.txgz.tingyun.com:8102', hostAndPort='apm3-c1-redis-001.txgz.tingyun.com:8102', hostAndTlsPort='null', maxSize=0, tier='_default_tier', type=indexer-executor, priority=0}] at [/druid/announcements/apm3-c1-redis-001.txgz.tingyun.com:8102]
2019-08-29T05:58:11,591 INFO [task-runner-0-priority-0] org.apache.druid.curator.announcement.Announcer - unannouncing [/druid/announcements/apm3-c1-redis-001.txgz.tingyun.com:8102]
2019-08-29T05:58:11,597 ERROR [task-runner-0-priority-0] org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner - Uncaught Throwable while running task[AbstractTask{id='index_kafka_metrics-kafka2_49de0ce20c35ce7_koghokai', groupId='index_kafka_metrics-kafka2', taskResource=TaskResource{availabilityGroup='index_kafka_metrics-kafka2_49de0ce20c35ce7', requiredCapacity=1}, dataSource='metrics-kafka2', context={checkpoints={"0":{"0":19,"1":45,"2":26,"3":29,"4":33,"5":40,"6":42,"7":24}}, IS_INCREMENTAL_HANDOFF_SUPPORTED=true}}]
java.lang.NoSuchMethodError: com.github.os72.protobuf.dynamic.DynamicSchema.getMessageDescriptor(Ljava/lang/String;)Lshaded/com/google/protobuf/Descriptors$Descriptor;
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.getDescriptor(ProtobufInputRowParser.java:166) ~[?:?]
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.initDescriptor(ProtobufInputRowParser.java:90) ~[?:?]
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.parseBatch(ProtobufInputRowParser.java:101) ~[?:?]
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.parseBatch(ProtobufInputRowParser.java:52) ~[?:?]
    at org.apache.druid.segment.transform.TransformingInputRowParser.parseBatch(TransformingInputRowParser.java:50) ~[druid-processing-0.14.2-incubating.jar:0.14.2-incubating]
    at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.runInternal(SeekableStreamIndexTaskRunner.java:562) ~[druid-indexing-service-0.14.2-incubating.jar:0.14.2-incubating]
    at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.run(SeekableStreamIndexTaskRunner.java:246) ~[druid-indexing-service-0.14.2-incubating.jar:0.14.2-incubating]
    at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTask.run(SeekableStreamIndexTask.java:166) ~[druid-indexing-service-0.14.2-incubating.jar:0.14.2-incubating]
    at org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:419) [druid-indexing-service-0.14.2-incubating.jar:0.14.2-incubating]
    at org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:391) [druid-indexing-service-0.14.2-incubating.jar:0.14.2-incubating]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_60]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
2019-08-29T05:58:11,682 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.server.http.security.StateResourceFilter to GuiceInstantiatedComponentProvider
2019-08-29T05:58:11,695 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.server.http.SegmentListerResource to GuiceManagedComponentProvider with the scope "PerRequest"
2019-08-29T05:58:11,699 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.server.QueryResource to GuiceInstantiatedComponentProvider
2019-08-29T05:58:11,703 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.segment.realtime.firehose.ChatHandlerResource to GuiceInstantiatedComponentProvider
2019-08-29T05:58:11,705 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.server.http.security.ConfigResourceFilter to GuiceInstantiatedComponentProvider
2019-08-29T05:58:11,707 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.query.lookup.LookupListeningResource to GuiceInstantiatedComponentProvider
2019-08-29T05:58:11,708 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.query.lookup.LookupIntrospectionResource to GuiceInstantiatedComponentProvider
2019-08-29T05:58:11,710 INFO [main] com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory - Binding org.apache.druid.server.StatusResource to GuiceManagedComponentProvider with the scope "Undefined"
2019-08-29T05:58:11,722 WARN [main] com.sun.jersey.spi.inject.Errors - The following warnings have been detected with resource and/or provider classes:
  WARNING: A HTTP GET method, public void org.apache.druid.server.http.SegmentListerResource.getSegments(long,long,long,javax.servlet.http.HttpServletRequest) throws java.io.IOException, MUST return a non-void type.
2019-08-29T05:58:11,731 INFO [main] org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@68c4a860{/,null,AVAILABLE}
2019-08-29T05:58:11,738 INFO [main] org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@117fb9ba{HTTP/1.1,[http/1.1]}{0.0.0.0:8102}
2019-08-29T05:58:11,739 INFO [main] org.eclipse.jetty.server.Server - Started @4444ms
2019-08-29T05:58:11,740 INFO [main] org.apache.druid.java.util.common.lifecycle.Lifecycle$AnnotationBasedHandler - Invoking start method[public void org.apache.druid.server.log.FilteredRequestLoggerProvider$FilteredRequestLogger.start() throws java.lang.Exception] on object[FilteredRequestLogger{logger=LoggingRequestLogger{setMDC=false, setContextMDC=false}, queryTimeThresholdMs=200, sqlQueryTimeThresholdMs=200}].
2019-08-29T05:58:11,740 INFO [main] org.apache.druid.java.util.common.lifecycle.Lifecycle$AnnotationBasedHandler - Invoking start method[public void org.apache.druid.server.listener.announcer.ListenerResourceAnnouncer.start()] on object[org.apache.druid.query.lookup.LookupResourceListenerAnnouncer@573870cb].
2019-08-29T05:58:11,743 INFO [main] org.apache.druid.server.listener.announcer.ListenerResourceAnnouncer - Announcing start time on [/druid/listeners/lookups/__default/http:apm3-c1-redis-001.txgz.tingyun.com:8102]
2019-08-29T05:58:11,743 INFO [main] org.apache.druid.java.util.common.lifecycle.Lifecycle - Starting lifecycle [module] stage [LAST]
2019-08-29T05:58:11,743 INFO [main] org.apache.druid.java.util.common.lifecycle.Lifecycle - Successfully started lifecycle [module]
Error!
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: com.github.os72.protobuf.dynamic.DynamicSchema.getMessageDescriptor(Ljava/lang/String;)Lshaded/com/google/protobuf/Descriptors$Descriptor;
    at com.google.common.base.Throwables.propagate(Throwables.java:160)
    at org.apache.druid.indexing.worker.executor.ExecutorLifecycle.join(ExecutorLifecycle.java:214)
    at org.apache.druid.cli.CliPeon.run(CliPeon.java:364)
    at org.apache.druid.cli.Main.main(Main.java:118)
Caused by: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: com.github.os72.protobuf.dynamic.DynamicSchema.getMessageDescriptor(Ljava/lang/String;)Lshaded/com/google/protobuf/Descriptors$Descriptor;
    at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
    at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
    at org.apache.druid.indexing.worker.executor.ExecutorLifecycle.join(ExecutorLifecycle.java:211)
    ... 2 more
Caused by: java.lang.NoSuchMethodError: com.github.os72.protobuf.dynamic.DynamicSchema.getMessageDescriptor(Ljava/lang/String;)Lshaded/com/google/protobuf/Descriptors$Descriptor;
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.getDescriptor(ProtobufInputRowParser.java:166)
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.initDescriptor(ProtobufInputRowParser.java:90)
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.parseBatch(ProtobufInputRowParser.java:101)
    at org.apache.druid.data.input.protobuf.ProtobufInputRowParser.parseBatch(ProtobufInputRowParser.java:52)
    at org.apache.druid.segment.transform.TransformingInputRowParser.parseBatch(TransformingInputRowParser.java:50)
    at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.runInternal(SeekableStreamIndexTaskRunner.java:562)
    at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.run(SeekableStreamIndexTaskRunner.java:246)
    at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTask.run(SeekableStreamIndexTask.java:166)
    at org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:419)
    at org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:391)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    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)

2019-08-29T05:58:11,755 INFO [Thread-38] org.apache.druid.cli.CliPeon - Running shutdown hook
2019-08-29T05:58:11,756 INFO [Thread-38] org.apache.druid.java.util.common.lifecycle.Lifecycle - Stopping lifecycle [module] stage [LAST]
2019-08-29T05:58:11,758 INFO [Thread-38] org.apache.druid.java.util.common.lifecycle.Lifecycle - Stopping lifecycle [module] stage [NORMAL]

I had configured druid-protobuf-extensions in common.runtime.properties. But when I performed the demo test paged at https://druid.apache.org/docs/latest/development/extensions-core/protobuf.html, I met the java.lang.NoSuchMethodError: com.github.os72.protobuf.dynamic.DynamicSchema.getMessageDescriptor exception.

I used druid 0.14.2. Any advices for me? Thank you!

stale[bot] commented 4 years ago

This issue has been marked as stale due to 280 days of inactivity. It will be closed in 4 weeks if no further activity occurs. If this issue is still relevant, please simply write any comment. Even if closed, you can still revive the issue at any time or discuss it on the dev@druid.apache.org list. Thank you for your contributions.

stale[bot] commented 4 years ago

This issue has been closed due to lack of activity. If you think that is incorrect, or the issue requires additional review, you can revive the issue at any time.