У меня есть лоток, который передает данные в HDFS-приемник (добавляется в тот же файл), который я мог бы «cat» и видеть его с HDFS. Однако задание MapReduce только собирает первую партию, которая была очищена (bacthSize = 100). Остальные не подбираются, хотя я мог бы кошка увидеть все остальное. Когда я выполняю задание MapRecue после того, как файл свернут (закрыт), он собирает все данные. Знаете ли вы, почему работа MR не находит остальную часть партии, даже если она существует.Почему файлы приложения не загружаются в MapReduce Job?
0
A
ответ
0
Насколько мне известно, Flume (1.4 в моем случае) на самом деле не добавляет файлы HDFS. Когда начнется приемник HDFS, он создаст файл .tmp, который равен 0 kb, пока он не будет перевернут или переименован. Инкрементные записи еще не включены в HDFS, а в агент Flume на канале. Поэтому до переименования события (.tmp до конечного имени файла) у вас не будет доступа к вновь полученным данным. (MR FileInputFormat фильтрует все файлы, начинающиеся с «_filename» или «.filename»)