2016-03-21 50 views
1

如果您有多個信息流進入集中式節點,那麼是否需要Kafka,但是所有這些信息都需要在Hadoop或Spark中處理?由於不需要過濾不同類型的信息,因此Kafka似乎處理消息的能力似乎是多餘的。換句話說,如果你想要一個最多的系統,多個生產者是否會對一個消費者否定Kafka的需求?使用帶多輸入和單輸出的卡夫卡?

回答

1

Kafka通常與Spark-Streaming應用程序一起使用。它與Spark-Streaming應用程序一起使用的原因是它可以保證在接收器關閉的情況下不會丟失數據。如果數據已經在hadoop集羣中,並且您正在使用spark運行批處理作業,那麼實際上不需要kafka來與spark進行交互。

+0

像RabbitMQ會更有意義創建一個隊列聚類數據進行處理或是否有一個特定的工具來組織批處理作業的信息? – Rob

+1

RabbitMQ,0MQ,類似隊列系統和Kafka之間的主要差異之一是,Kafka被設計爲提交日誌並用作隊列。這意味着即使消費者閱讀消息,消息也會保存一段時間。消息被複制和分發以分別處理丟失和高負載。對於允許連接不同系統的許多語言中的不同實現數量,Kafka通常也是不錯的選擇。所以要回答你的問題,如果你沒有這些要求,卡夫卡是沒有必要的 – PinoSan

+1

@皮諾桑是正確的。在使用Spark之前,你是否有理由排隊數據?我不能看到一個用例,你希望有另一個系統將數據提供給Spark,除非你試圖模擬某種流應用程序。 –