Discretized Streams: An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters

閱讀筆記


概述:

  • 本文同樣發表于2012年。提出了一種稱為離散化數據流(Discretized Streams,D-Streams)的編程模型。
  • 該模型提供了一種高級函數式API,具有高度的一致性和強大的容錯能力。
  • 基于Spark分布式計算框架,進行擴展實現了一個D-Stream的原型,稱為Spark Streaming。

?

研究背景:

  • 許多大數據應用要求實現實時響應。
    • 社交網絡應用需要在幾分鐘內分析出當前的熱點話題。
    • 廣告提供商需要針對用戶對廣告的點擊行為進行建模并訓練。
    • 服務器管理者需要在幾秒內從海量日志信息中分析出服務器崩潰原因等。
  • 當前多數分布式流處理系統,都采用"record-at-a-time"的方式,即接收一條記錄->更新內部狀態->返回新的記錄。
  • 這種方案在面臨以下幾方面的挑戰:
    • 容錯:錯誤恢復涉及大量的復制操作,且占用硬件資源。
    • 一致性:不同節點對數據的處理時間各不相同,需要保證計算結果的正確性
    • 同批量計算系統的統一:流式計算系統是事件驅動的,同批量計算的API大不相同,難以整合。

?

主要工作:

  • 提出了新的編程模型,離散化數據流(Discretized Streams, D-Streams)。
  • 核心思想是將流式計算看做一系列很短時間間隔內的確定的批量計算的累積。
  • 該模型的優點如下:
    • 每個記錄在它來臨的時間間隔內都被系統原子處理,保證了一致性。
    • 處理模型易于同批量計算系統統一起來。
    • 采用批量計算的容錯處理方法,降低數據恢復代價。
  • 為了保證時間劃分的粒度足夠細,響應足夠快,需要中間數據緩存在內存中。
  • 為了保證容錯恢復的高效,數據在內存中以RDD的形式存放。
  • 在Spark系統的支持下,時間劃分的粒度可以達到秒級別,這對于許多實際的大數據應用來說是足夠的。
  • 基于Spark分布式計算框架擴展得到了Spark Streaming,是D-Stream的原型實現。

?

關于D-Stream:

  • 每個時間段內接收到的數據存儲在集群上,構成了該時間段的輸入數據集。
  • 時間段結束時,數據集通過確定性的并行操作處理,如map,reduce,groupBy等,得到新的數據集或計算結果。
  • D-Stream提供兩種運算供用戶構建流式計算程序。
    • 轉換操作: 由父數據流產生新的數據流,生成的數據可以對各個時間段獨立,也可以為所有時間段共享。這里復用了Spark提供的算如map,reduce,join等。
    • 輸出操作: 將數據輸出寫到外部存儲系統(如HDFS)中,如save,foreach。
  • 另外,D-Stream還提供了一些跨越時間區間的算子:
    • window:將過去一段時間間隔的數據匯總得到一個新的數據集
    • Incremental agggation:將過去一段時間間隔的數據按照指定的方式累加
    • Time-skewed join:對過去一段時間的數據集進行連接操作。

?

注意: D-Stream的容錯機制基于RDD通過構造lineage圖實現,在最初提出Spark的論文中有詳細介紹,這里不再贅述。

?

實例:頁面訪問時間計數

實現:

pageViews = readStream("http://...", "1s")

ones = pageViews.map(event => (event.url, 1))

counts = ones.runningReduce((a, b) => a + b)

說明:

  • 首先通過HTTP協議讀取事件流,生成數據集pageView。
  • 然后通過map操作將數據轉換為鍵值對,生成ones,鍵為事件的url。
  • 最后通過runningReduce操作進行計數。

?

關于Spark Streaming:

  • 基于Spark運行時實現
  • 能夠從網絡上或定期從HDFS中讀取數據流
  • 使用亞馬遜EC2節點部署集群進行了簡單的評測,每個節點4核15GB RAM。
    • 擴展性:使用grep和wordCount兩個實際應用測試,吞吐量隨借點個數增加基本呈線性增長,可擴展性良好。
    • 容錯性:使用maxCount和wordCount兩個應用測試,僅需幾秒就能完成錯誤恢復。

