摘要:簡(jiǎn)介是一個(gè)面向分布式數(shù)據(jù)流處理和批量數(shù)據(jù)處理的開源計(jì)算平臺(tái),提供支持流處理和批處理兩種類型應(yīng)用的功能。每一個(gè)數(shù)據(jù)流起始于一個(gè)或多個(gè),并終止于一個(gè)或多個(gè)。
Flink簡(jiǎn)介
Apache Flink 是一個(gè)面向分布式數(shù)據(jù)流處理和批量數(shù)據(jù)處理的開源計(jì)算平臺(tái),提供支持流處理和批處理兩種類型應(yīng)用的功能。
Apache Flink的前身是柏林理工大學(xué)一個(gè)研究性項(xiàng)目,在2014被Apache孵化器所接受,然后迅速地成為了Apache Software Foundation的頂級(jí)項(xiàng)目之一。
Flink 特點(diǎn)
現(xiàn)有的開源計(jì)算方案,會(huì)把流處理和批處理作為兩種不同的應(yīng)用類型:流處理一般需要支持低延遲、Exactly-once保證,而批處理需要支持高吞吐、高效處理
Flink是完全支持流處理,也就是說(shuō)作為流處理看待時(shí)輸入數(shù)據(jù)流時(shí)無(wú)界的;批處理被作為一種特殊的流處理,只是它的輸入數(shù)據(jù)流被定義為有界的。
Flink 組件棧Deployment層
主要涉及了Flink的部署模式、Flink支持多種部署模式:本地、集群(Standalone/YARN)、云(GCE/EC2).
Runtime層
Runtime層提供了支持Flink計(jì)算的全部核心實(shí)現(xiàn),比如:支持分布式Stream處理、JobGraph到ExecutionGraph的映射、調(diào)度等等,為上層API層提供基礎(chǔ)服務(wù)
API層
API層主要實(shí)現(xiàn)了面向無(wú)界Stream的流處理和面向Batch的批處理API,其中面向流處理對(duì)應(yīng)DataStream API,面向批處理對(duì)應(yīng)DataSet API
Libaries層
在API層之上構(gòu)建的滿足特定應(yīng)用的實(shí)現(xiàn)計(jì)算框架,也分別對(duì)應(yīng)于面向流處理和面向批處理兩類。
Flink優(yōu)勢(shì)支持高吞吐、低延遲、高性能的流處理
支持高度靈活的窗口(Window)操作
支持有狀態(tài)計(jì)算的Exactly-once語(yǔ)義
提供DataStream API和DataSet API
Flink數(shù)據(jù)流和時(shí)間窗口基本概念
Flink程序的基礎(chǔ)構(gòu)建模塊是流(streams)與轉(zhuǎn)換(transformations)。
每一個(gè)數(shù)據(jù)流起始于一個(gè)或多個(gè)source,并終止于一個(gè)或多個(gè)sink。
時(shí)間窗口
流上的聚合需要由窗口來(lái)劃定范圍,比如 “計(jì)算過(guò)去的5分鐘” 或者 “最后100個(gè)元素的和”
窗口通常被區(qū)分為不同的類型,比如滾動(dòng)窗口(沒(méi)有重疊),滑動(dòng)窗口(有重疊),以及會(huì)話窗口(由布活動(dòng)的間隙所打斷)
Flink分布式運(yùn)行環(huán)境Flink是基于Master-Slave風(fēng)格的架構(gòu)
Flink集群?jiǎn)?dòng)時(shí),會(huì)啟動(dòng)一個(gè)JobManager進(jìn)程、至少一個(gè)TaskManager進(jìn)程
JobManager
Flink系統(tǒng)的協(xié)調(diào)者,他負(fù)責(zé)接受Flink Job ,調(diào)度組成Job的多個(gè)Task的執(zhí)行
收集Job的狀態(tài)信息,并管理Flink集群中從節(jié)點(diǎn)TaskManager
TaskManager
實(shí)際負(fù)責(zé)執(zhí)行計(jì)算的Worder,在其上執(zhí)行Flink Job的一組Task
TaskManager負(fù)責(zé)管理其所在節(jié)點(diǎn)上的資源信息,如內(nèi)存、磁盤、網(wǎng)絡(luò),在啟動(dòng)的時(shí)候?qū)①Y源的狀態(tài)向JobManager匯報(bào)
Client
用戶提交一個(gè)Flink程序時(shí),會(huì)首先創(chuàng)建一個(gè)Client,該Client首先會(huì)對(duì)用戶提交的Flink程序進(jìn)行預(yù)處理,并提交到Flink集群
Client會(huì)將用戶提交的Flink程序組裝一個(gè)JobGraph,并且時(shí)以JobGraph的形式提交的
Flink安裝方式一
git clone https://github.com/apache/fli...
cd flink
mav clean package -DskipTests
cd build-target
方式二
到官網(wǎng)下載編譯版:https://flink.apache.org/down...
不同環(huán)境下到bin目錄,運(yùn)行start-local.bat
運(yùn)行正常,訪問(wèn)頁(yè)面:http://localhost:8081
官方推薦快速搭建一個(gè)項(xiàng)目:
curl https://flink.apache.org/q/qu... | bash
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71690.html
摘要:總結(jié)本文描述了如何在電腦上安裝,及運(yùn)行它。相關(guān)文章從到學(xué)習(xí)介紹從到學(xué)習(xí)上搭建環(huán)境并構(gòu)建運(yùn)行簡(jiǎn)單程序入門從到學(xué)習(xí)配置文件詳解從到學(xué)習(xí)介紹從到學(xué)習(xí)如何自定義從到學(xué)習(xí)介紹從到學(xué)習(xí)如何自定義 showImg(https://segmentfault.com/img/remote/1460000016915923?w=1920&h=1275); 準(zhǔn)備工作 1、安裝查看 Java 的版本號(hào),推薦...
摘要:接著我們將數(shù)據(jù)流按照單詞字段即號(hào)索引字段做分組,這里可以簡(jiǎn)單地使用方法,得到一個(gè)以單詞為的數(shù)據(jù)流。得到的結(jié)果數(shù)據(jù)流,將每秒輸出一次這秒內(nèi)每個(gè)單詞出現(xiàn)的次數(shù)。最后一件事就是將數(shù)據(jù)流打印到控制臺(tái),并開始執(zhí)行最后的調(diào)用是啟動(dòng)實(shí)際作業(yè)所必需的。 本文轉(zhuǎn)載自 Jark’s Blog ,作者伍翀(云邪),Apache Flink Committer,阿里巴巴高級(jí)開發(fā)工程師。 本文將從開發(fā)環(huán)境準(zhǔn)備、創(chuàng)建 ...
閱讀 2007·2021-09-14 18:03
閱讀 2395·2019-08-30 15:48
閱讀 1264·2019-08-30 14:09
閱讀 660·2019-08-30 12:55
閱讀 2863·2019-08-29 11:29
閱讀 1616·2019-08-26 13:43
閱讀 2447·2019-08-26 13:30
閱讀 2501·2019-08-26 12:17