《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第一章 大數(shù)據(jù)技術(shù)概述_第1頁(yè)
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第一章 大數(shù)據(jù)技術(shù)概述_第2頁(yè)
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第一章 大數(shù)據(jù)技術(shù)概述_第3頁(yè)
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第一章 大數(shù)據(jù)技術(shù)概述_第4頁(yè)
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第一章 大數(shù)據(jù)技術(shù)概述_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

大數(shù)據(jù)技術(shù)概述牛津大學(xué)教授維克托·邁爾-舍恩伯格(ViktorMayer-Sch?nberger)指出,大數(shù)據(jù)帶來(lái)的信息風(fēng)暴正在改變我們的生活、工作和思維。理解大數(shù)據(jù)并對(duì)這些數(shù)據(jù)進(jìn)行有效的處理和分析是企業(yè)和政府的機(jī)遇,更是一種挑戰(zhàn)。數(shù)據(jù)流的處理必須滿(mǎn)足高吞吐和低延遲的特性,ApacheFlink(以下簡(jiǎn)稱(chēng)Flink)是一種針對(duì)數(shù)據(jù)流的大數(shù)據(jù)處理框架。讀完本章之后,讀者可以了解以下內(nèi)容。大數(shù)據(jù)的特點(diǎn)、大數(shù)據(jù)分而治之的處理思想。批處理和流處理的區(qū)別。流處理的基礎(chǔ)概念。流處理框架的技術(shù)更迭和架構(gòu)演進(jìn)。Flink開(kāi)發(fā)的常用編程語(yǔ)言。什么是大數(shù)據(jù)從批處理到流處理代表性大數(shù)據(jù)技術(shù)從Lambda到Kappa流式處理基礎(chǔ)概念編程語(yǔ)言的選擇大數(shù)據(jù)的5個(gè)VVolume:數(shù)據(jù)量大Velocity:數(shù)據(jù)產(chǎn)生速度快Variety:數(shù)據(jù)類(lèi)型繁多Veracity:數(shù)據(jù)真實(shí)性Value:數(shù)據(jù)價(jià)值大數(shù)據(jù)單臺(tái)計(jì)算機(jī)無(wú)法處理所有數(shù)據(jù),使用多臺(tái)計(jì)算機(jī)組成集群,進(jìn)行分布式計(jì)算。分而治之:將原始問(wèn)題分解為多個(gè)子問(wèn)題多個(gè)子問(wèn)題分別在多臺(tái)計(jì)算機(jī)上求解將子結(jié)果匯總比較經(jīng)典的模式和框架:MPIMapReduce大數(shù)據(jù)分而治之MPI:MessagePassingInterface消息傳遞接口使用分治法將問(wèn)題分解成子問(wèn)題,在不同節(jié)點(diǎn)上分而治之地求解。MPI提供數(shù)據(jù)發(fā)送和數(shù)據(jù)接收操作:將本進(jìn)程中某些數(shù)據(jù)發(fā)送給其他進(jìn)程接收其他進(jìn)程的數(shù)據(jù)自行設(shè)計(jì)分治算法,將復(fù)雜問(wèn)題分解為子問(wèn)題優(yōu)勢(shì):以很細(xì)的粒度控制數(shù)據(jù)的通信劣勢(shì):難度大,開(kāi)發(fā)調(diào)試時(shí)間成本高M(jìn)PI程序員只需要定義兩個(gè)操作:Map和Reduce案例:三明治制作Map階段將原材料在不同的節(jié)點(diǎn)上分別進(jìn)行處理Shuffle/Group階段將不同的中間食材進(jìn)行組合Reduce階段最終將一組中間食材組合成三明治成品學(xué)習(xí)門(mén)檻比MPI低MapReduce什么是大數(shù)據(jù)從批處理到流處理代表性大數(shù)據(jù)技術(shù)從Lambda到Kappa流式處理基礎(chǔ)概念編程語(yǔ)言的選擇單條數(shù)據(jù)被稱(chēng)為事件(Event)或者被稱(chēng)為一條數(shù)據(jù)或一個(gè)元素。事件按照時(shí)序排列會(huì)形成一個(gè)數(shù)據(jù)流(Data

Stream)。數(shù)據(jù)流一般是無(wú)界(Unbounded)的,某段有界數(shù)據(jù)流(BoundedDataStream)可以組成一個(gè)數(shù)據(jù)集。數(shù)據(jù)與數(shù)據(jù)流批處理(BatchProcessing):對(duì)一批數(shù)據(jù)進(jìn)行處理案例:微信運(yùn)動(dòng)統(tǒng)計(jì)步數(shù),銀行信用卡賬單統(tǒng)計(jì)…