?

知識補充


?批量計算 vs. 流式計算:

  • 大數據計算模式可分為批量計算和流式計算。
    • 批量計算:批量計算首先進行數據的存儲,然后再對存儲的靜態數據進行集中計算。Hadoop是典型的大數據批量計算架構,由HDFS分布式文件系統負責靜態數據的存儲,并通過MapReduce將計算邏輯分配到各數據節點進行數據計算和價值發現。
    • 流式計算:流式計算中,無法確定數據的到來時刻和到來順序,也無法將全部數據存儲起來.因此,不再進行流式數據的存儲,而是當流動的數據到來后在內存中直接進行數據的實時計算。
  • 流式計算和批量計算分別適用于不同的大數據應用場景。
    • 對于先存儲后計算,實時性要求不高,同時,數據的準確性、全面性更為重要的應用場景,批量計算模式更合適;對于無需先存儲,可以直接進行數據計算。
    • 實時性要求很嚴格,但數據的精確度要求稍微寬松的應用場景,流式計算具有明顯優勢。

?

?

轉載于:https://www.cnblogs.com/LionHeart-Grady/p/thesis-03.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257240.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257240.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257240.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

復習計劃

算法 貪心 二分 模擬 倍增 排序 sort 歸并排序 插入排序 最短路 SPFA Djistra Floyd 最小生成樹 kruskal prim 拓撲排序 tarjan 二分圖 樹的直徑、樹的重心 dfs序 hash 數據結構 棧 隊列 單調隊列 單調棧https://www.luogu.org/problem/show?pid2659 并查集 線段樹 樹狀數組 二…

計算機應用基礎分析與報告,y計算機應用基礎出題分析報告.doc

y計算機應用基礎出題分析報告計算機應用基礎出題分析報告本次計算機應用基礎抽考試題按照2011年甘肅省三校生高考考試標準,重在考查學生對windows xp和office辦公軟件基本概念、基本操作的掌握情況。以充分體現基礎理論和實踐操作相結合為主,深入淺出地將…

mysql left join join right

create table java (name varchar(255)); insert into java values (java1),(java2),(blue); create table mysql (name varchar(255)); insert into mysql values (mysql1),(mysql2),(blue); 1.join 查詢 內聯查詢 查兩個表的內才聯系相同的值select * from java join mysql a…

PowerDesigner中NAME和COMMENT的互相轉換,需要執行語句

原文:http://www.cnblogs.com/yelaiju/archive/2013/04/26/3044828.html由于PDM 的表中 Name 會默認Code 所以很不方便, 所以需要將 StereoType 顯示到表的外面來 打開[工具]->[顯示屬性](英文:Display Preferences) ->Content->Table->右邊面板Columns…

成都計算機中心起名,成都給寶寶起名的地方哪里好

成都給寶寶起名的地方哪里好2018-09-21每一個人都擁有一個好聽大氣的名字,名字作為一個人的標識,是人與人交流的代號,因此有一個好聽寓意大氣的名字是很關鍵的,名字畢竟關乎著對他人的第一印象,所以在起名字方面父母們…

20150206--JS鞏固與加強4-02

20150206--JS鞏固與加強4-02 五、屬性遍歷與刪除 1、使用for…in…遍歷自定義對象屬性 基本語法: for…in…(主要是完成對對象的遍歷) 示例代碼: 運行效果: 說明:在17行代碼,不能使用p1.i形式進行自定義對象…

Python安裝scikit-learn包

我先是按照網上說的下載了個setuptools,然后直接用這個工具去安裝,可是安裝scikit-learn包的時候確老是有錯誤,也不知道錯誤是啥,所以就不用setuptools來安裝了。 我直接下載了scikit-learn包的安裝包,直接安裝就好了,…

如何計算機械人工作量,修訂后太原理工大學本科教學工作量計算辦法

太原理工大學教師本科教學工作量計算辦法(修訂)高等學校實行工作量考核制度是進行教學管理改革的一項重要措施。實踐證明,教學工作量考核的實行,有利于穩定教學秩序、提高教學質量,有利于加強師資隊伍的建設與管理,有利于保證教學…

