Разница между Apache Flume и Apache Flink

Мне нужно прочитать поток данных из какого-то источника (в моем случае это поток UDP, но это не имеет значения), преобразовать каждую запись и записать ее в HDFS.

Есть ли разница между использованием для этой цели Flume или Flink?

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

Но я новичок во Flink, поэтому мне кажется, что Flink будет делать то же самое.

Какой лучше выбрать? Есть разница в производительности?

Пожалуйста помоги!


person Kateryna Khotkevych    schedule 04.10.2016    source источник


Ответы (2)


Заявление об ограничении ответственности: я являюсь коммиттером и членом PMC Apache Flink. У меня нет подробных знаний об Apache Flume.

Насколько я могу судить, перемещение потоковых данных из различных источников в HDFS является одним из основных вариантов использования Apache Flume. Это специализированный инструмент, и я предполагаю, что в него встроено множество связанных функций. Я не могу комментировать производительность Flume.

Apache Flink - это платформа для обработки потоков данных, более общая и многофункциональная, чем Flume (например, поддержка времени событий, расширенное управление окнами, API высокого уровня, отказоустойчивые приложения с отслеживанием состояния и т. Д.). С помощью Flink вы можете реализовывать и выполнять множество различных приложений для обработки потоковых данных, включая потоковую аналитику и CEP.

Flink имеет подвижный приемник файлов для записи потоков данных в файлы HDFS и позволяет реализовать все виды настраиваемого поведения с помощью определяемых пользователем функций. Однако это не специализированный инструмент для загрузки данных в HDFS. Не ожидайте большого количества встроенных функций для этого варианта использования. Flink обеспечивает очень хорошую пропускную способность и низкую задержку.

Если вам не нужно ничего, кроме простых преобразований на уровне записи, я сначала попробую решить ваш вариант использования с помощью Flume. Я ожидаю, что в Flume будет несколько функций, которые вам нужно будет реализовать самостоятельно при выборе Flink. Если вы ожидаете в будущем более продвинутой потоковой обработки, вам определенно стоит взглянуть на Flink.

person Fabian Hueske    schedule 04.10.2016

Отказ от ответственности: я участник Apache Flume. У меня нет подробных знаний об Apache Flink.

Для описанного вами варианта использования Flume может быть правильным выбором.

Вы можете использовать Exec Source до netcat UDP source переносится в базу кода.

Что касается трансформации, трудно дать предложения, но вы можете взглянуть на Morphline Interceptor.

Что касается канала, я бы порекомендовал Канал памяти, потому что если источником является UDP, незначительная потеря данных должна быть допустима.

Что касается раковины, HDFS Sink, вероятно, удовлетворит ваши потребности.

person bessbd    schedule 09.10.2016