數(shù)據(jù)總量大,計(jì)算非常耗時(shí)流處理數(shù)據(jù)本質(zhì)上是流,流處理(StreamProcessing)對(duì)數(shù)據(jù)流進(jìn)行處理案例:查看電商實(shí)時(shí)銷(xiāo)售業(yè)績(jī)、股票交易…批處理與流處理流處理一般使用生產(chǎn)者-消費(fèi)者模型股票交易案例:輔助人工決策實(shí)現(xiàn)消費(fèi)者側(cè)代碼,以10秒為一個(gè)時(shí)間窗口,統(tǒng)計(jì)窗口內(nèi)的交易情況可擴(kuò)展性:隨著數(shù)據(jù)不斷增多,能否保證我們的程序能夠快速擴(kuò)展到更多的節(jié)點(diǎn)上。數(shù)據(jù)傾斜:數(shù)據(jù)沒(méi)有均勻分布到分布式系統(tǒng)各個(gè)節(jié)點(diǎn)上。容錯(cuò)性:系統(tǒng)崩潰重啟后,之前的那些計(jì)算如何恢復(fù)。時(shí)序錯(cuò)亂:數(shù)據(jù)到達(dá)的時(shí)間和實(shí)際發(fā)生的時(shí)間是不一致的,有一定的延遲,需要設(shè)計(jì)等待策略。Flink:為流處理而生。流處理框架必要性生產(chǎn)者-消費(fèi)者模型什么是大數(shù)據(jù)從批處理到流處理代表性大數(shù)據(jù)技術(shù)從Lambda到Kappa流式處理基礎(chǔ)概念編程語(yǔ)言的選擇MapReduce編程模型的一種實(shí)現(xiàn),逐漸形成了一整套生態(tài)圈。主要組件:HadoopMapReduce:數(shù)據(jù)處理模型,面向批處理。HDFS:分布式文件系統(tǒng),提供存儲(chǔ)支持。YARN:資源調(diào)度器,分配計(jì)算資源。其他著名組件:Hive:SQL-on-HadoopHbase:基于HDFS的分布式數(shù)據(jù)庫(kù),毫秒級(jí)實(shí)時(shí)查詢(xún)Kafka:消息隊(duì)列ZooKeeper:分布式環(huán)境的協(xié)調(diào)HadoopHadoop生態(tài)圈Spark初衷:改良HadoopMapReduce的編程模型,提高運(yùn)行速度,優(yōu)化機(jī)器學(xué)習(xí)性能。易用性:比MapReduce更好用,提供了多種編程語(yǔ)言API,支持SQL、機(jī)器學(xué)習(xí)和圖計(jì)算。速度快:盡量將計(jì)算放在內(nèi)存中。完美融入進(jìn)Hadoop生態(tài)圈。流處理:SparkStreaming,mini-batch思想,將輸入數(shù)據(jù)流拆分成多個(gè)批次。Spark是一個(gè)批流一體的計(jì)算框架。SparkSpark生態(tài)圈Spark

mini-batch流處理消息隊(duì)列:數(shù)據(jù)集成和系統(tǒng)解耦,某個(gè)應(yīng)用系統(tǒng)專(zhuān)注于一個(gè)目標(biāo)。企業(yè)將各個(gè)子系統(tǒng)獨(dú)立出來(lái),子系統(tǒng)之間通過(guò)消息隊(duì)列來(lái)發(fā)送數(shù)據(jù)。Kafka

Kafka可以連接多個(gè)組件和系統(tǒng)主要面向流處理流處理框架經(jīng)歷了三代演進(jìn)StormSpark

