"Failure getting results" and OutOfMemoryError after loading data

339 views
Skip to first unread message

Amy Troschinetz

unread,
Oct 6, 2014, 1:44:26 PM10/6/14
to druid-de...@googlegroups.com
I managed to load about a month of data into Druid, the dataset is only 64GB (compressed, but I'm only using a few of the columns for each event so the data we actually care about is much smaller).

Here's the description of the ingestion task:

{
    "type": "index",
    "dataSource": "simple_outclick",
    "granularitySpec":
    {
        "type": "uniform",
        "gran": "DAY",
        "intervals": ["2014-09-01T21:57:47/2014-10-01T15:04:07"]
    },
    "indexGranularity": "second",
    "aggregators": [
        {"type": "count", "name": "count"}
    ],
    "firehose":
    {
        "type": "local",
        "baseDir": "/home/users/me/stuff",
        "filter": ".csv",
        "parser":
        {
            "timestampSpec":
            {
                "column": "clickDate",
                "format": "yyyy-MM-dd HH:mm:ss"
            },
            "data":
            {
                "format": "tsv",
                "columns": ["masterClickId", [...]],
                "dimensions": ["masterClickId", "outclickTypeId", "siteId", "couponId", "calc_mediumCalc"]
            }
        }
    }
}

I can provide the entire indexer task log if anyone thinks it will be enlightening, but it does contain the following:

2014-10-03 09:37:32,610 INFO [task-runner-0] io.druid.indexing.worker.executor.ExecutorLifecycle - Task completed with status: {
  "id" : "index_simple_outclick_2014-10-01T17:46:21.967Z",
  "status" : "SUCCESS",
  "duration" : 143461732
}

When I do a timeBoundary query I get the following, which looks correct to me:

[
    {
        "result": {
            "maxTime": "2014-10-01T15:05:06.000Z",
            "minTime": "2014-09-01T21:50:02.000Z"
        },
        "timestamp": "2014-09-01T21:50:02.000Z"
    }
]

However when I try to do a groupBy query I get this response from my broker node:


If I query ip-of-one-of-myhistorical-nodes or my 2nd historical node instead of my broker node, I get this response:

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Direct buffer memory

I am currently running a cluster that looks like:

1x  druid-overlord       m1.xlarge
1x  druid-coordinator    m1.xlarge
1x  druid-broker         m3.2xlarge
2x  druid-historical     m3.2xlarge
1x  druid-middleManager  m3.2xlarge
1x  zookeeper            m1.small
1x  druid-mysql          m1.small

I'm not sure the best way to diagnose this error, I don't believe it should be possible that I'm running out of memory with such a manageable dataset. Each m3.2xlarge instance has 30GB of main memory. Is there some way to ask Druid how much memory it's currently using and for what, some kind of diagnostics panel or something? I keep trying to use the Coordinator Console but every control on those pages is unresponsive. The "View Information about the Cluster" page for example never actually returns any requested information.




PS: Here's the log from the broker node when it fails to service the request:

2014-10-06 17:12:23,411 INFO [qtp1197972673-54] com.metamx.http.client.pool.ChannelResourceFactory - Generating: http://10.7.150.217:8080
2014-10-06 17:12:23,413 INFO [qtp1197972673-54] com.metamx.http.client.pool.ChannelResourceFactory - Generating: http://10.71.179.186:8080
2014-10-06 17:12:24,398 WARN [qtp1197972673-54] io.druid.server.QueryResource - Exception occurred on request [GroupByQuery{limitSpec=NoopLimitSpec, dimFilter=null, granularity=DurationGranularity{length=86400000, origin=0}, dimensions=[], aggregatorSpecs=[LongSumAggregatorFactory{fieldName='count', name='totalClicks'}], postAggregatorSpecs=[], orderByLimitFn=identity}]
at io.druid.client.DirectDruidClient$JsonParserIterator.init(DirectDruidClient.java:294)
at io.druid.client.DirectDruidClient$JsonParserIterator.hasNext(DirectDruidClient.java:248)
at com.metamx.common.guava.BaseSequence.makeYielder(BaseSequence.java:103)
at com.metamx.common.guava.BaseSequence.toYielder(BaseSequence.java:81)
at com.metamx.common.guava.BaseSequence.accumulate(BaseSequence.java:67)
at com.metamx.common.guava.MappedSequence.accumulate(MappedSequence.java:40)
at com.metamx.common.guava.ConcatSequence$1.accumulate(ConcatSequence.java:46)
at com.metamx.common.guava.ConcatSequence$1.accumulate(ConcatSequence.java:42)
at com.metamx.common.guava.YieldingAccumulators$1.accumulate(YieldingAccumulators.java:32)
at com.metamx.common.guava.BaseSequence.makeYielder(BaseSequence.java:104)
at com.metamx.common.guava.BaseSequence.toYielder(BaseSequence.java:81)
at com.metamx.common.guava.BaseSequence.accumulate(BaseSequence.java:67)
at com.metamx.common.guava.ConcatSequence.accumulate(ConcatSequence.java:40)
at com.metamx.common.guava.LazySequence.accumulate(LazySequence.java:37)
at io.druid.query.MetricsEmittingQueryRunner$1.accumulate(MetricsEmittingQueryRunner.java:87)
at io.druid.query.groupby.GroupByQueryQueryToolChest.makeIncrementalIndex(GroupByQueryQueryToolChest.java:148)
at io.druid.query.groupby.GroupByQueryQueryToolChest.mergeGroupByResults(GroupByQueryQueryToolChest.java:115)
at io.druid.query.groupby.GroupByQueryQueryToolChest.access$100(GroupByQueryQueryToolChest.java:56)
at io.druid.query.groupby.GroupByQueryQueryToolChest$2.run(GroupByQueryQueryToolChest.java:85)
at io.druid.query.FinalizeResultsQueryRunner.run(FinalizeResultsQueryRunner.java:96)
at io.druid.query.BaseQuery.run(BaseQuery.java:80)
at io.druid.query.BaseQuery.run(BaseQuery.java:75)
at io.druid.server.QueryResource.doPost(QueryResource.java:119)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:167)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268)
at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180)
at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129)
at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622)
at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:298)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:219)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:478)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:462)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:279)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('j' (code 106)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: com.metamx.http.client.io.AppendableByteArrayInputStream@714924b5; line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1369)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:532)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:453)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2278)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:779)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:665)
at io.druid.client.DirectDruidClient$JsonParserIterator.init(DirectDruidClient.java:286)
... 70 more
2014-10-06 17:12:24,400 ERROR [qtp1197972673-54] io.druid.server.QueryResource - Exception handling request: {class=io.druid.server.QueryResource, exceptionType=class com.metamx.common.RE, exceptionMessage=Failure getting results from[http://10.71.179.186:8080/druid/v2/], exception=com.metamx.common.RE: Failure getting results from[http://10.71.179.186:8080/druid/v2/], query=GroupByQuery{limitSpec=NoopLimitSpec, dimFilter=null, granularity=DurationGranularity{length=86400000, origin=0}, dimensions=[], aggregatorSpecs=[LongSumAggregatorFactory{fieldName='count', name='totalClicks'}], postAggregatorSpecs=[], orderByLimitFn=identity}, peer=209.163.206.98}
at io.druid.client.DirectDruidClient$JsonParserIterator.init(DirectDruidClient.java:294)
at io.druid.client.DirectDruidClient$JsonParserIterator.hasNext(DirectDruidClient.java:248)
at com.metamx.common.guava.BaseSequence.makeYielder(BaseSequence.java:103)
at com.metamx.common.guava.BaseSequence.toYielder(BaseSequence.java:81)
at com.metamx.common.guava.BaseSequence.accumulate(BaseSequence.java:67)
at com.metamx.common.guava.MappedSequence.accumulate(MappedSequence.java:40)
at com.metamx.common.guava.ConcatSequence$1.accumulate(ConcatSequence.java:46)
at com.metamx.common.guava.ConcatSequence$1.accumulate(ConcatSequence.java:42)
at com.metamx.common.guava.YieldingAccumulators$1.accumulate(YieldingAccumulators.java:32)
at com.metamx.common.guava.BaseSequence.makeYielder(BaseSequence.java:104)
at com.metamx.common.guava.BaseSequence.toYielder(BaseSequence.java:81)
at com.metamx.common.guava.BaseSequence.accumulate(BaseSequence.java:67)
at com.metamx.common.guava.ConcatSequence.accumulate(ConcatSequence.java:40)
at com.metamx.common.guava.LazySequence.accumulate(LazySequence.java:37)
at io.druid.query.MetricsEmittingQueryRunner$1.accumulate(MetricsEmittingQueryRunner.java:87)
at io.druid.query.groupby.GroupByQueryQueryToolChest.makeIncrementalIndex(GroupByQueryQueryToolChest.java:148)
at io.druid.query.groupby.GroupByQueryQueryToolChest.mergeGroupByResults(GroupByQueryQueryToolChest.java:115)
at io.druid.query.groupby.GroupByQueryQueryToolChest.access$100(GroupByQueryQueryToolChest.java:56)
at io.druid.query.groupby.GroupByQueryQueryToolChest$2.run(GroupByQueryQueryToolChest.java:85)
at io.druid.query.FinalizeResultsQueryRunner.run(FinalizeResultsQueryRunner.java:96)
at io.druid.query.BaseQuery.run(BaseQuery.java:80)
at io.druid.query.BaseQuery.run(BaseQuery.java:75)
at io.druid.server.QueryResource.doPost(QueryResource.java:119)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:167)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268)
at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180)
at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129)
at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622)
at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:298)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:219)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:478)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:462)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:279)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('j' (code 106)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: com.metamx.http.client.io.AppendableByteArrayInputStream@714924b5; line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1369)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:532)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:453)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2278)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:779)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:665)
at io.druid.client.DirectDruidClient$JsonParserIterator.init(DirectDruidClient.java:286)
... 70 more



