druid批量索引inputspec类型粒度,错误为“作业中未指定输入路径”

zdwk9cvp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(473)

我遵照这里的指示:http://druid.io/docs/0.9.2/ingestion/batch-ingestion.html (滚动到“inputspec specification”,查找“granularity”)。
在我的索引任务json中:

"inputSpec": {
  "type": "granularity",
  "dataGranularity": "DAY",
  "inputPath": "hdfs://hadoop:9000/druid/events/interview",
  "filePattern": ".*",
  "pathFormat": "'y'=yyyy/'m'=MM/'d'=dd"
}

我已经在hdfs中组织了这样的文件(我是故意这样做的,我想在索引任务中使用“粒度”类型):

我不断遇到这个错误(索引失败):

Caused by: java.io.IOException: No input paths specified in job
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:231) ~[?:?]
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:340) ~[?:?]
    at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:493) ~[?:?]
    at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:510) ~[?:?]
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:394) ~[?:?]
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285) ~[?:?]

谷歌搜索了一下,有两页是关于同一个问题的:
https://groups.google.com/forum/#!topic/druid用户/xkyggv983zq
https://groups.google.com/forum/#!主题/druid用户/b2yxnq8uqr4
他们都提到将“filepattern”的值设置为“.*”。那样做了,运气不好。
为了确认我的druid hadoop链接工作正常,我尝试将inputspec更改为static:

"inputSpec": {
  "type": "static",
  "paths": "hdfs://hadoop:9000/druid/events/interview/y=2016/m=11/d=06/event.json,hdfs://hadoop:9000/druid/events/interview/y=2016/m=11/d=07/event.json"
}

它起作用了。所以,我的Druid和hadoop没问题。
这个“粒度”输入规范在druid中被破坏了吗(我使用的是0.9.2)?因为我在inputspec(粒度类型)中没有看到任何错误;至少从我读到的文件和论坛来看不是这样。
同时,我可以使用静态类型(并构建冗长的paths字符串),但是“粒度”类型将是理想的(如果它能工作的话)。
有人能给我点启示吗?
谢谢。

h9a6wy2h

h9a6wy2h1#

尝试将/添加到路径模式的末尾:“pathformat”:“'y'=yyyy/'m'=mm/'d'=dd/”

相关问题