2

Hadoop Mapreduce CombineFileInputFormat отлично работает, когда дело доходит до чтения большого количества файлов небольшого размера, однако я замечал, что иногда работа оказывается неудачной со следующим исключение,Mapreduce combfileinputformat java.lang.reflect.InvocationTargetException в то время как два задания имеют одинаковые данные

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException на org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.initNextRecordReader (CombineFileRecordReader.java:164) в орг .apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.nextKeyValue (CombineFileRecordReader.java:67) на org.apache.hadoop.mapred.MapTask $ NewTrackingRecordReader.nextKeyValue (MapTask.java:483) на org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue (MapContextImpl.java:76) в орг .apache.hadoop.mapreduce.lib.map.WrappedMapper $ Context.nextKeyValue (WrappedMapper.java:85) на org.apache.hadoop.mapreduce.Mapper.run (Mapper.java:139) на org.apache.hadoop .mapred.MapTask.runNewMapper (MapTask.java:672) в org.apache.hadoop.mapred.MapTask.run (MapTask.java:330) в org.apache.hadoop.mapred.Child $ 4.run (Ребенок. java: 268) в java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subjec t.java:415) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.

Я заметил, что это происходит только тогда, когда какое-то другое задание mapreduce работает на одних и тех же данных в то же время, в противном случае оно работает так, как ожидалось.

Даже такое же исключение возникает, когда я запускаю запрос куста в аналогичном состоянии.

Я искал решение или возможную причину этого.

ответ

1

Наконец-то я получил причину этой проблемы, фактически, я использовал CombineFileInputFormat с gzip, поэтому первое задание на запуск было извлечение gzip-файла в той же папке и удаление его при его завершении, однако, когда я запускал другой задание параллельно, он также распаковывает файл первым в своем вводе.

Таким образом, между выполнением второго задания распакованный файл удалялся первым заданием, это фактически вызывало ошибку.

Аналогичный случай с ульем.