面向對象課程 - T-shirt

拿到了一件謎一樣的T-shirt 嚇得我趕緊捏了下hbb 轉載于:https://www.cnblogs.com/andwho/p/5465165.html

java問題

Collection 和 Collections的區別? Collection是集合類的上級接口,繼承與他的接口主要有Set 和List. Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。 你所知道的集合類都有哪些&a…

javascript學習代碼

點擊改變p和div元素&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <m…

狀態開關(ToggleButton)

狀態開關&#xff08;ToggleButton&#xff09;&#xff1a; 常用屬性&#xff1a;isChecked&#xff08;是否被選中&#xff0c;如true&#xff09; 監聽&#xff1a;1.監聽方法&#xff1a;setOnCheckedChangeListener 2.監聽器&#xff1a;CompoundButton.OnCheckedChangeLi…

搭建一個基于http的yum服務器

基于http的yum服務器在集群中搭建一個基于HTTP的yum服務器&#xff0c;不僅安裝速度變快了許多&#xff0c;還能擴展自己定制的rpm包放入yum服務器中&#xff0c;其他服務器只需要正常使用yum install即可批量安裝統一經過定制的rpm包。這篇文章對習慣使用yum的人來說&#xff…

優邁系統服務器初始化,優邁系統手機操作器服務器操作使用說明.pptx

優邁西奧手機操作器說明服務器無法連接當數據線連接后如圖顯示&#xff0c;表示APP功能權限已授權。若無法顯示菜單有以下幾種情況&#xff1a;1、手機USB 未設置調試狀態2、數據線有問題3、轉接頭問題正常連接兩個紅燈都亮服務器無法連接點擊右上角設置菜單&#xff0c;子菜單…

沖刺第二階段

轉載于:https://www.cnblogs.com/lixin20/p/4549338.html

微信消息推送服務器嗎,消息推送

# 消息推送接入微信小程序消息推送服務&#xff0c;可以兩種方式選擇其一&#xff1a;# 開發者服務器接收消息推送開發者需要按照如下步驟完成&#xff1a; 填寫服務器配置驗證服務器地址的有效性據接口文檔實現業務邏輯&#xff0c;接收消息和事件# 第一步&#xff1a;填寫服務…

MVC與WebApi中的異常過濾器

一、MVC的異常過濾器 1、自定義MVC異常過濾器創建一個類&#xff0c;繼承HandleErrorAttribute即可&#xff0c;如果不需要作為特性使用直接實現IExceptionFilter接口即可&#xff0c;注意&#xff0c;該接口在System.Web.Mvc 命名空間下/// <summary> /// 自定義的MVC異…

windows下eclipse遠程連接hadoop集群開發mapreduce

轉載請注明出處&#xff0c;謝謝2017-10-22 17:14:09之前都是用python開發maprduce程序的&#xff0c;今天試了在windows下通過eclipse java開發&#xff0c;在開發前先搭建開發環境。在此&#xff0c;總結這個過程&#xff0c;希望能夠幫助有需要的朋友。用Hadoop eclipse plu…

縮放瀏覽器時 背景圖片固定

今天遇到一個很奇怪的問題&#xff0c;頁面做好后&#xff0c;當縮放瀏覽器的時候&#xff0c;背景圖片跟著移動&#xff0c;這就使本來做好的內容看起來像是錯位了一樣&#xff0c;跟背景對不上。 研究了一下發現&#xff0c;不需要fixed 之類的&#xff0c;只需要給body加個 …

醫學影像后處理服務器系統的特點,【CT影像系統工作站怎么用】CT影像系統工作站好不好_使用技巧-ZOL軟件百科...

為滿足醫療衛生領域廣大影像工作者、醫生和醫院管理工作者的需求&#xff0c;本單位應用當代計算機技術&#xff0c;影像處理技術以及網絡技術開發的 CT型醫學影像工作站&#xff0c;可與各種CT配接&#xff0c;不需對原機作任何改動。實現了數字化存儲和接口標準化以及網絡管理…