ink大數據計算引擎入門

ink大數據計算引擎入門
Flink入門html

  • Apache Flink 是一個面向分佈式數據流處理和批量數據處理的開源計算平臺,提供支持流處理和批處理兩種類型應用的功能。git

  • Apache Flink的前身是柏林理工大學一個研究性項目,在2014被Apache孵化器所接受,而後迅速地成爲了Apache Software Foundation的頂級項目之一。

Flink 特色github

  • 現有的開源計算方案,會把流處理和批處理做爲兩種不一樣的應用類型:流處理通常須要支持低延遲、Exactly-once保證,而批處理須要支持高吞吐、高效處理apache

  • Flink是徹底支持流處理,也就是說做爲流處理看待時輸入數據流時***的;批處理被做爲一種特殊的流處理,只是它的輸入數據流被定義爲有界的。

ink大數據計算引擎入門

Flink組件棧網絡

ink大數據計算引擎入門
Deployment層架構

主要涉及了Flink的部署模式、Flink支持多種部署模式:本地、集羣(Standalone/YARN)、雲(GCE/EC2).框架

Runtime層分佈式

Runtime層提供了支持Flink計算的所有核心實現,好比:支持分佈式Stream處理、JobGraph到ExecutionGraph的映射、調度等等,爲上層API層提供基礎服務ide

API層性能

API層主要實現了面向***Stream的流處理和麪向Batch的批處理API,其中面向流處理對應DataStream API,面向批處理對應DataSet API

Libaries層

在API層之上構建的知足特定應用的實現計算框架,也分別對應於面向流處理和麪向批處理兩類。

ink大數據計算引擎入門
Flink優點

  • 支持高吞吐、低延遲、高性能的流處理

  • 支持高度靈活的窗口(Window)操做

  • 支持有狀態計算的Exactly-once語義

  • 提供DataStream API和DataSet API

ink大數據計算引擎入門
Flink數據流和時間窗口
基本概念

  • Flink程序的基礎構建模塊是流(streams)與轉換(transformations)。

  • 每個數據流起始於一個或多個source,並終止於一個或多個sink。

時間窗口

  • 流上的聚合須要由窗口來劃定範圍,好比 「計算過去的5分鐘」 或者 「最後100個元素的和」

  • 窗口一般被區分爲不一樣的類型,好比滾動窗口(沒有重疊),滑動窗口(有重疊),以及會話窗口(由布活動的間隙所打斷)

ink大數據計算引擎入門
Flink分佈式運行環境

  • Flink是基於Master-Slave風格的架構

  • Flink集羣啓動時,會啓動一個JobManager進程、至少一個TaskManager進程

JobManager

  • Flink系統的協調者,他負責接受Flink Job ,調度組成Job的多個Task的執行

  • 收集Job的狀態信息,並管理Flink集羣中從節點TaskManager

TaskManager

  • 實際負責執行計算的Worder,在其上執行Flink Job的一組Task

  • TaskManager負責管理其所在節點上的資源信息,如內存、磁盤、網絡,在啓動的時候將資源的狀態向JobManager彙報

Client

  • 用戶提交一個Flink程序時,會首先建立一個Client,該Client首先會對用戶提交的Flink程序進行預處理,並提交到Flink集羣

  • Client會將用戶提交的Flink程序組裝一個JobGraph,而且時以JobGraph的形式提交的

Flink安裝
方式一

方式二

到官網下載編譯版:https://flink.apache.org/downloads.html
不一樣環境下到bin目錄,運行start-local.bat
運行正常,訪問頁面:http://localhost:8081

ink大數據計算引擎入門

ink大數據計算引擎入門

相關文章
相關標籤/搜索