文档章节

druid.io 使用indexing service 配置出现 - Received FAILED

一只小江
 一只小江
发布于 2016/03/22 19:40
字数 817
阅读 740
收藏 0

多节点部署druid.io,使用indexing service进行批量数据导入,出现问题。

提交任务后,在overlord节点消息中出现如下信息:

2016-03-22T19:25:17,555 INFO [Curator-PathChildrenCache-0] io.druid.indexing.overlord.RemoteTaskRunner - Worker[druid04:8091] wrote RUNNING status for task: index_wikipedia_2016-03-22T19:25:17.191+08:00
2016-03-22T19:25:23,219 INFO [Curator-PathChildrenCache-0] io.druid.indexing.overlord.RemoteTaskRunner - Worker[druid04:8091] wrote FAILED status for task: index_wikipedia_2016-03-22T19:25:17.191+08:00
2016-03-22T19:25:23,219 INFO [Curator-PathChildrenCache-0] io.druid.indexing.overlord.RemoteTaskRunner - Worker[druid04:8091] completed task[index_wikipedia_2016-03-22T19:25:17.191+08:00] with status[FAILED]
2016-03-22T19:25:23,219 INFO [Curator-PathChildrenCache-0] io.druid.indexing.overlord.TaskQueue - Received FAILED status for task: index_wikipedia_2016-03-22T19:25:17.191+08:00
2016-03-22T19:25:23,219 INFO [Curator-PathChildrenCache-0] io.druid.indexing.overlord.RemoteTaskRunner - Cleaning up task[index_wikipedia_2016-03-22T19:25:17.191+08:00] on worker[druid04:8091]
2016-03-22T19:25:23,222 INFO [Curator-PathChildrenCache-0] io.druid.indexing.overlord.TaskLockbox - Removing task[index_wikipedia_2016-03-22T19:25:17.191+08:00] from activeTasks
2016-03-22T19:25:23,223 INFO [Curator-PathChildrenCache-0] io.druid.indexing.overlord.TaskLockbox - Removing task[index_wikipedia_2016-03-22T19:25:17.191+08:00] from TaskLock[index_wikipedia_2016-03-22T19:25:17.191+08:00]

发现是task在work节点上运行失败。这时查找到middleManage节点日志,继续查看原因。

2016-03-22T19:25:18,227 INFO [forking-task-runner-0] io.druid.indexing.overlord.ForkingTaskRunner - Logging task index_wikipedia_2016-03-22T19:25:17.191+08:00 output to: /tmp/persistent/task/index_wikipedia_2016-03-22T19:25:17.191+08:00/log
2016-03-22T19:25:23,783 INFO [forking-task-runner-0] io.druid.indexing.overlord.ForkingTaskRunner - Process exited with status[1] for task: index_wikipedia_2016-03-22T19:25:17.191+08:00
2016-03-22T19:25:23,787 INFO [forking-task-runner-0] io.druid.indexing.common.tasklogs.FileTaskLogs - Wrote task log to: /tmp/druid/indexlog/index_wikipedia_2016-03-22T19:25:17.191+08:00.log
2016-03-22T19:25:23,789 INFO [forking-task-runner-0] io.druid.indexing.overlord.ForkingTaskRunner - Removing task directory: /tmp/persistent/task/index_wikipedia_2016-03-22T19:25:17.191+08:00
2016-03-22T19:25:23,811 INFO [WorkerTaskMonitor-0] io.druid.indexing.worker.WorkerTaskMonitor - Job's finished. Completed [index_wikipedia_2016-03-22T19:25:17.191+08:00] with status [FAILED]

很失望的是只能看出异常退出,却没有显示的具体原因。

这时停掉 middlemanager线程,修改middleManager 的配置config/middleManager/runtime.properties 文件,将log信息配置保存在本地的目录。

druid.indexer.logs.type=local
druid.indexer.logs.directory=/tmp/druid/indexlog

配置完成后,重新运行middleManager线程,并且重新提交任务,错误依旧,但是此时可以找到错误的具体原因。查看刚刚配置过的=/tmp/druid/indexlog文件。

) Not enough direct memory.  Please adjust -XX:MaxDirectMemorySize, druid.processing.buffer.sizeBytes, or druid.processing.numThreads: maxDirectMemory[239,075,328], memoryNeeded[4,294,967,296] = druid.processing.buffer.sizeBytes[1,073,741,824] * ( druid.processing.numThreads[3] + 1 )
  at io.druid.guice.DruidProcessingModule.getIntermediateResultsPool(DruidProcessingModule.java:106)
  at io.druid.guice.DruidProcessingModule.getIntermediateResultsPool(DruidProcessingModule.java:106)
  while locating io.druid.collections.StupidPool<java.nio.ByteBuffer> annotated with @io.druid.guice.annotations.Global()
    for parameter 1 at io.druid.query.groupby.GroupByQueryEngine.<init>(GroupByQueryEngine.java:75)
  at io.druid.guice.QueryRunnerFactoryModule.configure(QueryRunnerFactoryModule.java:83)
  while locating io.druid.query.groupby.GroupByQueryEngine
    for parameter 0 at io.druid.query.groupby.GroupByQueryRunnerFactory.<init>(GroupByQueryRunnerFactory.java:79)
  at io.druid.guice.QueryRunnerFactoryModule.configure(QueryRunnerFactoryModule.java:80)
  while locating io.druid.query.groupby.GroupByQueryRunnerFactory
  while locating io.druid.query.QueryRunnerFactory annotated with @com.google.inject.multibindings.Element(setName=,uniqueId=26, type=MAPBINDER)
  at io.druid.guice.DruidBinders.queryRunnerFactoryBinder(DruidBinders.java:36)
  while locating java.util.Map<java.lang.Class<? extends io.druid.query.Query>, io.druid.query.QueryRunnerFactory>
    for parameter 0 at io.druid.query.DefaultQueryRunnerFactoryConglomerate.<init>(DefaultQueryRunnerFactoryConglomerate.java:34)
  while locating io.druid.query.DefaultQueryRunnerFactoryConglomerate
  at io.druid.guice.StorageNodeModule.configure(StorageNodeModule.java:53)
  while locating io.druid.query.QueryRunnerFactoryConglomerate
    for parameter 9 at io.druid.indexing.common.TaskToolboxFactory.<init>(TaskToolboxFactory.java:83)
  at io.druid.cli.CliPeon$1.configure(CliPeon.java:138)
  while locating io.druid.indexing.common.TaskToolboxFactory
    for parameter 0 at io.druid.indexing.overlord.ThreadPoolTaskRunner.<init>(ThreadPoolTaskRunner.java:76)
  at io.druid.cli.CliPeon$1.configure(CliPeon.java:164)
  while locating io.druid.indexing.overlord.ThreadPoolTaskRunner
  while locating io.druid.query.QuerySegmentWalker
    for parameter 3 at io.druid.server.QueryResource.<init>(QueryResource.java:90)
  while locating io.druid.server.QueryResource