This e-mail, including attachments, contains confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. The reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately.

Amy Troschinetz

unread,
Oct 6, 2014, 2:03:46 PM10/6/14
to druid-de...@googlegroups.com
On Monday, October 6, 2014 12:44:26 PM UTC-5, Amy Troschinetz wrote:
                "dimensions": ["masterClickId", "outclickTypeId", "siteId", "couponId", "calc_mediumCalc"]


Maybe if I reduce the number and cardinality of the dimensions that would help reduce memory usage (assuming that's the issue)? Every event has it's own masterClickId, so I could remove that as a dimension if dimensions with high cardinality can cause issues.

When I ssh on to the historical nodes and run top I see a lot of free memory:

Historical Node 1:

top - 18:02:58 up 6 days,  1:10,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 123 total,   1 running, 122 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  30824292 total,  8276484 used, 22547808 free,   167000 buffers
KiB Swap:        0 total,        0 used,        0 free.  3501596 cached Mem

Historical Node 2:

top - 18:03:20 up 6 days,  1:10,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 123 total,   1 running, 122 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  30824292 total,  8271512 used, 22552780 free,   165704 buffers
KiB Swap:        0 total,        0 used,        0 free.  3497956 cached Mem

Amy Troschinetz

unread,
Oct 6, 2014, 2:05:43 PM10/6/14
to druid-de...@googlegroups.com
Here is the log on the historical node when I query it directly with the groupBy:


2014-10-06 17:59:21,828 INFO [groupBy_simple_outclick_[2014-09-03T00:00:00.000Z/2014-09-04T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[161] of size[1,073,741,824]
[Full GC[CMS: 10904K->11019K(3145728K), 0.1383250 secs] 264844K->11019K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.1384400 secs] [Times: user=0.16 sys=0.00, real=0.13 secs] 
2014-10-06 17:59:21,828 INFO [groupBy_simple_outclick_[2014-09-05T00:00:00.000Z/2014-09-06T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[162] of size[1,073,741,824]
2014-10-06 17:59:21,828 INFO [groupBy_simple_outclick_[2014-09-07T00:00:00.000Z/2014-09-08T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[163] of size[1,073,741,824]
[Full GC[CMS: 11019K->11007K(3145728K), 0.0821060 secs] 15933K->11007K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0822090 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
[Full GC[CMS: 11007K->10996K(3145728K), 0.0821220 secs] 14704K->10996K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0822240 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:21,828 INFO [groupBy_simple_outclick_[2014-09-06T00:00:00.000Z/2014-09-07T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[164] of size[1,073,741,824]
[Full GC[CMS: 10996K->10954K(3145728K), 0.0819850 secs] 15498K->10954K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0820910 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:22,215 INFO [groupBy_simple_outclick_[2014-09-08T00:00:00.000Z/2014-09-09T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[165] of size[1,073,741,824]
[Full GC[CMS: 10954K->10908K(3145728K), 0.0820250 secs] 15677K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0821260 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:22,298 INFO [groupBy_simple_outclick_[2014-09-18T00:00:00.000Z/2014-09-19T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[166] of size[1,073,741,824]
[Full GC[CMS: 10908K->10909K(3145728K), 0.0818510 secs] 15367K->10909K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0819520 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] 
2014-10-06 17:59:22,381 INFO [groupBy_simple_outclick_[2014-09-25T00:00:00.000Z/2014-09-26T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[167] of size[1,073,741,824]
[Full GC[CMS: 10909K->10908K(3145728K), 0.0818510 secs] 15146K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0819530 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:22,463 INFO [groupBy_simple_outclick_[2014-09-30T00:00:00.000Z/2014-10-01T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[168] of size[1,073,741,824]
[Full GC[CMS: 10908K->10907K(3145728K), 0.0817670 secs] 14954K->10907K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0818700 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:22,546 INFO [groupBy_simple_outclick_[2014-09-29T00:00:00.000Z/2014-09-30T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[169] of size[1,073,741,824]
[Full GC[CMS: 10907K->10907K(3145728K), 0.0821680 secs] 15175K->10907K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0822700 secs] [Times: user=0.08 sys=0.00, real=0.09 secs] 
2014-10-06 17:59:22,629 INFO [groupBy_simple_outclick_[2014-09-28T00:00:00.000Z/2014-09-29T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[170] of size[1,073,741,824]
[Full GC[CMS: 10907K->10908K(3145728K), 0.0822190 secs] 15366K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0823200 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:22,712 INFO [groupBy_simple_outclick_[2014-09-27T00:00:00.000Z/2014-09-28T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[171] of size[1,073,741,824]
2014-10-06 17:59:22,712 INFO [groupBy_simple_outclick_[2014-09-26T00:00:00.000Z/2014-09-27T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[172] of size[1,073,741,824]
[Full GC[CMS: 10908K->10908K(3145728K), 0.0821860 secs] 15145K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0822850 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
[Full GC[CMS: 10908K->10906K(3145728K), 0.0820730 secs] 14192K->10906K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0821750 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:22,878 INFO [groupBy_simple_outclick_[2014-09-24T00:00:00.000Z/2014-09-25T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[173] of size[1,073,741,824]
2014-10-06 17:59:22,878 INFO [groupBy_simple_outclick_[2014-09-23T00:00:00.000Z/2014-09-24T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[174] of size[1,073,741,824]
[Full GC[CMS: 10906K->10908K(3145728K), 0.0822440 secs] 15174K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0823440 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] 
[Full GC[CMS: 10908K->10908K(3145728K), 0.0820110 secs] 14383K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0821350 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:23,044 INFO [groupBy_simple_outclick_[2014-09-21T00:00:00.000Z/2014-09-22T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[175] of size[1,073,741,824]
[Full GC[CMS: 10908K->10908K(3145728K), 0.0821690 secs] 15145K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0822680 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:23,044 INFO [groupBy_simple_outclick_[2014-09-22T00:00:00.000Z/2014-09-23T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[176] of size[1,073,741,824]
[Full GC[CMS: 10908K->10905K(3145728K), 0.0827840 secs] 14192K->10905K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0828830 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] 
2014-10-06 17:59:23,210 INFO [groupBy_simple_outclick_[2014-09-20T00:00:00.000Z/2014-09-21T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[177] of size[1,073,741,824]
2014-10-06 17:59:23,210 INFO [groupBy_simple_outclick_[2014-09-19T00:00:00.000Z/2014-09-20T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[178] of size[1,073,741,824]
[Full GC[CMS: 10905K->10908K(3145728K), 0.0832530 secs] 15174K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0833520 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:23,294 INFO [groupBy_simple_outclick_[2014-09-17T00:00:00.000Z/2014-09-18T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[179] of size[1,073,741,824]
[Full GC[CMS: 10908K->10911K(3145728K), 0.0823520 secs] 14816K->10911K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0824530 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
[Full GC[CMS: 10911K->10907K(3145728K), 0.0818050 secs] 14386K->10907K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0819300 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] 
2014-10-06 17:59:23,461 INFO [groupBy_simple_outclick_[2014-09-15T00:00:00.000Z/2014-09-16T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[180] of size[1,073,741,824]
[Full GC[CMS: 10907K->10908K(3145728K), 0.0822840 secs] 15187K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0824090 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:23,461 INFO [groupBy_simple_outclick_[2014-09-16T00:00:00.000Z/2014-09-17T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[181] of size[1,073,741,824]
[Full GC[CMS: 10908K->10906K(3145728K), 0.0819300 secs] 15145K->10906K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0820310 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:23,626 INFO [groupBy_simple_outclick_[2014-09-14T00:00:00.000Z/2014-09-15T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[182] of size[1,073,741,824]
2014-10-06 17:59:23,627 INFO [groupBy_simple_outclick_[2014-09-13T00:00:00.000Z/2014-09-14T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[183] of size[1,073,741,824]
[Full GC[CMS: 10906K->10908K(3145728K), 0.0823800 secs] 15132K->10908K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0824880 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] 
[Full GC[CMS: 10908K->10906K(3145728K), 0.0821010 secs] 13446K->10906K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0822010 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:23,793 INFO [groupBy_simple_outclick_[2014-09-12T00:00:00.000Z/2014-09-13T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[184] of size[1,073,741,824]
2014-10-06 17:59:23,793 INFO [groupBy_simple_outclick_[2014-09-11T00:00:00.000Z/2014-09-12T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[185] of size[1,073,741,824]
[Full GC[CMS: 10906K->10910K(3145728K), 0.0822680 secs] 15186K->10910K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0823710 secs] [Times: user=0.09 sys=0.00, real=0.08 secs] 
[Full GC[CMS: 10910K->10906K(3145728K), 0.0820570 secs] 14152K->10906K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0821570 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:23,959 INFO [groupBy_simple_outclick_[2014-09-10T00:00:00.000Z/2014-09-11T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[186] of size[1,073,741,824]
2014-10-06 17:59:23,959 INFO [groupBy_simple_outclick_[2014-09-09T00:00:00.000Z/2014-09-10T00:00:00.000Z]] io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool - Allocating new intermediate processing buffer[187] of size[1,073,741,824]
[Full GC[CMS: 10906K->10907K(3145728K), 0.0819720 secs] 15131K->10907K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0820740 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] 
[Full GC[CMS: 10907K->10905K(3145728K), 0.0816840 secs] 12379K->10905K(4089472K), [CMS Perm : 40278K->40278K(67284K)], 0.0817850 secs] [Times: user=0.08 sys=0.00, real=0.08 secs] 
2014-10-06 17:59:24,278 WARN [qtp1514649449-58] io.druid.server.QueryResource - Exception occurred on request [GroupByQuery{limitSpec=NoopLimitSpec, dimFilter=null, granularity=DurationGranularity{length=86400000, origin=0}, dimensions=[], aggregatorSpecs=[LongSumAggregatorFactory{fieldName='count', name='totalClicks'}], postAggregatorSpecs=[], orderByLimitFn=identity}]
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Direct buffer memory
at io.druid.query.GroupByParallelQueryRunner.run(GroupByParallelQueryRunner.java:130)
at io.druid.query.groupby.GroupByQueryQueryToolChest.mergeGroupByResults(GroupByQueryQueryToolChest.java:112)
at io.druid.query.groupby.GroupByQueryQueryToolChest.access$100(GroupByQueryQueryToolChest.java:56)
at io.druid.query.groupby.GroupByQueryQueryToolChest$2.run(GroupByQueryQueryToolChest.java:85)
at io.druid.query.FinalizeResultsQueryRunner.run(FinalizeResultsQueryRunner.java:96)
at io.druid.query.BaseQuery.run(BaseQuery.java:80)
at io.druid.query.BaseQuery.run(BaseQuery.java:75)
at io.druid.server.QueryResource.doPost(QueryResource.java:119)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Direct buffer memory
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at io.druid.query.PrioritizedExecutorService$PrioritizedListenableFutureTask.get(PrioritizedExecutorService.java:228)
at io.druid.query.GroupByParallelQueryRunner.run(GroupByParallelQueryRunner.java:124)
... 55 more
Caused by: java.lang.OutOfMemoryError: Direct buffer memory
at java.nio.Bits.reserveMemory(Bits.java:658)
at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306)
at io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool$1.get(DruidProcessingModule.java:126)
at io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool$1.get(DruidProcessingModule.java:116)
at io.druid.collections.StupidPool.take(StupidPool.java:55)
at io.druid.query.groupby.GroupByQueryEngine.process(GroupByQueryEngine.java:103)
at io.druid.query.groupby.GroupByQueryRunnerFactory$GroupByQueryRunner.run(GroupByQueryRunnerFactory.java:148)
at io.druid.query.ReferenceCountingSegmentQueryRunner.run(ReferenceCountingSegmentQueryRunner.java:50)
at io.druid.client.CachingQueryRunner.run(CachingQueryRunner.java:165)
at io.druid.query.BySegmentQueryRunner.run(BySegmentQueryRunner.java:100)
at io.druid.query.MetricsEmittingQueryRunner$1.accumulate(MetricsEmittingQueryRunner.java:87)
at io.druid.query.spec.SpecificSegmentQueryRunner$2$1.call(SpecificSegmentQueryRunner.java:78)
at io.druid.query.spec.SpecificSegmentQueryRunner.doNamed(SpecificSegmentQueryRunner.java:149)
at io.druid.query.spec.SpecificSegmentQueryRunner.access$300(SpecificSegmentQueryRunner.java:35)
at io.druid.query.spec.SpecificSegmentQueryRunner$2.doItNamed(SpecificSegmentQueryRunner.java:140)
at io.druid.query.spec.SpecificSegmentQueryRunner$2.accumulate(SpecificSegmentQueryRunner.java:72)
at io.druid.query.GroupByParallelQueryRunner$1$1.call(GroupByParallelQueryRunner.java:106)
at io.druid.query.GroupByParallelQueryRunner$1$1.call(GroupByParallelQueryRunner.java:101)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at io.druid.query.PrioritizedExecutorService$PrioritizedListenableFutureTask.run(PrioritizedExecutorService.java:204)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
... 1 more
2014-10-06 17:59:24,279 ERROR [qtp1514649449-58] io.druid.server.QueryResource - Exception handling request: {class=io.druid.server.QueryResource, exceptionType=class java.lang.RuntimeException, exceptionMessage=java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Direct buffer memory, exception=java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Direct buffer memory, query=GroupByQuery{limitSpec=NoopLimitSpec, dimFilter=null, granularity=DurationGranularity{length=86400000, origin=0}, dimensions=[], aggregatorSpecs=[LongSumAggregatorFactory{fieldName='count', name='totalClicks'}], postAggregatorSpecs=[], orderByLimitFn=identity}, peer=209.163.206.98}
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Direct buffer memory
at io.druid.query.GroupByParallelQueryRunner.run(GroupByParallelQueryRunner.java:130)
at io.druid.query.groupby.GroupByQueryQueryToolChest.mergeGroupByResults(GroupByQueryQueryToolChest.java:112)
at io.druid.query.groupby.GroupByQueryQueryToolChest.access$100(GroupByQueryQueryToolChest.java:56)
at io.druid.query.groupby.GroupByQueryQueryToolChest$2.run(GroupByQueryQueryToolChest.java:85)
at io.druid.query.FinalizeResultsQueryRunner.run(FinalizeResultsQueryRunner.java:96)
at io.druid.query.BaseQuery.run(BaseQuery.java:80)
at io.druid.query.BaseQuery.run(BaseQuery.java:75)
at io.druid.server.QueryResource.doPost(QueryResource.java:119)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Direct buffer memory
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at io.druid.query.PrioritizedExecutorService$PrioritizedListenableFutureTask.get(PrioritizedExecutorService.java:228)
at io.druid.query.GroupByParallelQueryRunner.run(GroupByParallelQueryRunner.java:124)
... 55 more
Caused by: java.lang.OutOfMemoryError: Direct buffer memory
at java.nio.Bits.reserveMemory(Bits.java:658)
at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306)
at io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool$1.get(DruidProcessingModule.java:126)
at io.druid.guice.DruidProcessingModule$IntermediateProcessingBufferPool$1.get(DruidProcessingModule.java:116)
at io.druid.collections.StupidPool.take(StupidPool.java:55)
at io.druid.query.groupby.GroupByQueryEngine.process(GroupByQueryEngine.java:103)
at io.druid.query.groupby.GroupByQueryRunnerFactory$GroupByQueryRunner.run(GroupByQueryRunnerFactory.java:148)
at io.druid.query.ReferenceCountingSegmentQueryRunner.run(ReferenceCountingSegmentQueryRunner.java:50)
at io.druid.client.CachingQueryRunner.run(CachingQueryRunner.java:165)
at io.druid.query.BySegmentQueryRunner.run(BySegmentQueryRunner.java:100)
at io.druid.query.MetricsEmittingQueryRunner$1.accumulate(MetricsEmittingQueryRunner.java:87)
at io.druid.query.spec.SpecificSegmentQueryRunner$2$1.call(SpecificSegmentQueryRunner.java:78)
at io.druid.query.spec.SpecificSegmentQueryRunner.doNamed(SpecificSegmentQueryRunner.java:149)
at io.druid.query.spec.SpecificSegmentQueryRunner.access$300(SpecificSegmentQueryRunner.java:35)
at io.druid.query.spec.SpecificSegmentQueryRunner$2.doItNamed(SpecificSegmentQueryRunner.java:140)
at io.druid.query.spec.SpecificSegmentQueryRunner$2.accumulate(SpecificSegmentQueryRunner.java:72)
at io.druid.query.GroupByParallelQueryRunner$1$1.call(GroupByParallelQueryRunner.java:106)
at io.druid.query.GroupByParallelQueryRunner$1$1.call(GroupByParallelQueryRunner.java:101)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at io.druid.query.PrioritizedExecutorService$PrioritizedListenableFutureTask.run(PrioritizedExecutorService.java:204)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
... 1 more

Fangjin Yang

unread,
Oct 6, 2014, 2:33:42 PM10/6/14
to druid-de...@googlegroups.com
Hi Amy, the failure to get results is a message that comes up when the broker times out a request to the historical. It looks like the node is GCing quite a bit and eventually running out of memory, which is an sign of misconfiguration. Can you share your historical runtime.properties? In the meantime, do timeseries and topNs work? How fast are the queries returning?
...

Amy Troschinetz

unread,
Oct 6, 2014, 3:03:37 PM10/6/14
to druid-de...@googlegroups.com
On Monday, October 6, 2014 1:33:42 PM UTC-5, Fangjin Yang wrote:
Hi Amy, the failure to get results is a message that comes up when the broker times out a request to the historical. It looks like the node is GCing quite a bit and eventually running out of memory, which is an sign of misconfiguration. Can you share your historical runtime.properties? In the meantime, do timeseries and topNs work? How fast are the queries returning?

historical runtime.properties:

druid.service=druid/historical
druid.port=8080

# Historical
druid.server.maxSize=21474836480
druid.segmentCache.locations=[{"path": "/tmp/druid/indexCache", "maxSize"\: 10000000000}]

# Indexing Service
druid.selectors.indexing.serviceName=druid:overlord

# ZooKeeper
druid.zk.service.host=10.152.158.194:2181

# Configuration DB
druid.db.connector.connectURI=jdbc:mysql://10.165.49.238:3306/druid
druid.db.connector.user=druid
druid.db.connector.password=diurd

# Processing
druid.processing.numThreads=7
druid.processing.buffer.sizeBytes=1073741824
druid.server.http.numThreads=50

# Logging and Monitors
druid.emitter=logging
druid.emitter.logging.logLevel=debug
druid.druid.request.logging.type=file
druid.request.logging.dir=/usr/local/druid-services/logs
druid.monitoring.monitors=["com.metamx.metrics.SysMonitor","com.metamx.metrics.JvmMonitor"]

# S3 Deep Storage
druid.extensions.coordinates=["io.druid.extensions:druid-s3-extensions:0.6.121.1"]
druid.storage.type=s3
druid.s3.accessKey=XXXXXXXXXXXXXXXXXXXX
druid.s3.secretKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
druid.storage.bucket=s3-bucket-name-here
# druid.storage.baseKey=<base key prefix to use, i.e. what directory>

# Cassandra Deep Storage
# druid.extensions.coordinates=["io.druid.extensions:druid-cassandra-storage:0.6.121.1"]
# druid.storage.type=c*
# druid.storage.host=none:9160
# druid.storage.keyspace=druid 

Amy Troschinetz

unread,
Oct 6, 2014, 3:13:59 PM10/6/14
to druid-de...@googlegroups.com
On Monday, October 6, 2014 1:33:42 PM UTC-5, Fangjin Yang wrote:
In the meantime, do timeseries and topNs work? How fast are the queries returning?

Using this topN query:

{
    "queryType": "topN",
    "dataSource": "simple_outclick",
    "dimension": "calc_mediumCalc",
    "threshold": 5,
    "metric": "totalClicks",
    "granularity": "all",
    "aggregations": [
        {
            "type": "longSum",
            "fieldName": "count",
            "name": "totalClicks"
        }
    ], 
    "intervals": ["2014-09-01/2014-10-01"]
}

I get the result

[]

which returns in less than 2 seconds.


And using this timeseries query:

{
    "queryType": "timeseries",
    "dataSource": "sample_outclick",
    "granularity": "day",
    "aggregations": [
        {
            "type": "longSum",
            "fieldName": "count",
            "name": "totalClicks"
        }
    ], 
    "intervals": ["2014-09-01/2014-10-01"]
}

I get the result

[]

which takes less than a second. 

Fangjin Yang

unread,
Oct 6, 2014, 4:03:33 PM10/6/14
to druid-de...@googlegroups.com
Hi, please see inline.
Do you happen to have your JVM settings as well? Heap size, processing buffer size, etc.

Fangjin Yang

unread,
Oct 6, 2014, 4:05:38 PM10/6/14
to druid-de...@googlegroups.com
Inline again.


On Monday, October 6, 2014 12:13:59 PM UTC-7, Amy Troschinetz wrote:
On Monday, October 6, 2014 1:33:42 PM UTC-5, Fangjin Yang wrote:
In the meantime, do timeseries and topNs work? How fast are the queries returning?

If you issue a GET request to broker_ip:port//druid/v2/datasources/simple_outclick?interval=0/3000, what do you see?
 
Using this topN query:

{
    "queryType": "topN",
    "dataSource": "simple_outclick",
    "dimension": "calc_mediumCalc",
    "threshold": 5,
    "metric": "totalClicks",
    "granularity": "all",
    "aggregations": [
        {
            "type": "longSum",
            "fieldName": "count",
            "name": "totalClicks"
        }
    ], 
    "intervals": ["2014-09-01/2014-10-01"]
}

I get the result

[]

which returns in less than 2 seconds. 


And using this timeseries query:

{
    "queryType": "timeseries",
    "dataSource": "sample_outclick",

simple not sample? 

Fangjin Yang

unread,
Oct 6, 2014, 4:06:12 PM10/6/14
to druid-de...@googlegroups.com
Sorry that should be broker_ip:port/druid/v2/datasources/simple_outclick?interval=0/3000, put an extra '/' in there

Amy Troschinetz

unread,
Oct 6, 2014, 4:32:42 PM10/6/14
to druid-de...@googlegroups.com
On Oct 6, 2014, at 3:05 PM, Fangjin Yang <fangj...@gmail.com> wrote:

If you issue a GET request to broker_ip:port//druid/v2/datasources/simple_outclick?interval=0/3000, what do you see? 

$ curl 'http://broker-ip:8080//druid/v2/datasources/simple_outclick' --data-urlencode 'interval=0/3000' -X GET
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 404 </title>
</head>
<body>
<h2>HTTP ERROR: 404</h2>
<p>Problem accessing //druid/v2/datasources/simple_outclick. Reason:
<pre>    Not Found</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
</body>
</html>

And using this timeseries query:

{
    "queryType": "timeseries",
    "dataSource": "sample_outclick",

simple not sample? 

Whoops! Fixing that, this is the timeseries response I now get:

curl --silent --show-error -d @series.json -H 'content-type: application/json' 'http://broker-ip:8080/druid/v2/' --data-urlencode 'pretty' | python -mjson.tool | pygmentize -l json -f terminal256

[
    {
        "result": {
            "totalClicks": 333120
        },
        "timestamp": "2014-09-01T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1800080
        },
        "timestamp": "2014-09-02T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1601253
        },
        "timestamp": "2014-09-03T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1621886
        },
        "timestamp": "2014-09-04T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1872428
        },
        "timestamp": "2014-09-05T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1801771
        },
        "timestamp": "2014-09-06T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1625716
        },
        "timestamp": "2014-09-07T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1614029
        },
        "timestamp": "2014-09-08T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1610579
        },
        "timestamp": "2014-09-09T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1520212
        },
        "timestamp": "2014-09-10T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1586268
        },
        "timestamp": "2014-09-11T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1683454
        },
        "timestamp": "2014-09-12T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1836046
        },
        "timestamp": "2014-09-13T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1656146
        },
        "timestamp": "2014-09-14T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1648296
        },
        "timestamp": "2014-09-15T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1724089
        },
        "timestamp": "2014-09-16T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1563059
        },
        "timestamp": "2014-09-17T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1510759
        },
        "timestamp": "2014-09-18T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1659920
        },
        "timestamp": "2014-09-19T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1790762
        },
        "timestamp": "2014-09-20T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1631943
        },
        "timestamp": "2014-09-21T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1667664
        },
        "timestamp": "2014-09-22T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1636691
        },
        "timestamp": "2014-09-23T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1569636
        },
        "timestamp": "2014-09-24T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1555011
        },
        "timestamp": "2014-09-25T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1829566
        },
        "timestamp": "2014-09-26T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1949181
        },
        "timestamp": "2014-09-27T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1739530
        },
        "timestamp": "2014-09-28T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1772813
        },
        "timestamp": "2014-09-29T00:00:00.000Z"
    },
    {
        "result": {
            "totalClicks": 1788377
        },
        "timestamp": "2014-09-30T00:00:00.000Z"
    }
]

real 0m0.446s
user 0m0.003s
sys 0m0.003s

Fangjin Yang

unread,
Oct 6, 2014, 4:33:47 PM10/6/14
to druid-de...@googlegroups.com
Sorry that should be broker_ip:port/druid/v2/datasources/simple_outclick?interval=0/3000, put an extra '/' in there
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/DC4A2268-1CFC-4085-8399-F25BD24B8B0F%40rmn.com.

For more options, visit https://groups.google.com/d/optout.

Amy Troschinetz

unread,
Oct 6, 2014, 4:35:14 PM10/6/14
to druid-de...@googlegroups.com
On Oct 6, 2014, at 3:03 PM, Fangjin Yang <fangj...@gmail.com> wrote:

Do you happen to have your JVM settings as well? Heap size, processing buffer size, etc.

Do you mean these?

java -server -Xmx4g -Xms4g -XX:NewSize=1g -XX:MaxDirectMemorySize=4g -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -Duser.timezone=UTC -Dfile.encoding=UTF-8 -Djava.i.tmpdir=/tmp -classpath /usr/local/druid-services/lib/*:/usr/local/druid-services/config/historical io.druid.cli.Main server historical

Fangjin Yang

unread,
Oct 6, 2014, 4:50:43 PM10/6/14
to druid-de...@googlegroups.com
Cool, did you see my email about correcting the path for GET?

--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.

Amy Troschinetz

unread,
Oct 6, 2014, 5:24:41 PM10/6/14
to druid-de...@googlegroups.com
On Oct 6, 2014, at 3:06 PM, Fangjin Yang <fangj...@gmail.com> wrote:

Sorry that should be broker_ip:port/druid/v2/datasources/simple_outclick?interval=0/3000, put an extra '/' in there

Oops, I should have read the next email before replying to the last :)


curl --silent --show-error -X GET 'http://54.226.136.41:8080/druid/v2/datasources/simple_outclick' --data-urlencode 'interval=0/3000' | python -mjson.tool | pygmentize -l json -f terminal256

{
    "dimensions": [
        "outclicktypeid",
        "couponid",
        "calc_mediumcalc",
        "siteid",
        "masterclickid"
    ],
    "metrics": [
        "count"
    ]
}

real 0m0.180s
user 0m0.004s
sys 0m0.003s

Fangjin Yang

unread,
Oct 6, 2014, 5:31:18 PM10/6/14
to druid-de...@googlegroups.com
Druid has an annoying casing problem that is getting fixed soon (https://github.com/metamx/druid/pull/690) :P

Try the topN again with:
{
    "queryType": "topN",
    "dataSource": "simple_outclick",
    "dimension": "calc_mediumcalc", <<<<
    "threshold": 5,
    "metric": "totalClicks",
    "granularity": "all",
    "aggregations": [
        {
            "type": "longSum",
            "fieldName": "count",
            "name": "totalClicks"
        }
    ], 
    "intervals": ["2014-09-01/2014-10-01"]
}

I'm guessing that will work.

As for your groupBy problem, try these historical settings out for your hardware:
druid.processing.buffer.sizeBytes=512000000

Do you still see the same error on the historical for groupBy?

Amy Troschinetz

unread,
Oct 7, 2014, 12:45:28 PM10/7/14
to druid-de...@googlegroups.com
On Oct 6, 2014, at 4:31 PM, Fangjin Yang <fangj...@gmail.com> wrote:

Try the topN again with:
{
    "queryType": "topN",
    "dataSource": "simple_outclick",
    "dimension": "calc_mediumcalc", <<<<
    "threshold": 5,
    "metric": "totalClicks",
    "granularity": "all",
    "aggregations": [
        {
            "type": "longSum",
            "fieldName": "count",
            "name": "totalClicks"
        }
    ], 
    "intervals": ["2014-09-01/2014-10-01"]
}

I'm guessing that will work.

No luck:

$ cat top_channel.json 
{
    "queryType": "topN",
    "dataSource": "simple_outclick",
    "dimension": "calc_mediumcalc",
    "threshold": 5,
    "metric": "totalClicks",
    "granularity": "all",
    "aggregations": [
        {
            "type": "longSum",
            "fieldName": "count",
            "name": "totalClicks"
        }
    ], 
    "intervals": ["2014-09-01/2014-10-01"]
}

$ time curl --silent --show-error -d @top_channel.json -H 'content-type: application/json' 'http://broker-ip:8080/druid/v2/' --data-urlencode 'pretty'

[]

real 0m1.545s
user 0m0.003s
sys 0m0.002s

Even after changing the dimension to lowercase I still get an empty list as a response.


On Oct 6, 2014, at 4:31 PM, Fangjin Yang <fangj...@gmail.com> wrote:

As for your groupBy problem, try these historical settings out for your hardware:
druid.processing.buffer.sizeBytes=512000000

Do you still see the same error on the historical for groupBy?

That worked! Getting expected results back, and it's super fast too, less than a second response time. :D

Fangjin Yang

unread,
Oct 7, 2014, 1:39:53 PM10/7/14
to druid-de...@googlegroups.com
Hmm, odd that the topN is returning empty results... any strange exceptions in the broker or historical? I don't think it matters, but changing from totalClicks to totalclicks probably won't make a difference... I think, but maybe worth a quick try. The dimension calc_mediumcalc does have values in the data you've ingested correct?

Amy Troschinetz

unread,
Oct 7, 2014, 1:49:58 PM10/7/14
to druid-de...@googlegroups.com
On Oct 7, 2014, at 12:39 PM, Fangjin Yang <fangj...@gmail.com> wrote:

Hmm, odd that the topN is returning empty results... any strange exceptions in the broker or historical? I don't think it matters, but changing from totalClicks to totalclicks probably won't make a difference... I think, but maybe worth a quick try. The dimension calc_mediumcalc does have values in the data you've ingested correct?

I just went back to check and yeah, I'm getting good looking data for the groupBy query. I re-ran the topN query again and now it seems to be working too:

curl --silent --show-error -d @top_channel.json -H 'content-type: application/json' 'http://broker-ip:8080/druid/v2/' --data-urlencode 'pretty' | python -mjson.tool | pygmentize -l json -f terminal256

[
    {
        "result": [
            {
                "calc_mediumcalc": "direct",
                "totalClicks": X
            },
            {
                "calc_mediumcalc": "organic",
                "totalClicks": X
            },
            {
                "calc_mediumcalc": "\\N",
                "totalClicks": X
            },
            {
                "calc_mediumcalc": "newsletter",
                "totalClicks": X
            },
            {
                "calc_mediumcalc": "organic_noKeyword",
                "totalClicks": X
            }
        ],
        "timestamp": "2014-09-01T21:50:02.000Z"
    }
]

real 0m0.195s
user 0m0.003s
sys 0m0.002s

I don't think I changed anything except the intervals (I've tried a few and they all seem to work fine now) but I guess I must have? This is the query text:

$ cat top_channel.json 
{
    "queryType": "topN",
    "dataSource": "simple_outclick",
    "dimension": "calc_mediumcalc",
    "threshold": 5,
    "metric": "totalClicks",
    "granularity": "all",
    "aggregations": [
        {
            "type": "longSum",
            "fieldName": "count",
            "name": "totalClicks"
        }
    ], 
    "intervals": ["2014-09-01/2014-09-02"]

Fangjin Yang

unread,
Oct 7, 2014, 1:51:18 PM10/7/14
to druid-de...@googlegroups.com
Yay!

--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages