Прием больших данных — примеры использования Flafka

Я видел, что сообщество больших данных очень горячо использует Flafka во многих отношениях для приема данных, но я еще не понял, почему.

Простой пример, который я разработал, чтобы лучше понять это, состоит в том, чтобы принимать данные Twitter и перемещать их в несколько приемников (HDFS, Storm, HBase).

Я реализовал часть приема следующими двумя способами: (1) Обычный производитель Java Kafka с несколькими потребителями (2) Агент Flume #1 (источник Twitter + приемник Kafka) | (потенциальный) Агент Flume # 2 (источник Kafka + несколько приемников). Я действительно не видел никакой разницы в сложности разработки любого из этих решений (не производственная система, я не могу комментировать производительность) - только то, что я нашел в Интернете, это то, что хороший вариант использования для Flafka будет для данных из нескольких источники, которые необходимо собрать в одном месте, прежде чем использовать в разных местах.

Может кто-нибудь объяснить, почему я должен использовать Flume + Kafka вместо простой Kafka или простой Flume?


person and_apo    schedule 07.11.2016    source источник
comment
Попробовав сами, каковы ваши собственные выводы? Вы сами проводили какие-то исследования? если да, то что вы получили от них и чего, по вашему мнению, еще не хватает?   -  person Newtopian    schedule 07.11.2016


Ответы (1)


Люди обычно комбинируют Flume и Kafka, потому что Flume имеет отличный (и проверенный в боевых условиях) набор коннекторов (HDFS, Twitter, HBase и т. д.) и Kafka. обеспечивает устойчивость. Также Kafka помогает распределять события Flume между узлами.

РЕДАКТИРОВАТЬ:

Kafka реплицирует журнал для разделов каждой темы на настраиваемое количество серверов (вы можете установить этот коэффициент репликации для каждой темы отдельно). Это позволяет автоматически переключаться на эти реплики при сбое сервера в кластере, поэтому сообщения остаются доступными при наличии сбоев. -- https://kafka.apache.org/documentation#replication

Таким образом, как только Flume получит сообщение для Kafka, у вас есть гарантия, что ваши данные не будут потеряны. NB: вы можете интегрировать Kafka с Flume на каждом этапе загрузки (т. е. Kafka можно использовать как источник, канал и приемник).

person bessbd    schedule 09.11.2016
comment
Можно немного подробнее пояснить ваше последнее предложение? Вы просто имеете в виду, что Kafka будет реплицировать данные (для отказоустойчивости), полученные от агента Flume? - person and_apo; 10.11.2016