kappa和lambda对比 | 程序员硬核评测
戳藍字“CSDN云計算”關注我們哦!
程序員硬核評測:客觀、高效、不說軟話。無論是技術質量、性能水平,還是工具篩選,一測便知!
作者:浪尖
轉載:Spark學習技巧
首先我們會詳細的講解這兩種架構,實現這兩種架構的技術工具,還有就是如何決策使用這兩種架構。
如何構建一個實時處理系統架構一直爭論不斷。一個好的實時處理系統必須是容錯和可升級的。必須支持批量和增量的更新,必須可擴展。
在這些討論中一個重要的里程碑是,storm的創始人,Nathan Marz,描述了我們目前所了解的lambda架構。Lambda架構目前已經有很多使用案例,實時上大量的公司都在使用,比如Yahoo和Netflix。當然,lambda架構也并不是得到的全是贊美,也有一些批判,就是它帶來了編碼的負擔。(?原英:But of course, Lambda is not a silver bullet and has received some fair criticism on the coding overhead it can create.)
在2014年夏天,LinkedIn的Jay Kreps發表了一篇文章描述了Kappa架構,解決了一些Lambda架構的陷阱。Kappa架構并不是Lambda架構的替代,因為有些Lambda架構并不適合遷移到Kappa架構上去。
對于一個給定的案例,準確的評估哪種架構師最好的是很有挑戰性的,錯誤的設計決策可能對數據分析項目的實施產生嚴重的影響。
現在,就深入細節去了解兩種數據處理架構。
?
Lambda架構有三個層面組成:batch,speed,serving。
Batch層面有兩個主要的任務:
1.管理歷史數據。
2.重新結算結果,例如重新訓練模型。
Batch層接受新的數據,將新的數據和歷史數據進行合并,然后重新計算結果。Batch層計算了所有的數據,這使得系統能產生相對精確的結果。然而,由于計算時間比較久,使的結果延遲也會比較大。
Speed層主要提供低延遲,近實時的計算結果。Speed層接收數據,增量更新batch層的結果。由于speed層的增量算法,計算代價被極大減少。
Serving用batch層和speed層計算的結果提供多樣的查詢。
創建kappa架構的一個最重要的動機是避免維護batch和speed層兩份獨立的代碼。一個核心的思想就是用一個單獨的流處理引擎處理實時的計算和連續不斷的數據的重復計算。代碼的更改對結果影響很大,所以數據必須重新計算。結果kappa架構的組成只有兩個部分:stream processing和serving。流處理層運行流處理任務。運行一個流處理作業以啟用實時數據處理。僅僅當流處理作業更改了一些代碼之后才會進行數據的重新處理??梢酝ㄟ^重啟一個梗概代碼后的流處理作業去處理所有以前的數據。
Serving層也是提供數據查詢的。
福利
掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
推薦閱讀:
圖解分布式架構的發展和演進 | 技術干貨
Docker 系列學習文章 | 什么是容器云?
任正非:華為海思芯片不是“備胎”!
揭秘清華 AI 學堂班:姚期智擔任首席教授,2019 年首批招收 30 人
Google Android 向華為“閉源”!華為手機迎來至暗時刻!
"兩年前我對區塊鏈的了解為零, 兩年后我成了工程師" 我是如何得到第一份工作的?
《使女的故事》大火,AI是背后最大推手?
真香,朕在看了!
總結
以上是生活随笔為你收集整理的kappa和lambda对比 | 程序员硬核评测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Boost::context模块call
- 下一篇: Boost::context模块call