Друидная пакетная индексация типа inputSpecularity, ошибка с "не указаны пути ввода в задании"
Я следую инструкции, написанной здесь: http://druid.io/docs/0.9.2/ingestion/batch-ingestion.html (выделите "Спецификация InputSpec", ищите "гранулярность").
У меня есть в моей задачи индексации 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) ~[?:?]
Погуглил, получил две страницы, рассказывающие об одной и той же проблеме:
Оба упомянули установку значения "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"
}
Оно работает. Так что никаких проблем с моими друидами и Hadoop.
Является ли эта "гранулярность" inputSpec нарушена в Druid (я использую 0.9.2)? Потому что я не вижу ничего плохого в моем inputSpec (тип гранулярности один); по крайней мере не в соответствии с документом и форумом, который я прочитал.
В то же время я могу использовать статический (и построить мою строку длинных путей), но этот тип "гранулярности" был бы идеальным (если бы только это работало).
Кто-нибудь может пролить немного света здесь?
Благодарю.
1 ответ
Попробуйте добавить a / в конец шаблона пути: "pathFormat": "'y'=yyyy/'m'=MM/'d'=dd/"