kafka和flume的對比
摘要: (1)kafka和flume都是日誌系統。kafka是分散式訊息中介軟體,自帶儲存,提供push和pull存取資料功能。flume分為agent(資料採集器),collector(資料簡單處理和寫入),storage(儲存器)三部分,每一部分都是可以定製的。比如agent採用RPC(Thrift-RPC)、text(檔案)等,storage指定用hdfs做。
(2)kafka做日誌快取應該是更為合適的,但是 flume的資料採集部分做的很好,可以定製很多資料來源,減少開發量。所以比較流行flume+kafka模式,如果為了利用flume寫hdfs的能力,也可以採用kafka+flume的方式。
採集層 主要可以使用Flume, Kafka兩種技術。
Flume:Flume 是管道流方式,提供了很多的預設實現,讓使用者通過引數部署,及擴充套件API.
Kafka:Kafka是一個可持久化的分散式的訊息佇列。
-
Kafka 是一個非常通用的系統。你可以有許多生產者和很多的消費者共享多個主題Topics。相比之下,Flume是一個專用工具被設計為旨在往HDFS,HBase傳送資料。它對HDFS有特殊的優化,並且集成了Hadoop的安全特性。所以,Cloudera 建議如果資料被多個系統消費的話,使用kafka;如果資料被設計給Hadoop使用,使用Flume。
-
正如你們所知
-
Flume可以使用攔截器實時處理資料。這些對資料遮蔽或者過量是很有用的。Kafka需要外部的流處理系統才能做到。
-
Kafka和Flume都是可靠的系統,通過適當的配置能保證零資料丟失。然而,Flume不支援副本事件。於是,如果Flume代理的一個節點奔潰了,即使使用了可靠的檔案管道方式,你也將丟失這些事件直到你恢復這些磁碟。如果你需要一個高可靠行的管道,那麼使用
-
Flume和Kafka可以很好地結合起來使用。如果你的設計需要從Kafka到Hadoop的流資料,使用Flume代理並配置Kafka的Source讀取資料也是可行的:你沒有必要實現自己的消費者。你可以直接利用Flume與HDFS及HBase的結合的所有好處。你可以使用Cloudera Manager對消費者的監控,並且你甚至可以新增攔截器進行一些流處理。
Flume和Kafka可以結合起來使用。通常會使用Flume + Kafka的方式。其實如果為了利用Flume已有的寫HDFS功能,也可以使用Kafka + Flume的方式。
轉自:http://my.oschina.net/frankwu/blog/355298