Я пытался создать и поддерживать файл последовательности в HDFS с использованием Java API без запуска задания MapReduce в качестве настройки для будущего задания MapReduce. Я хочу сохранить все свои входные данные для задания MapReduce в одном файле последовательности, но данные добавляются со временем в течение дня. Проблема в том, что если существует SequenceFile, следующий вызов просто перезапишет SequenceFile вместо добавления к нему.
// fs and conf are set up for HDFS, not as a LocalFileSystem
seqWriter = SequenceFile.createWriter(fs, conf, new Path(hdfsPath),
keyClass, valueClass, SequenceFile.CompressionType.NONE);
seqWriter.append(new Text(key), new BytesWritable(value));
seqWriter.close();
Другая проблема заключается в том, что я не могу поддерживать файл моего собственного формата и преобразовать данные в SequenceFile в конце дня, поскольку задание MapReduce может быть запущено с использованием этих данных в любой момент.
Я не могу найти какой-либо другой вызов API для добавления к SequenceFile и поддержания его формата. Я также не могу просто объединить два файла SequenceFiles из-за необходимости форматирования.
Я также хотел избежать запуска задания MapReduce для этого, так как оно имеет большие накладные расходы для небольшого количества данных, которые я добавляю в SequenceFile.
Есть мысли или обходные пути? Спасибо.