欧美中文字幕第一页-欧美中文字幕一区-欧美中文字幕一区二区三区-欧美中文字幕在线-欧美中文字幕在线播放-欧美中文字幕在线视频

Spark Streaming vs. Kafka Stream 哪個更適合你-36大數據

我是創始人李巖:很抱歉!給自己產品做個廣告,點擊進來看看。  

Spark Streaming vs. Kafka Stream 哪個更適合你-36大數據

作者:Mahesh Chand Kandpal
翻譯:雁驚寒

譯者注:本文介紹了兩大常用的流式處理框架,Spark Streaming和Kafka Stream,并對他們各自的特點做了詳細說明,以幫助讀者在不同的場景下對框架進行選擇。以下是譯文。 流式處理的需求每天都在增加,僅僅對大量的數據進行處理是不夠的。數據必須快速地得到處理,以便企業能夠實時地對不斷變化的業務環境做出反應。流式處理是持續而又并發地對數據進行實時處理。流式處理是處理數據流或傳感器數據的理想平臺,而“復雜事件處理”(CEP)則利用了逐個事件處理和聚合等技術。對于實時數據處理功能,我們有很多選擇可以來實現,比如Spark、Kafka Stream、Flink、Storm等。在這個博客中,我將討論Apache Spark和Kafka Stream的區別。

Apache Spark

Apache Spark是大規模數據處理的通用框架,支持多種不同的編程語言和概念,例如MapReduce、內存處理、流式處理、圖形處理和機器學習。它也可以用于Hadoop的頂層。數據可以從多種來源(例如Kafka、Flume、Kinesis或TCP套接字)獲取,并且使用一些復雜的算法(高級功能,例如映射、歸約、連接和窗口等)對數據進行處理。

Spark Streaming vs. Kafka Stream 哪個更適合你-36大數據

在框架內部,它的工作原理如下圖。 Spark Streaming接收實時輸入數據流,并將數據分成多個批次,然后由Spark引擎對其進行處理,批量生成最終的結果流。

Spark Streaming vs. Kafka Stream 哪個更適合你-36大數據

Spark Streaming提供了一個被稱為離散化數據流(discretized stream,縮寫為DStream)的高級抽象,它代表了一個持續的數據流。DStream可以從諸如Kafka、Flume或Kinesis等來源的輸入數據流中創建,或者通過對其他DStream執行高級操作來創建。在框架內部,DStream可以看成是一系列的RDD(Resilient Distributed Datasets,彈性分布式數據集)。

Kafka Stream

Kafka Streams是一個用于處理和分析數據的客戶端庫。它先把存儲在Kafka中的數據進行處理和分析,然后將最終所得的數據結果回寫到Kafka或發送到外部系統去。它建立在一些非常重要的流式處理概念之上,例如適當區分事件時間和處理時間、窗口支持,以及應用程序狀態的簡單(高效)管理。同時,它也基于Kafka中的許多概念,例如通過劃分主題進行擴展。此外,由于這個原因,它作為一個輕量級的庫可以集成到應用程序中去。這個應用程序可以根據需要獨立運行、在應用程序服務器中運行、作為Docker容器,或通過資源管理器(如Mesos)進行操作。

Kafka Streams直接解決了流式處理中的很多困難問題:

  • 毫秒級延遲的逐個事件處理。
  • 有狀態的處理,包括分布式連接和聚合。
  • 方便的DSL。
  • 使用類似DataFlow的模型對無序數據進行窗口化。
  • 具有快速故障切換的分布式處理和容錯能力。
  • 無停機滾動部署。

Apache Spark可以與Kafka一起使用來傳輸數據,但是如果你正在為新應用程序部署一個Spark集群,這絕對是一個復雜的大問題。

為了克服這個復雜性,我們可以使用完整的流式處理框架,Kafka streams正是實現這個目的的最佳選擇。

Spark Streaming vs. Kafka Stream 哪個更適合你-36大數據

我們的目標是簡化流式處理,使之成為異步服務的主流應用程序編程模型。這是我知道的第一個庫,它充分利用了Kafka,而不僅僅把Kafka當做是一個信息中介。

Streams建立在KTables和KStreams的概念之上,這有助于他們提供事件時間處理。

給出一個與Kafka的核心抽象高度集成的處理模型,能夠減少流式架構中移動件的總數。

將狀態表與事件流完全整合起來,并在單個概念框架中提供這兩個東西,這使得Kafka Streams完全成為一個嵌入式的庫,而不是流式處理集群(只是Kafka和你的應用程序)。當你向應用程序加入了一個新的實例,或者現有的實例發生崩潰的時候,它能夠自動均衡負載,并維護表的本地狀態,使得系統能夠從故障中恢復出來。

Kafka Streams具備低延遲的特點,并且支持易于使用的事件時間。它是一個非常重要的庫,非常適合某些類型的任務。這也是為什么一些設計可以針對Kafka的工作原理進行深入地優化的原因。你不需要設置任何種類的Kafka Streams集群,也沒有集群管理器。如果你需要實現一個簡單的Kafka的主題到主題的轉換、通過關鍵字對元素進行計數、將另一個主題的數據加載到流上,或者運行聚合或只執行實時處理,那么Kafka Streams適合于你。

如果事件時間不相關,并且秒級的延遲可以接受,那么Spark是你的第一選擇。它相當穩定,并且可以很容易地集成到幾乎任何類型的系統中去。此外,每個Hadoop發行版都包含它。而且,用于批處理應用程序的代碼也可以用于流式應用程序,因為API是相同的。

結論

我認為,Kafka Streams最適用于“Kafka > Kafka”場景,而Spark Streaming可用于“Kafka > 數據庫”或“Kafka > 數據科學模型“這樣的場景。

End.

轉載請注明來自36大數據(36dsj.com): 36大數據 ? Spark Streaming vs. Kafka Stream 哪個更適合你

隨意打賞

36大數據
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 一区 在线播放 | 美国一级毛片片aa成人 | 国产99视频精品一区 | 国产亚洲精品久久久久久牛牛 | 伊人久久国产 | 国语性猛交xxxx乱大交 | 国产视频国产 | 四虎影片国产精品8848 | 99热久久精品免费精品 | 欧美日韩永久久一区二区三区 | 国产乱人视频在线播放不卡 | 婷婷亚洲综合五月天在线 | 国产精品高清视亚洲乱码 | 国产精品高清在线 | www.国产.com| 久久免费精品 | 亚洲毛片在线看 | 亚洲国产激情在线一区 | 国产精品一区久久精品 | 午夜视频18 | 日韩欧美视频一区 | 奇米影视第七色 | 欧美日韩性大片 | 亚洲图片二区 | 九九视频热 | 在线观看中文字幕一区 | 欧美不卡视频 | 日本一级在线播放线观看免 | 欧美久久久久久久久 | 大色综合色综合网站 | 免费观看精品视频999 | 久久香蕉国产线看观看99 | 免费在线观看h片 | 免费爱爱小视频 | 欧美日韩中文视频 | 手机看高清特黄a大片 | 99在线精品国产不卡在线观看 | 国产精品久久久视频 | 女人18毛片一级毛片在线 | 国产亚洲自拍一区 | 99精品在线观看视频 |