Druid使用问题解决

与hadoopjar包冲突

Druid java.lang.OutOfMemoryError: unable to create new native thread

解决方案参考:Working with different versions of Hadoop

调整Druid集群所在机器的ulimit
参考:CentOS修改ulimit

io.druid.java.util.common.ISE: Job[class io.druid.indexer.IndexGeneratorJob] failed!

该问题存在两个方面的问题:

  1. druid所用的hadoop版本与hadoop集群的jar包冲突,尤其是CDH版本构建的hadoop集群。

解决方案1. 参考:Working with different versions of Hadoop
在每个数据定义文件中指定: demo:

"tuningConfig" : {
      "type" : "hadoop",
      "partitionsSpec" : {
        "type" : "hashed",
        "targetPartitionSize" : 5000000
      },
      "jobProperties" : {
        "mapreduce.job.classloader": "true",
         "mapreduce.job.classloader.system.classes": "-javax.validation.,java.,javax.,org.apache.commons.logging.,org.apache.log4j.,org.apache.hadoop."
        },
        "ignoreInvalidRows" : true
    }
  }

解决方案2:参考Druid.io 部署&使用文档

druid.indexer.runner.javaOpts=-server -Xmx2g -Duser.timezone=UTC -Dfile.encoding=UTF-8 -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -Dhadoop.mapreduce.job.classloader=true
  1. 文件的路径错误。
    在各个节点启动时,其jvm.config中的-Djava.io.tmpdir=/tmp需要一个本地可访问的目录即可。

chmod error : 11

  1. 保证hdfs文件可读;
  2. 保证druid集群账户与hdfs账户一致
  3. 保证hdfs账户目录权限>=755
  4. 保证hdfs宿主机的账户权限>=755(这个好像没用)

参考

Druid集群配置
druid.io 从本地批(batch)导入数据与从hdfs 批导入数据的index task配置
druid.io问题记录

猜你喜欢

转载自my.oschina.net/u/1011659/blog/1819941