阿里、Uber都在用的Flink你瞭解多少?

實時流計算近幾年因爲數據被普遍重視,是經過實時推薦及計算來獲取目標數據而興起的技術。本文對分佈式實時計算引擎Flink作了簡要介紹。本文選自《智能運維:從0搭建大規模分佈式AIOps系統》一書。運維

流式計算處理的業務特色是數據的價值隨着時間的流逝而下降,因此提升數據的處理速度及實時性是極其重要的。例如,用戶在瀏覽微博時插入了Feed廣告,咱們須要對所插入廣告的曝光、互動、負反饋等信息進行及時的反饋,這時就須要流式計算。分佈式

Flink是一個針對流數據和批數據的分佈式處理引擎,主要用Java代碼實現。對於Flink ,其處理的數據主要是流數據,批數據只是流數據的一個極限特例而已。Flink的批處理方式採用的是流式計算原理,這一點跟Spark的設計思想正好相反(Spark Streaming本質上是批處理,只是將計算分紅了很小的單元,近似成流計算),這也是Flink的最大特色。目前使用Flink的公司有阿里巴巴、Uber等。性能

基本概念

1.數據集

數據集(DataSet)分爲有界數據集和無界數據集。無界數據集的數據會源源不斷地流入,有界數據集的數據是不可變的。許多傳統上被認爲是有界或「批」數據的真實數據集其實是無界數據集。無界數據集包括但不限於:與移動或Web應用程序交互的最終用戶、提供測量的物理傳感器、金融市場、機器的日誌數據。spa

2.執行模型

實時處理是指當數據正在生成時連續執行的數據的處理過程。批處理是指在有限的時間內執行有限的數據的處理過程。無論採用哪一種類型的執行模型來處理數據都是能夠的,但卻不必定是最優的。例如,批處理一直被應用於無界數據集的處理上,儘管它存在窗口、狀態管理和次序錯誤等潛在問題。Flink採用實時處理的執行模型,在數據處理精度和計算性能方面都有更大的優點。設計

相關文章
相關標籤/搜索