一大堆信息,第一句最重要,那就是内存不够导致问题原因。

思考具体哪里内存分配的不够? 多年从事c 类的语言,java的水平等于0,根本不知道原因,反复对比各种配置 java运行配置。

最后猜测 可能是middleManager fork poen线程时内存不够问题。

查找手册查看mddileManager中关于middle 配置fork poen的参数。

最后找到config/middleManager/runtime.properties中的两项

 

#druid.indexer.fork.property.druid.processing.buffer.sizeBytes=100000000
#druid.indexer.fork.property.druid.processing.numThreads=1


默认的可能buffer是1g,  numThreads是3个,导致内存移除,修改后,重新运行任务,任务顺利完成。

 

© 著作权归作者所有

一只小江
粉丝 102
博文 21
码字总数 51352
作品 0
杭州
程序员
私信 提问
druid.io 使用mysql存储metadata overlord启动出错

这是druid.io批量导入数据时出现的问题,当启动overlord节点时,运行的命令如下: java -Xmx2g -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath config/common:config/overlord:lib/*...

一只小江
2016/03/14
1K
0
druid.io 使用hdfs作为deep storage 出现scheme: hdfs错误

使用hdfs作为druid.io的deep storage,但是在提交任务时却出现了错误。 错误如下: 2016-03-25T01:57:15,917 INFO [task-runner-0] io.druid.storage.hdfs.HdfsDataSegmentPusher - Copying......

一只小江
2016/03/29
269
0
Apache结合Tomcat出现的Bad Gateway

最近我的网站经常出现这样的错误提示: Bad Gateway The proxy server received an invalTod response from an upstream server. 不知道是什么原因 说明一下我的服务器配置:Apache+JK+Tomca...

ZhouLS
2012/09/30
4.1K
1
rsync实时备份增量数据

昨天在搭建rsync + inotify实时备份环境的时候出现了几个错误,于是在百度搜了下,基本上下面这篇转载的文章都涵盖了我遇到的错误: 问题一: @ERROR: chroot failed rsync error: error sta...

chenzudao
2017/09/07
0
0
rsync安装,配置与错误解析

一、流程图 二、rsync的安装 1、卸载原来的rsync 当然在安装Linux操作系统时,rsync是会被默认安装好的,如果觉得版本太低的话,可以通过如下步骤将其卸载掉 #rmp -qla | grep rsync //查看一...

沐木小布丁
2013/01/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

谁说多功能和低价格不能兼得?Aspose系列产品1024购买指南请查收!

你还在为了Word、Excel、PDF、CAD等文档格式转换而发愁吗? 你是否在寻找一款能够在应用程序中文档管理的工具呢? Aspose——支持100多种文件格式创建、编辑、转换和打印! 往下看,找一找哪...

mnrssj
27分钟前
3
0
hbase客户端API

本章介绍用于对HBase表上执行CRUD操作的HBase Java客户端API。 HBase是用Java编写的,并具有Java原生API。因此,它提供了编程访问数据操纵语言(DML)。 HBaseConfiguration类 添加 HBase 的配...

水木星辰
27分钟前
3
0
[插件化开发] 1. 初识OSGI

初识 OSGI 背景 当前product是以solution的方式进行售卖,但是随着公司业务规模的快速夸张,随之而来的是新客户的产品开发,老客户的产品维护,升级以及修改bug,团队的效能明显下降,为了解...

IsaacZhang
27分钟前
4
0
Webstorm 环境使用 nuxt.js 做开发,@ 和 ~ 别名配置

好的IDE + 好的代码提示 = 高效率的开发 webstorm 设置@和~别名,有助于代码查看和跳转. step 0 在项目下创建一个webpack.config.js,内容如下: const path = require('path')module.exp...

皇虫
31分钟前
3
0
Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇

上一期我们介绍了如何基于 Knative Serverless 技术实现天气服务-上篇,首先我们先来回顾一下上篇介绍的内容: 通过高德天气 API 接口,每隔 3 个小时定时发送定时事件,将国内城市未来 3 天...

Mr_zebra
49分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部