在使用imply2.8.20的时候,偶尔查询会失效,追踪了一下historical的log发现如下错误:
ERROR io.druid.server.QueryResource: Exception handling request: {class=io.druid.server.QueryResource, exceptionType=class io.druid.java.util.common.RE, exceptionMessage=Failure getting results for query[7ea4a567-41a6-4987-adf6-172aef3a25a21] url[http://xxxx:8100/druid/v2/] because of [org.jboss.netty.channel.ChannelException: Channel disconnected], exception=io.druid.java.util.common.RE: Failure getting results for query[7ea4a5567-41a6-4987-adf6-172aef3a25a21] url[http://xxxx:8100/druid/v2/] because of [org.jboss.netty.channel.ChannelException: Channel disconnected]
很有意思的是这个错误没什么规律,纯属偶发性质的。
没有深追是哪里的代码出的问题 ,从配置调整入手。这个问题应该是一个表象。
于是乎深扒了一下historical节点的conf/druid/historical/各项配置,增大了runtime.properties中druid.processing.numThreads。
经过一段时间的运行,没在出现查询失效的问题,我想应该是解决了。。
总结:应该是在同一时间很多的冷数据查询,而且这些查询可能在时间的跨度上又比较大,historical的节点配置的线程数不足以支持较大的并行大跨度查询,导致historical节点报错: Channel disconnected
愚见奉上,勿喷!