2016-11-07 3 views
1

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

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

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

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

+0

Попробуйте сами, какие у вас собственные выводы? Вы сами провели исследование? если да, то что вы получили от них и что вы чувствуете, все еще отсутствует? – Newtopian

+0

ответил уже –

ответ

2

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

EDIT:

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

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

+0

Можно ли еще немного объяснить последнее предложение? Вы просто имеете в виду, что Кафка будет реплицировать данные (для отказоустойчивости), полученные от агента Flume? –

+0

@Andreas: конечно, позвольте мне изменить мой ответ – bessbd