Я ищу способ эффективной передачи событий, генерируемых программой на C, в Apache Flume.
В программе C события struct
экземпляры, которые можно сериализовать в записи Avro или тому подобное. Однако в библиотеке Avro C отсутствует поддержка RPC, поэтому программа C не может напрямую подключиться к источнику Avro в агенте Flume.
Текущее решение состоит в том, чтобы отформатировать события в CSV и передать их источнику netcat в Flume, но форматирование текста требует много ресурсов процессора (события имеют много числовых полей).
Каким было бы быстрое решение для передачи двоичных данных в Flume?
Есть ли какой-либо эквивалент источника netcat во Flume, который позволял бы создавать двоичные записи?
Возможно, источник Thrift во Flume — это решение, но предыдущий опыт работы с Apache Thrift показал, что производительность немного не впечатляет.
Задача ещё не решена.
Других решений пока нет …