与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!
该问题存在两个方面的问题:
- 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
- 文件的路径错误。
在各个节点启动时,其jvm.config中的-Djava.io.tmpdir=/tmp需要一个本地可访问的目录即可。
chmod error : 11
- 保证hdfs文件可读;
- 保证druid集群账户与hdfs账户一致
- 保证hdfs账户目录权限>=755
- 保证hdfs宿主机的账户权限>=755(这个好像没用)
数据文件位置
数据文件需要放置在HDFS中
参考
Druid集群配置
druid.io 从本地批(batch)导入数据与从hdfs 批导入数据的index task配置
druid.io问题记录