StreamingFlink事件投遞保障:Exactly-Once:一條數(shù)據(jù)只影響一次最終結(jié)果毫秒級(jí)的延遲Flink什么是大數(shù)據(jù)從批處理到流處理代表性大數(shù)據(jù)技術(shù)從Lambda到Kappa流式處理基礎(chǔ)概念編程語(yǔ)言的選擇Lambda架構(gòu):批處理層、流處理層、在線(xiàn)服務(wù)層批處理層:等待一個(gè)批次數(shù)據(jù),使用批處理框架計(jì)算,得到一個(gè)非實(shí)時(shí)的結(jié)果。比如,凌晨0點(diǎn)開(kāi)始統(tǒng)計(jì)前一天所有商品的計(jì)算次數(shù),計(jì)算需要幾個(gè)小時(shí)。流處理層:使用流處理框架生成結(jié)果。早期的流處理框架不成熟,結(jié)果近似準(zhǔn)確。在線(xiàn)服務(wù)層:將來(lái)自批處理層準(zhǔn)確但有延遲的預(yù)處理結(jié)果和流處理層實(shí)時(shí)但不夠準(zhǔn)確的預(yù)處理結(jié)果做融合。程序員需要維護(hù)批處理和流處理兩套業(yè)務(wù)邏輯。Lambda架構(gòu)Lambda架構(gòu)Kafka等消息隊(duì)列可以保存更長(zhǎng)時(shí)間的歷史數(shù)據(jù),它不僅起到消息隊(duì)列的作用,也可以存儲(chǔ)數(shù)據(jù),替代數(shù)據(jù)倉(cāng)庫(kù)。Flink流處理框架解決了事件亂序下計(jì)算結(jié)果的準(zhǔn)確性問(wèn)題。程序員只維護(hù)一套流處理層,維護(hù)成本低。Kappa架構(gòu)Kappa架構(gòu)什么是大數(shù)據(jù)從批處理到流處理代表性大數(shù)據(jù)技術(shù)從Lambda到Kappa流式處理基礎(chǔ)概念編程語(yǔ)言的選擇延遲:一個(gè)事件被系統(tǒng)處理的總時(shí)間。案例:自助食堂,一位用餐者從進(jìn)入食堂到離開(kāi)食堂的總耗時(shí)。高峰時(shí),總耗時(shí)會(huì)增加。分位延遲更能反映系統(tǒng)的性能。吞吐:系統(tǒng)最大能處理多少事件。與系統(tǒng)本身設(shè)計(jì)有關(guān),也與數(shù)據(jù)源的數(shù)據(jù)量有關(guān)。延遲與吞吐相互影響,一起反映了系統(tǒng)的性能。優(yōu)化方式:優(yōu)化單節(jié)點(diǎn)內(nèi)的計(jì)算速度,使用并行策略,分而治之地處理數(shù)據(jù)。延遲和吞吐延遲和吞吐更直觀(guān)的表現(xiàn):用戶(hù)是否排隊(duì)。滾動(dòng)窗口(TumblingWindow):定義一個(gè)固定的窗口長(zhǎng)度,長(zhǎng)度是一個(gè)時(shí)間間隔。滑動(dòng)窗口(SlidingWindow):定義一個(gè)固定的窗口長(zhǎng)度和一個(gè)滑動(dòng)長(zhǎng)度。會(huì)話(huà)窗口(SessionWindow):窗口長(zhǎng)度不固定,根據(jù)會(huì)話(huà)間隔(SessionGap)確定窗口,兩個(gè)事件之間的間隔大于SessionGap,則兩個(gè)事件被劃分到不同的窗口中。窗口三種時(shí)間窗口EventTime:事件實(shí)際發(fā)生的時(shí)間事件發(fā)生時(shí),EventTime就已經(jīng)確定ProcessingTime:事件被流處理框架處理的時(shí)間不同節(jié)點(diǎn)、系統(tǒng)內(nèi)不同模塊、同一數(shù)據(jù)不同次處理都會(huì)產(chǎn)生不同的ProcessingTime案例:手機(jī)游戲,用戶(hù)需要與服務(wù)器實(shí)時(shí)交互,游戲根據(jù)實(shí)時(shí)數(shù)據(jù)計(jì)分。信號(hào)丟失,部分?jǐn)?shù)據(jù)上傳有延遲,使用事件的Event

Time更準(zhǔn)確。時(shí)間Watermark是插入到數(shù)據(jù)流的元素。Watermark元素到達(dá),假設(shè)不會(huì)有比這個(gè)時(shí)間點(diǎn)更晚的上報(bào)數(shù)據(jù)??梢栽O(shè)置不同的Watermark策略,是一種折中方案:Watermark等待時(shí)間短,保證低延遲,數(shù)據(jù)準(zhǔn)確性下降。Watermark等待時(shí)間長(zhǎng),數(shù)據(jù)更準(zhǔn)確,延遲高,維護(hù)難度大。Watermark無(wú)狀態(tài):流處理中,不需要額外信息,給定一個(gè)輸入數(shù)據(jù),直接得到輸出。將英文單詞轉(zhuǎn)化為小寫(xiě)。有狀態(tài):根據(jù)歷史信息,處理新流入數(shù)據(jù)。統(tǒng)計(jì)一分鐘內(nèi)單詞出現(xiàn)次數(shù),需要保存已經(jīng)進(jìn)入系統(tǒng)的歷史。使用檢查點(diǎn)(Checkpoint)技術(shù),將狀態(tài)數(shù)據(jù)保存下來(lái),用于故障后的恢復(fù)。狀態(tài)與檢查點(diǎn)有狀態(tài)計(jì)算和無(wú)狀態(tài)計(jì)算如果發(fā)生故障,數(shù)據(jù)是否被成功處理?At-Most-Once:每個(gè)事件最多被處理一次。有些數(shù)據(jù)被丟棄,最不安全。At-Least-Once:每個(gè)事件至少被處理一次,有些事件可能被處理多次。部分?jǐn)?shù)據(jù)被處理多次,可能不準(zhǔn)確。Exactly-Once:每個(gè)事件只被處理一次。事件不丟不重。實(shí)現(xiàn)難度最大。數(shù)據(jù)一致性保障什么是大數(shù)據(jù)從批處理到流處理代表性大數(shù)據(jù)技術(shù)從Lambda到Kappa流式處理基礎(chǔ)概念編程語(yǔ)言的選擇Java企業(yè)級(jí)編程語(yǔ)言有很多開(kāi)源包大數(shù)據(jù)必備Scala函數(shù)式編程有一定學(xué)習(xí)門(mén)檻Flink目前絕大多數(shù)代碼和功能均由Java實(shí)現(xiàn)編程語(yǔ)言的選擇Python簡(jiǎn)單易用PyFlinkSQL上手門(mén)檻很低大數(shù)據(jù)數(shù)據(jù)量大、產(chǎn)生速度快、類(lèi)型多,為了獲取數(shù)據(jù)背后價(jià)值還

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論