Я рассматриваю варианты в программах Java, которые могут записывать файлы в HDFS со следующими требованиями.Программно записывать файлы в HDFS
1) Поддержка транзакций: каждый файл при написании полностью или полностью написан полностью или полностью без каких-либо частичных файловых блоков.
2) Поддержка сжатия/Форматы файлов: Можно указать тип сжатия или формат файла при записи содержимого.
Я знаю, как записать данные в файл на HDFS, открыв FSDataOutputStream
, показанный here. Просто интересно, есть ли некоторые библиотеки из готовых решений, которые обеспечивают поддержку, о которой я упоминал выше.
Я наткнулся на Flume, который обеспечивает приемник HDFS, который может поддерживать транзакцию, сжатие, вращение файла и т. Д. Но это, похоже, не предоставляет API для использования в качестве библиотеки. Возможности Flume обеспечивают высокую связь с архитектурными компонентами Flume, такими как источник, канал и раковины и, похоже, не могут использоваться независимо. Все, что мне нужно, это просто часть загрузки HDFS.
Есть ли у кого-нибудь хорошие предложения?